【问题标题】:Can Windows key be mapped in Vim?可以在 Vim 中映射 Windows 键吗?
【发布时间】:2010-09-24 13:17:04
【问题描述】:

在 Emacs 中使用 Windows 键作为 Meta 非常有用,在 Vim 中有没有办法做到这一点?

【问题讨论】:

    标签: vim editor keyboard-shortcuts keymapping


    【解决方案1】:

    你当然可以,即使在终端中,虽然你必须将它用作元键(我发现没有办法单独使用它)。

    用 vim 编辑你的 .vimrc 文件。假设您想在正常模式下重新映射 Win+q 以退出 vim。 只需添加您的映射,并在尝试指示您的快捷方式时,按Ctrl+V,然后按Win+q

    这会将类似于^X@sq 的内容添加到您的文件中(但不要直接输入^X 是一个特殊字符)。

    最后你的行应该是这样的:

    nnoremap ^X@sq :q<CR>
    

    保存并退出,再次启动 vim,就这样了。

    注意:Ctrl+v 在插入模式下按字面意思插入以下键/键组合。有关更多信息,请尝试在 vim 中使用 :help i_CTRL-V

    【讨论】:

      【解决方案2】:

      不太确定,但 Ctrl+Esc 组合键是仅 Windows 的键映射。它对 vim 没有帮助

      【讨论】:

        【解决方案3】:

        很抱歉回答了这么古老的问题,但解决方案非常简单:在终端中无法使用 Win 键,但可以在 Gvim 中使用。只需将其作为修饰符 T 传递即可。例如,

        :nmap <T-F5> :q<cr> 
        

        将 Win+F5 映射到 :q 命令。但是只能在*nix下使用。

        【讨论】:

        • 在 Linux 上的普通 vim 上是什么?我试过这个T的东西,没用
        • 这似乎不适用于最常见的 gvim 前端(GTK3),似乎适用于旧的 gvim GTK2 前端:link
        • 是的。在编写答案时,GTK3 前端还不存在。
        【解决方案4】:

        这些答案(包括这个)都不是 vim 特定的,所选答案是 Windows 特定的。这是运行 X 的 *nix 的一个。

        我将左 Win 键映射到 Esc 键。这在虚拟终端中不起作用,但在 X 中起作用。

        要么:
        (1) 将keysym Super_L = Escape追加到~/.Xmodmap并执行xmodmap .Xmodmap
        |______(1a) ~ 与echo "keysym Super_L = Escape" &gt;&gt; ~/.Xmodmap &amp;&amp; xmodmap .Xmodmap 相同。
        (2) 执行xmodmap -e "keysym Super_L = Escape"

        如果您希望它在虚拟终端中工作,请参阅 [0]。

        参考:
        [0] http://www.mail-archive.com/screen-users@gnu.org/msg02859.html
        [1]http://www.paganini.net/index.cgi/linux/nocaps.html
        [2]http://ubuntuforums.org/archive/index.php/t-975229.html

        【讨论】:

        • 很多细节,尤其是对屏幕的赞赏。虽然我必须承认我一般不会错过 WinKey
        【解决方案5】:

        您可以将AutoHotkey to map windows 键用于其他键。仅当 vim 处于活动状态时才激活映射:

        #IfWinActive ahk_class GVIM
        RWin::Alt  
        LWin::Alt  
        #IfWinActive  ; This puts subsequent remappings and hotkeys in effect for all windows.
        

        【讨论】:

          猜你喜欢
          • 2011-11-21
          • 1970-01-01
          • 1970-01-01
          • 2010-10-20
          • 2010-09-12
          • 2016-04-21
          • 1970-01-01
          • 2013-12-17
          • 1970-01-01
          相关资源
          最近更新 更多