摘要:
let @c = "dd/##completed <CR> p"
不工作,有什么建议吗?
我录制了一个删除一行的宏,移动到另一行(我的##完成部分)并将该行粘贴到此处。
这一点工作正常,直到我意识到标记('c - 指向我的##完成部分)不会粘在文本上,而是粘在行本身上(显而易见的是我想到它)。
所以我改变了我的.vimrc以执行搜索##行完成并粘贴其下面的内容。
代码如下......
let @c = "dd/completed <CR> p"
但这不起作用,而是在命令行中出现“/ completed p”。所以看起来vimrc没有正确处理回车,我这里的语法有错吗?
或者,如果这是一种移动线路的可怕方式,那么任何人都可以提供更好的选择吗?
答案 0 :(得分:4)
我不完全理解你的映射,但你需要在双引号内写\<CR>
来获得回车;反斜杠丢失了。或者,您可以通过 Ctrl + V (或许多Windows安装上的 Q )直接插入它,然后 Enter
通常,我不会在你的.vimrc中预设一个寄存器(c
,你错误地称之为“mark”);如果您经常需要这个,请通过:nnoremap
定义映射。您可以将映射分配给任何空闲键序列(并使用<Leader>
;即反斜杠,您有一个空闲的起始键),但您只有26个命名寄存器。
要移动文本,请查看:move
命令。这可能会做你想要的:
:move /##completed