微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

将vim变量插入文本以注释快捷方式

我有一个简单的目标:映射Ctrl-C,一个命令,我不认为我曾经用来杀死 vim,在一行的开头自动插入正确的字符,根据该行注释掉该行文件文件类型.

我想我可以使用自动命令识别文件类型,并在文件打开时将vim变量设置为正确的注释字符.所以我尝试了类似的东西:

" Control C,which is NEVER used. Now comments out lines!
autocmd BufNewFile,BufRead *.c let CommentChar = "//"
autocmd BufNewFile,BufRead *.py let CommentChar = "#"
map <C-C> mwI:echo &CommentChar<Esc>`wll

该地图标记我当前的位置,在插入模式下转到行的开头,在该点回显注释字符,进入命令模式,返回到设置标记,并向右移动两个字符以弥补插入注释字符(假设C样式注释).

斜体部分是我遇到麻烦的部分;它只是作为一个占位符来代表我想做的事情.你能帮我弄清楚如何实现这个目标吗?如果您使用strlen(CommentChar)向右移动正确数量的空格,则可获得奖励积分! vim-master的额外奖励积分包括如果您处于视觉模式时如何进行块式评论!!

我在vim脚本方面还是比较新的;我的.vimrc是98行长,所以如果你能解释你提供的任何答案,请帮助我!谢谢.

解决方法

您可以使用< C-r>这里:

noremap <C-c> mwI<C-r>=g:CommentChar<CR><Esc>`wll

见:h i_CTRL-R.

另请查看NERDCommenter插件,它的映射将如下所示:

" By default,NERDCommenter uses /* ... */ comments for c code.
" Make it use // instead
let NERD_c_alt_style=1
noremap <C-c> :call NERDComment(0,"norm")<CR>

而且您不必自己定义注释字符.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐