新手在这里.我正在寻找一种更简单的方法VIM来评论/取消注释(只有一行评论,这是最常见的评论类型)C++代码只使用一个快捷键,如Ctrl+ /(不进入可视模式).是否可以通过映射而不使用第三方插件(例如书呆子)来实现此效果?谢谢
我通过以下映射实现它(leader/评论,leader?取消注释)
map <leader>/ :s/^\(\s*\)/\1\/\/ <CR>:noh<CR>
map <leader>? :s/^\(\s*\)\/\/\(\s*\)/\1<CR>:noh<CR>
Run Code Online (Sandbox Code Playgroud)
^\(\s*\) 从一行开头到第一个非空白字符匹配.\1\/\/用\1随后的相同空格替换捕获的空格()//其余的东西<CR>:noh<CR>会关闭搜索模式突出显示,以免在缓冲区中突出显示所有前导空格.
我只将它们用作普通模式映射,而不是插入模式.在正常模式下(使用mapleader,,我可以做一些事情,比如4,/评论接下来的4行,但是在内部评论所有东西都不够聪明{}.
它不像NERDCommenter产生的那样整洁.例如,它会变成这样:
if (thing) {
doSomething();
}
Run Code Online (Sandbox Code Playgroud)
进入:
// if (thing) {
// doSomething();
// }
Run Code Online (Sandbox Code Playgroud)
当这样的事情会更好.
// if (thing) {
// doSomething();
// }
Run Code Online (Sandbox Code Playgroud)
我autocmd在//经常使用的-comment语言中应用映射:
autocmd FileType c,cpp,php,javascript map <leader>/ :s/^\(\s*\)/\1\/\/ <CR>:noh<CR>
autocmd FileType c,cpp,php,javascript map <leader>? :s/^\(\s*\)\/\/\(\s*\)/\1<CR>:noh<CR>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
97 次 |
| 最近记录: |