LINUX.ORG.RU

Не работает функция Eatchar в абревиатуре

 ,


0

1

У меня есть стандартная функция

function! Eatchar(pat)
	let c = nr2char(getchar(0))
	return (c =~ a:pat) ? '' : c
endfunction

и абривиатура

iab <buffer> guard
	\ #ifndef <C-R>=toupper(expand('%:t:r'))<CR>_H<CR>
	\#define <C-R>=toupper(expand('%:t:r'))<CR>_H<CR><CR><CR>
	\#endif /* <C-R>=toupper(expand('%:t:r'))<CR>_H */
	\<C-R>=Eatchar('[[:space:]]')<CR><Up><Up>

но функция ничего не делает, а долждна сьесть введенный мной символ который тригерит расширение абривеатуры

к примеру вот эти работают коректно

iab <buffer> inc #include <><Left><C-R>=Eatchar('[[:space:]]')<CR>
iab <buffer> incc #include ""<Left><C-R>=Eatchar('[[:space:]]')<CR>