vim评论/取消评论与一个映射[重复]

Posted

技术标签:

【中文标题】vim评论/取消评论与一个映射[重复]【英文标题】:vim comment/uncomment with one mapping [duplicate] 【发布时间】:2015-08-17 22:54:36 【问题描述】:

我是 vim 的新手。我有以下映射来评论我的 python 代码:

nmap cc 0i#<ESC>

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

谢谢。

edit : 和question 不一样,不知道不用插件怎么办。

【问题讨论】:

请find a good comment plugin。还要注意,cc 已经被 Vim 用于更改整行(与S 相同)。见:h cc 【参考方案1】:

您不应该尝试自己(糟糕地)实现这一点;这是一个已解决的问题,您可以从几个好的插件中进行选择。插件列表见Comment Lines according to a given filetype。


不过,作为一种学习体验,尝试映射是可以的。这是一种使用:help map-expr 首先检查该行是否存在评论的方法:

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

PS:You should use :noremap;它使映射不受重映射和递归的影响。

【讨论】:

【参考方案2】:

有这个plugin。这非常好,而且他适用于多种语言。

【讨论】:

以上是关于vim评论/取消评论与一个映射[重复]的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Microsoft VSCode 隐藏/取消隐藏评论?

通过匿名委托取消订阅事件[重复]

SQL查询,如何去除重复的记录?

如何在Vim上重复某些动作?

在vim中注释/取消注释多个固定行

js的防抖、节流