Vim智能插入分号

dte*_*eoh 20 vim

是否有一个Vim插件可以处理智能分号插入,就像Eclipse中的插件一样?

示例(管道符是插入光标):

foobar(|)
Run Code Online (Sandbox Code Playgroud)

我输入一个分号:

foobar();|
Run Code Online (Sandbox Code Playgroud)

同理:

foobar("blah|")
Run Code Online (Sandbox Code Playgroud)

我输入一个分号:

foobar("blah");|
Run Code Online (Sandbox Code Playgroud)

如果我想在原始光标位置使用分号,请在智能重新定位后按退格键:

foobar("hello|")
foobar("hello");|
foobar("hello;|")
Run Code Online (Sandbox Code Playgroud)

rom*_*inl 26

我用这个映射:

inoremap <leader>; <C-o>A;
Run Code Online (Sandbox Code Playgroud)

这不是;因为我经常在不止一个上下文中使用分号.

  • <C-o> 用于输入单个正常模式命令.
  • A;意思是" ;在行尾添加一个".

  • @dansomething:哦,是的!从那个答案开始,我在`〜/ .vimrc`中多次修改了那行.这是当前的化身:inoremap <leader>; <CO> M` <CO> A; <CO>`` (3认同)

gui*_* 桂林 10

我想做同样的事情,我整夜都在工作,大量的代码,但最后,我得到了一个简单的解决方案.

inoremap ;<cr> <end>;<cr>
Run Code Online (Sandbox Code Playgroud)

如果我在支架中,我想在最后添加一个分号或一个点,就像这样

foo({
  |
})
Run Code Online (Sandbox Code Playgroud)

我按;;<cr>..<cr>执行此操作

inoremap ;<cr> <end>;<cr>
inoremap .<cr> <end>.
inoremap ;;<cr> <down><end>;<cr>
inoremap ..<cr> <down><end>.
Run Code Online (Sandbox Code Playgroud)


小智 5

你应该尝试Cosco.vim插件.