用.vimrc和标记苦苦挣扎

时间:2012-08-22 11:04:14

标签: vim

摘要:

let @c = "dd/##completed <CR> p"

不工作,有什么建议吗?


我录制了一个删除一行的宏,移动到另一行(我的##完成部分)并将该行粘贴到此处。

这一点工作正常,直到我意识到标记('c - 指向我的##完成部分)不会粘在文本上,而是粘在行本身上(显而易见的是我想到它)。

所以我改变了我的.vimrc以执行搜索##行完成并粘贴其下面的内容。

代码如下......

let @c = "dd/completed <CR> p"

但这不起作用,而是在命令行中出现“/ completed p”。所以看起来vimrc没有正确处理回车,我这里的语法有错吗?

或者,如果这是一种移动线路的可怕方式,那么任何人都可以提供更好的选择吗?

1 个答案:

答案 0 :(得分:4)

我不完全理解你的映射,但你需要在双引号内写\<CR>来获得回车;反斜杠丢失了。或者,您可以通过 Ctrl + V (或许多Windows安装上的 Q )直接插入它,然后 Enter


通常,我不会在你的.vimrc中预设一个寄存器(c,你错误地称之为“mark”);如果您经常需要这个,请通过:nnoremap定义映射。您可以将映射分配给任何空闲键序列(并使用<Leader>;即反斜杠,您有一个空闲的起始键),但您只有26个命名寄存器。


要移动文本,请查看:move命令。这可能会做你想要的:

:move /##completed