gpt4 book ai didi

vim - VIM 缩写中的光标位置

转载 作者:行者123 更新时间:2023-12-04 01:58:02 24 4
gpt4 key购买 nike

有没有办法告诉VIM在缩写扩展后将光标放在某个位置?
假设你在 .gvimrc 中有这样的东西

iabberv <? <?=|?> 

并且您想将光标放置在自动管道字符的位置。

最佳答案

在这种情况下,我使用的一个快速解决方案是在缩写中插入一些按键:

iabbrev <? <?=?><Left><Left>

将光标左移两个位置,在 = 之后.

通过这种方式,您可以使用各种移动键,例如 <End> , <Home> ,甚至用 <Esc> 返回正常模式并命令通常的正常模式命令。然后这个例子是
iabbrev <? <?=?><Esc>hha

它的作用与第一个示例相同。如果用空格扩展缩写,它将多出一个空格。您可以使用 <BS> 摆脱它(退格)在缩写。或使用 <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>

它有点乱,但是有一个外部函数调用可以删除空白,它应该可以很好地工作。

关于vim - VIM 缩写中的光标位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3320182/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com