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

如何删除cab缩写末尾的空格并等待GVim中的输入?,vim,abbreviation,Vim,Abbreviation,我已经为文件路径的开始创建了一个Vim缩写,即 cab \x\ M:\xmlexport\Output\ 我想让它展开,去掉空间,等待进一步的输入。我尝试过使用=Eatchar('s'),但不知道应该在它前面放些什么才能使它正确触发。我看到的所有示例都使用了,这增加了一行。我曾尝试将仅向后移动一个空格,但这会创建M:\xmlexport\Output\也许我误解了这个问题,但我已经测试了您指出的功能,似乎可以工作: 我已将Eatchar函数添加到.vimrc: func Eatcha

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

cab  \x\     M:\xmlexport\Output\

我想让它展开,去掉空间,等待进一步的输入。我尝试过使用
=Eatchar('s')
,但不知道应该在它前面放些什么才能使它正确触发。我看到的所有示例都使用了
,这增加了一行。我曾尝试将
仅向后移动一个空格,但这会创建
M:\xmlexport\Output\

也许我误解了这个问题,但我已经测试了您指出的功能,似乎可以工作:

我已将
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>
:cab\x\M:\xmlexport\Output\=Eatchar(“\s”)

然后,我在命令行中写入
:\x\
,它将扩展到
:M:\xmlexport\Output\
,光标位置刚好位于最后一个反斜杠之后,以写入所需的输入。

今天再次查看之后,它现在似乎可以工作了。今天早上我对我的vimrc做了一些其他的修改,我猜我在那里和什么东西发生了冲突!