在Emacs中使用Windows键作为Meta非常有用,那么在Vim中有没有这样的方法呢?
在Emacs中使用Windows键作为Meta非常有用,那么在Vim中有没有这样的方法呢?
即使在终端中,您肯定可以使用Windows键,但必须将其用作元键(我没有找到单独使用它的方法)。
使用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
。
很抱歉回答这么古老的问题,但解决方案非常简单:在终端中无法使用Win键,但可以在Gvim中使用它。只需将其作为修饰键T传递即可。例如:
:nmap <T-F5> :q<cr>
将Win+F5映射为:q命令。但它只能在*nix下使用。
您可以使用AutoHotkey将Windows键映射到其他键。仅在Vim处于活动状态时激活映射:
#IfWinActive ahk_class GVIM
RWin::Alt
LWin::Alt
#IfWinActive ; This puts subsequent remappings and hotkeys in effect for all windows.
这些答案(包括本答案)都不是特定于vim的,所选答案是特定于Windows的。这里有一个适用于*nix运行X的方法。
我将我的左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
不太确定,但 Ctrl+Esc 组合键只是 Windows 上的键映射。它对 vim 没有帮助。