[英]Function to Comment Multiple Lines Vimrc
所以我目前喜欢这种在vim中注释多行的解决方案:
CTRL-v
(进入可视块模式) Shift-i
(进入插入模式) ESC ESC
(两次按ESC ESC
键可使结果显示更快) 但是,我需要一些帮助将这些步骤映射到我的vimrc文件中。 我目前使用以下注释行:
vnoremap ;/ <C-v>0I// <ESC>
对于那些想要解释命令功能的人:
您基本上是在视觉模式下键入;/
来使用它(视觉,视觉线条和视觉块模式都可以使用,因为<Cv>
部分会迫使您进入视觉块模式,这是正确的)。
0I
部分将使您在行的开头进入插入模式。
// <ESC>
部分将插入注释字符//
并使您回到“普通”模式。
我需要帮助的部分是取消注释。 如何在vimrc中编写一个函数,基本上可以让我切换//
字符?
理想情况下,解决方案将涉及以下内容:
;/
//
字符,则将其插入 //
字符,它将删除它们 将其放在您的.vimrc
文件中:
vnoremap <silent> ;/ :call ToggleComment()<cr>
function! ToggleComment()
if matchstr(getline(line(".")),'^\s*\/\/.*$') == ''
:execute "s:^://:"
else
:execute "s:^\s*//::"
endif
endfunction
检查评论插件。 它允许所有语言具有一种绑定。
使用python脚本非常容易
function! Comment()
python3 << EOF
import vim
r = vim.current.range
line = vim.current.buffer[r.start]
if line.startswith('// '):
vim.current.buffer[r.start] = vim.current.buffer[r.start].replace('// ', '')
else:
vim.current.buffer[r.start] = '// ' + vim.current.buffer[r.start]
EOF
endfunction
" ctrl slash
noremap <C-_> :call Comment()<CR>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.