Vim останавливает продолжение комментария во время расширения аббревиатуры - PullRequest
0 голосов
/ 29 мая 2020

Если ваши настройки Vim включают 'r' в 'formatoptions' (по умолчанию), он автоматически вставит текущий лидер комментария после нажатия [Enter] в режиме вставки, но это может быть нежелательно для сокращений, которые расширяются до однострочного комментария. на языках, в которых нет отдельных однострочных / многострочных символов комментариев.

Как мне перестать получать это, когда я нажимаю [Enter] после ввода сокращенных символов?

# ========
#

1 Ответ

0 голосов
/ 29 мая 2020

Вот что я сделал:

" Eat one character matching the given regex from the input stream, e.g. at                                 
" the end of an abbr expansion.  (From :help abbreviations)              
func Eatchar(pat)                                    
    let c = nr2char(getchar(0))                        
    return (c =~ a:pat) ? '' : c                       
endfunc                                              

set pastetoggle=<F12>
iabbr <silent> sep # ========<F12><CR><F12><C-R>=Eatchar('\r')<CR>

Это заменяет нажатие клавиши [Enter] пользователем на сгенерированное, окруженное сгенерированными нажатиями клавиш, которые отключают режим вставки до и снова включаются после. Последний <C-R> завершает последовательность <C-R>=.

...