【发布时间】:2012-01-15 00:00:20
【问题描述】:
我的 .vimrc 中有这个命令:
vip:normal @g<CR>
当我通过输入缓冲区设置寄存器“g”时,它可以工作:
qg<CR>jq
如果我输入 :registers,它会显示:
--- Registers ---
"g ^Mj
之后,输入@g 会导致回车,然后光标移动到下一行。 ^M 以特殊颜色显示。
但是,当我在 vimrc 中使用 setreg 命令时,如果我键入 @g,则什么也不会发生。
call setreg('g','^Mj')
如果我输入 :registers,它会显示:
--- Registers ---
"g ^Mj
^M 不是特殊颜色。
我的 .vimrc 中有以下内容:
map <CR> :call MyFunction<CR>
我要存入寄存器的回车是运行MyFunction。只要我手动填充缓冲区而不是使用 setreg,就会完美调用 MyFunction。
我哪里做错了?我的平台是 Linux。
【问题讨论】:
-
你是如何在
call setreg('g','^Mj')中输入^M的?你用 ctrl-v ctrl-m 吗?或者只是输入了一个插入符号和一个 M? -
caret M...啊...我曾尝试输入 caret v caret m 但失败了。我没有意识到您实际上必须在插入模式下键入 ctrl-v ctrl-m,而不是写入字符串“^V^M”。感谢那!实际上按下这些键是有效的。寄存器设置正确。感谢您的帮助。
-
ctrl-v
是我通常用来获取 ^M。
标签: vim carriage-return vim-registers