English 中文(简体)
Windows键可以映射到Vim中吗?
原标题:
  • 时间:2008-11-29 10:28:02
  •  标签:

在Emacs中使用Windows键作为Meta非常有用,Vim中有没有相应的方法?

问题回答

你绝对可以,在终端中甚至可以使用它作为元键(我没有找到单独使用它的方法)。

Edit your .vimrc file with vim. Say you want to remap Win+q in normal mode to quit vim. Simply add your mapping and, when trying to indicate your shortcut, press Ctrl+V, then 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特定的。这里是一个运行X的*nix的解决方案。

我将我的左Win键映射到Esc键。这在虚拟终端中无法工作,但可以在X中工作。

Either:
(1) Append keysym Super_L = Escape to ~/.Xmodmap and execute xmodmap .Xmodmap.
|______(1a) ~same as echo "keysym Super_L = Escape" >> ~/.Xmodmap && xmodmap .Xmodmap .
(2) Execute xmodmap -e "keysym Super_L = Escape" .

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

REFERENCES:
[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 没有帮助。





相关问题
热门标签