Vim复制线并注释掉旧线

时间:2016-08-17 13:48:02

标签: vim

我正在努力实现同样的问题,但在Vim。

Duplicate line and comment out old one

基本上我想拉线,注释掉旧线,粘贴新线,并将光标保持在新线的开头并以插入模式结束。

例如:

def func (param)

将更改为:

//def func (param)
def func (param)

我为它录制了一个宏,将其放入.vimrc并通过@y

使用它
" copy-and-comment-line macro
" yank line, comment out original line, move cursor at the begining
" of copied line and end in insert mode
let @y='yypkui//kdklkl'

(我不确定它会对你有用,因为它包含不可打印的~@字符,代码块不会显示)

宏工作,但是在vim中是否有一个内置命令可以实现同样的功能?

1 个答案:

答案 0 :(得分:6)

此映射应该为您完成:

nnoremap YOURKEY YI//<esc>p
  • 光标将位于粘贴的行上。
  • 用您喜欢的键(或多个键)替换YOURKEY
  • 注意,此答案仅适用于您的示例//样式评论。如果您希望它是通用解决方案,则必须构建一个函数,在此函数中检查文件类型,并确定应使用哪种注释样式。到目前为止还没有好的内置解决方案,但您可以查看NERDCommentervim-commentary插件以了解它们是如何实现的,或者您可以安装其中一个(或类似的插件)并调用它在您的映射中起作用。