1

概括:

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

不工作,有什么建议吗?


我记录了一个宏,它删除一行,移动到另一行(我的##completed 部分)并将该行粘贴到这里。

这工作正常,直到我意识到标记('c - 指向我的##completed 部分)不粘在文本上,而是粘在行本身上(现在我想到了很明显)。

因此,我更改了我的 .vimrc 以搜索 ##completed 行并将内容粘贴到它下面。

代码如下...

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

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

或者,如果这是一种糟糕的移动线路方式,谁能提供更好的选择?

4

1 回答 1

4

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


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


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

:move /##completed
于 2012-08-22T11:29:47.710 回答