关于功能:vim注释/取消注释一个映射

vim comment/uncomment with one mapping

本问题已经有最佳答案,请猛点这里访问。

我是vim的新人(bie)。 我有以下映射来评论我的python代码:

1
nmap cc 0i#<ESC>

我希望有相同的映射来取消注释一行。 我想我需要一个函数来检查该行的第一个字符。 你知道我怎么做的伎俩吗?

谢谢。

编辑:这个问题不一样,我想知道如何在没有插件的情况下做到这一点。


你不应该试图自己实现这个(很差); 这是一个已解决的问题,您可以从几个好的插件中进行选择。 有关插件列表,请参阅注释行根据给定的文件类型。

作为一种学习经验,尝试映射很好。 这是一种使用:help map-expr首先检查行是否存在注释的方法:

1
nnoremap <expr> cc getline('.') =~# '^#' ? '0x' : '0i#<ESC>'

PS:你应该使用:noremap; 它使映射不受重映射和递归的影响。


有这个插件。 它非常好,他可以使用多种语言。