2015-02-09 38 views
1

我在Linux上使用GVim,並試圖通過使用:source命令獲取vim腳本來恢復宏。我注意到,如果保存的宏包含返回鍵,則隱式地追加^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