У меня есть эта команда в моем .vimrc:
vip:normal @g<CR>
Когда я устанавливаю регистр 'g', набрав в буфере вот так, он работает:
qg<CR>jq
Если я наберу :registers, он покажет:
--- Registers ---
"g ^Mj
После этого ввод @g приводит к возврату каретки, а затем курсор перемещается на следующую строку. ^M отображается специальным цветом.
Однако, когда я использую команду setreg в своем vimrc, если я набираю @g, ничего не происходит.
call setreg('g','^Mj')
Если я наберу :registers, он покажет:
--- Registers ---
"g ^Mj
^M не имеет специального цвета.
У меня есть следующее в моем .vimrc:
map <CR> :call MyFunction<CR>
Возврат каретки, который я хочу сохранить в регистре, должен запустить MyFunction. MyFunction вызывается отлично, пока я заполняю буфер вручную, а не с помощью setreg.
Где я ошибся? Моя платформа Linux.
call setreg('g','^Mj')
? Вы использовали ctrl-v ctrl-m? Или просто набрали каретку и букву М? - person sidyll   schedule 07.12.2011^M
. - person overthink   schedule 07.12.2011