如何删除cab缩写末尾的空格并等待GVim中的输入?

时间:2012-02-08 10:16:38

标签: vim abbreviation

我为文件路径的开头创建了一个Vim缩写,即

cab  \x\     M:\xmlexport\Output\

我希望扩展,删除空间并等待进一步输入。我已尝试使用=Eatchar('s'),但不知道要在它之前放置什么来使其正确触发。我见过的所有示例都使用<C-R>添加了一个新行。我尝试<left>只是向后移动一个空格,但这会创建M:\xmlexport\Output \

1 个答案:

答案 0 :(得分:0)

也许我误解了这个问题,但我已经测试了你指出的功能并且似乎有效:

我已将Eatchar功能添加到.vimrc

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

vim内,我创建了你的缩写,如:

:cab  \x\     M:\xmlexport\Output\ <left><C-R>=Eatchar('\s')<CR>

然后我在命令行中编写:\x\并将其扩展为:M:\xmlexport\Output\,光标位置就在最后一个反斜杠之后,以写入所需的输入。