注释多行Vimrc的功能

J-W*_*Win 2 vim comments

所以我现在喜欢这个解决方案来评论vim中的多行:

  1. CTRL-v(进入可视阻止模式)
  2. 选择要评论的行
  3. Shift-i(进入插入模式)
  4. 输入您的语言使用的任何评论字符
  5. ESC ESC(两次按退出键可使结果显得更快)

但我想帮助将这些步骤映射到我的vimrc文件中.我目前使用以下内容来评论行:

vnoremap ;/ <C-v>0I// <ESC>
Run Code Online (Sandbox Code Playgroud)

对于那些想要解释命令功能的人:

您基本上;/在可视模式下使用此键入时(Visual,Visual Line和Visual Block模式都可以工作,因为该<C-v>部分会强制您进入Visual Block模式,这是正确的).

0I部件将使您在行的开头处进入插入模式.

// <ESC>部分将插入注释字符//并使您回到正常模式.

我需要帮助的部分是取消注释线.如何在我的vimrc中编写一个基本上让我切换//字符的函数?

理想情况下,解决方案将涉及以下内容:

  1. 选择线条
  2. 紧迫 ;/
  3. 如果没有//字符,则会插入它们
  4. 如果有ARE //字符,那么它将删除它们

Men*_*ックス 6

把它放在你的.vimrc文件中:

vnoremap <silent> ;/ :call ToggleComment()<cr>

function! ToggleComment()
        if matchstr(getline(line(".")),'^\s*\/\/.*$') == ''
                :execute "s:^://:"
        else
                :execute "s:^\s*//::"
        endif
endfunction
Run Code Online (Sandbox Code Playgroud)

  • 它工作得很好,但你能解释一下这是如何工作的吗?@Meninx (2认同)