Vim остановить продолжение комментария во время раскрытия сокращения

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

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

# ========
#

person Alastair Irvine    schedule 29.05.2020    source источник


Ответы (1)


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

" 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>=.

person Alastair Irvine    schedule 29.05.2020