我经常使用Vim编写LaTeX。我已经被告知可以使用以下命令评论一些选定的行(在可视模式下):
:'<,'>s!^!%!
同样,可以使用此命令在视觉模式中取消注释行:
:'<,'>s!^%!!
此处,&#39;%&#39;表示LaTeX的注释符号。但我非常想制作一个快捷方式,让我自己更容易使用这些命令。例如键绑定或某种功能,这样我就不必记住这种语法。如何做到这一点?
答案 0 :(得分:3)
首先,有几个评论者插件,这样做非常好,这些是通用的(通常是可扩展的),因此它们适用于任何文件类型,而不仅仅是Latex:
只是一些受欢迎的插件。
也就是说,自己开发映射是一种很好的学习经历。方法如下:
首先,映射只是指示当按下某些键时,Vim将它们转换为其他键(在右侧)。您的映射是可视模式,因此命令为:vmap
。你通常做什么?您选择要评论的行,然后按:
; Vim会自动为您插入'<,'>
。您编写:s
命令,然后按 Enter 结束。
翻译:
vmap <Leader>c :s!^!%!<CR>
<Leader>
是一个可配置的未使用密钥,默认为反斜杠。因此,按 \ 然后 C 调用映射。把它放到你的~/.vimrc
中,使它永久化,你就完成了。 等待!还有更多。
首先,you should use :vnoremap
;它使映射不受重映射和递归的影响。
其次,该映射是全局的,但它仅适用于Latex filetype 。因此,它应仅适用于Latex 缓冲区;那里有<buffer>
修饰符。
您可以通过预先:autocmd Filetype tex ...
来定义某些文件类型,然后将其放入~/.vimrc
。但是,当您为各种文件类型添加映射和其他设置时,这会变得难以处理。最好将命令放入~/.vim/ftplugin/tex_mappings.vim
。 (这要求您拥有:filetype plugin on
。)
vnoremap <buffer> <Leader>c :s!^!%!<CR>
从技术上讲,您应该使用<LocalLeader>
代替<Leader>
。它们默认使用相同的密钥,但区别允许使用不同的前缀密钥进行缓冲区本地映射(仅当您需要/喜欢时)。
让我们添加替代映射以取消注释,通过 \ 和 Shift + C 触发:
vnoremap <buffer> <LocalLeader>c :s!^!%!<CR>
vnoremap <buffer> <LocalLeader>C :s!^%!!<CR>
请注意,您可以将:help sub-replace-expression
与条件表达式结合使用。如果这里有什么东西在你头上,请不要担心。无论如何,你应该使用上面提到的插件之一: - )