VIM缩写中的光标位置

前端之家收集整理的这篇文章主要介绍了VIM缩写中的光标位置前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
有没有办法告诉VIM将光标放在缩写后的某个位置?
假设你在.g vimrc中有这样的东西
iabberv <? <?=|?>

并且要将光标放在管道字符自动的位置.

在这种情况下,我使用的一个快速解决方案是将一些按键插入缩写:
iabbrev <? <?=?><Left><Left>

将光标放在左边的两个位置之后.

以这种方式,您可以使用各种移动键,例如< End>,< Home>,甚至可以使用&Esc>返回到正常模式.并命令常用的普通模式命令.那个例子就是

iabbrev <? <?=?><Esc>hha

它和第一个例子是一样的.如果使用空格扩展缩写,则会有一个额外的空格.您可以通过使用< BS> (backspace)缩写.或者用< C - >这将不会留空间.

修正:由于缩写首先被展开,之后插入空格,需要在帮助(map.txt)中找到一个小功能

func Eatchar(pat)
   let c = nr2char(getchar(0))       
   return (c =~ a:pat) ? '' : c      
endfunc

这最好放在.vimrc中.现在以下缩写将完全作为意图:

:iabbrev <silent> <? <?=?><Left><Left><C-R>=Eatchar('\s')<CR>

这有点凌乱,但是有一个外部函数调用来消除空白,它应该很好.

原文链接:https://www.f2er.com/bash/383823.html

猜你在找的Bash相关文章