【问题标题】:mapping # in vim在vim中映射#
【发布时间】:2012-06-22 20:43:14
【问题描述】:

在我的 .vimrc 中,我已将 #-key 映射到一个宏,用于注释掉/输入代码行。

不幸的是,vim 中的 # 已经有一个功能 - 它向后搜索光标下的单词。

我现在想要的是一种将此功能映射到另一个键序列的方法(理想情况下,我希望使用 Control-* 作为 * 单独向前搜索)。

有谁知道如何做到这一点?

非常感谢!

【问题讨论】:

  • 有几个评论插件:NERDCommenter,它使用<leader>c<space>来切换评论。另一个是tComment,它使用gcc 获得相同的结果。

标签: vim keymapping


【解决方案1】:

很遗憾,Ctrl + * 无法使用;我建议 \*;输入时间较长,但向后搜索可能并不常见。

:nnoremap <Leader>* #

【讨论】:

    【解决方案2】:

    正如 Ingo Karkat 所说,在 vim 中映射 Ctrl+某些键是不可能的。但是,您可以改为映射Alt+8

    noremap <A-8> #
    

    我建议使用 Alt+8 而不是 Alt+*,因为如果你想以不自然的方式弯曲你的手来按下多个修饰键来执行命令,你可能会使用 Emacs 而不是 Vim。

    【讨论】:

      【解决方案3】:

      我使用 \+c 进行评论,使用 \+d 删除 cmets。映射如下:

      :map \c <ESC>:s,^\(\s*\)[^/ \t]\@=,\1// <ESC>,e<CR>j$a
      :map \d <ESC>:s,^\(\s*\)// \s\@!,\1<ESC>,e<CR>j$a
      

      以上映射用于命令模式。摘自关于 SO 的一个答案,我目前无法找到。

      【讨论】:

        猜你喜欢
        • 2010-10-20
        • 1970-01-01
        • 2016-04-21
        • 2013-12-17
        • 2014-12-30
        • 2019-12-29
        • 2017-10-15
        • 1970-01-01
        • 2012-07-04
        相关资源
        最近更新 更多