VIM - 如果以前没有空格,则在左边的parens之前添加一个空格

时间:2017-11-14 19:55:21

标签: vim

如果还没有一个空格,那么在左括号之前插入单个空格的最快方法是什么?

示例:

hello() -> hello ()
world () -> world ()
hello(world ()) -> hello (world ())

风格指南需要它,我应该在课堂上学习,我不会自动完成,所以我怎么能让vim为我做这个。

1 个答案:

答案 0 :(得分:1)

映射怎么样:

function! SpaceBeforeLeftParen()
    :silent! s/\v \(/(/g
    :silent! s/\v\(/ (/g
endfunction
nnoremap c( :call SpaceBeforeLeftParen()<CR>

只需点击 c 在您想要添加空格的行上。或者您可以直接调用该函数::call SpaceBeforeLeftParen()

-

替代的其他一些方法:

  • s/\(\s\+\)\@<!(/ (/
  • s/\v([^ ])(\()/\1 (/g

-

来自@ Marth评论的

可能是最完整的答案将是:

function! SpaceBeforeLeftParen()
  :silent! %s/\(\s\+\)\@<!(/ (/
endfunction

...将一次性处理整个文件。使用:call SpaceBeforeLeftParen()

进行调用