2015-02-09 2 views
1

Я использую GVim для Linux и пытаюсь восстановить макрос, используя скрипт vim, используя команду :source. Я заметил, что если сохраненный макрос содержит ключ возврата, то неявно добавляется ^J, тем самым изменяя поведение макросов. Это происходит, даже если я вводил их вручную в командной строке. Например:Восстановление макроса Vim с управляющим символом

let @c = "<CR>" 

Если отобразить содержимое регистра, он показывает ^J закралась:

 
:reg c 
--- Registers --- 
"c ^M^J 

Если бы я был записать только ключ возврата, нет никаких побочных дополнений. Любые подсказки, почему ^J ползет?

ответ

3

Реестры имеют эвристику, которая определяет их режим символов/линий. Строка, заканчивающаяся нажатием Enter, запускает обнаружение линии, и это приводит к тому, что Vim добавляет ^J. Вы можете использовать setreg(), что позволяет вам указать режим регистрации через дополнительный третий аргумент:

:call setreg('c', "\<CR>", 'c') 
:reg c 
--- Registers --- 
"c ^M 
Смежные вопросы