加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

VIM缩写中的光标位置

发布时间:2020-12-16 01:31:54 所属栏目:安全 来源:网络整理
导读:有没有办法告诉VIM将光标放在缩写后的某个位置? 假设你在.g vimrc中有这样的东西 iabberv ? ?=|? 并且要将光标放在管道字符自动的位置. 在这种情况下,我使用的一个快速解决方案是将一些按键插入缩写: iabbrev ? ?=?LeftLeft 将光标放在左边的两个位置之后.
有没有办法告诉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>

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读