Как убрать пробел в конце аббревиатуры кабины и дождаться ввода в GVim? - PullRequest
1 голос
/ 08 февраля 2012

Я создал аббревиатуру Vim для начала пути к файлу, то есть

cab  \x\     M:\xmlexport\Output\

, и я хочу, чтобы это развернулось, удалило пробел и дождалось дальнейшего ввода.Я пытался использовать =Eatchar('s'), но не знаю, что поставить перед ним, чтобы он срабатывал правильно.Все примеры, которые я видел, используют <C-R>, который добавляет новую строку.Я пытался <left> просто переместиться на одну позицию назад, но это создает M:\xmlexport\Output \

1 Ответ

0 голосов
/ 08 февраля 2012

Возможно, я неправильно понял вопрос, но я протестировал указанную вами функцию и, кажется, она работает:

Я добавил функцию 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\, и позиция курсорасразу после последнего обратного слеша, чтобы написать желаемый ввод.

...