【发布时间】:2010-09-24 13:17:04
【问题描述】:
在 Emacs 中使用 Windows 键作为 Meta 非常有用,在 Vim 中有没有办法做到这一点?
【问题讨论】:
标签: vim editor keyboard-shortcuts keymapping
在 Emacs 中使用 Windows 键作为 Meta 非常有用,在 Vim 中有没有办法做到这一点?
【问题讨论】:
标签: vim editor keyboard-shortcuts keymapping
你当然可以,即使在终端中,虽然你必须将它用作元键(我发现没有办法单独使用它)。
用 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。
【讨论】:
不太确定,但 Ctrl+Esc 组合键是仅 Windows 的键映射。它对 vim 没有帮助
【讨论】:
很抱歉回答了这么古老的问题,但解决方案非常简单:在终端中无法使用 Win 键,但可以在 Gvim 中使用。只需将其作为修饰符 T 传递即可。例如,
:nmap <T-F5> :q<cr>
将 Win+F5 映射到 :q 命令。但是只能在*nix下使用。
【讨论】:
这些答案(包括这个)都不是 vim 特定的,所选答案是 Windows 特定的。这是运行 X 的 *nix 的一个。
我将左 Win 键映射到 Esc 键。这在虚拟终端中不起作用,但在 X 中起作用。
要么:
(1) 将keysym Super_L = Escape追加到~/.Xmodmap并执行xmodmap .Xmodmap。
|______(1a) ~ 与echo "keysym Super_L = Escape" >> ~/.Xmodmap && 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
【讨论】:
您可以将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.
【讨论】: