vim:将当前行换行为/**/comment

vim:将当前行换行为/**/comment,vim,Vim,我确信有无数的插件可以做到这一点,但它似乎很简单,我想自己学习如何做到这一点 我希望能够在多行注释中包装当前行。我试着做了一个映射,但是我不知道如何映射减号键来移动到行中的第一个单词 以下是我试图映射的键序列: <minus key> <insert /*> <escape insert> <$> <insert */> <escape insert> 尝试用映射减号键无效。这怎么可能呢?试试这个: nnoremap

我确信有无数的插件可以做到这一点,但它似乎很简单,我想自己学习如何做到这一点

我希望能够在多行注释中包装当前行。我试着做了一个映射,但是我不知道如何映射减号键来移动到行中的第一个单词

以下是我试图映射的键序列:

<minus key> <insert /*> <escape insert> <$> <insert */> <escape insert>

尝试用
映射减号键无效。这怎么可能呢?

试试这个:

nnoremap - mzI/* <esc>A */<esc>`z
nnoremap-mzI/*A*/`z
它的作用是:

  • nnoremap
    :在正常模式下启动非递归映射(
    nore
    )(
    n
    -
    n
    +
    nore
    +
    map
  • -
    :映射的键
  • mz
    :在当前光标位置设置标记
    z
    ,以便我们完成后可以返回到它
  • I
    :在当前行的第一个非空字符之前输入插入模式
  • /*
    :插入开头注释字符串
  • :离开插入模式
  • A
    :在当前行的最后一个非空字符之后进入插入模式
  • */
    :插入结束注释字符串
  • :再次退出插入模式
  • `z
    :跳到标记的行和列
    z
    'z
    -撇号而不是反勾号-会跳到行,但不会跳到列,我们已经在行上了,所以我们希望
    `z
    带我们回到起点)

我推荐Tim Pope的vim评论:太棒了。感谢您描述了所有内容,所以在将其放入我的vimrc之前,我知道它实际上在做什么。@user1028270不客气-很高兴能够提供帮助。:)我建议大家也看看
:帮助映射
-它详细说明了使用不同映射命令的许多很酷的方法。仅供参考,您可以通过在代码块(
)中使用不间断空格(
)而不是使用反勾来显示空格。@hvd Aha!我想一定有办法。我更新了。非常感谢。:)我刚才问了另一个问题,关于如何将其转换为切换,以便可以打开和关闭评论。我有点懒,但是这些文档非常吓人,只要看看这个问题是如何解决的,我就会学到很多东西。