2014-10-12 346 views
0

我知道Alt键是默认的mod键。什么是Vim中的mod键,我可以将Win键分配给Vim mod键吗?

但我可以改变,要在Vim的,因为Alt键关键已经是我的wmii window manager MOD键?

或特别,我可以使用的Vim的键键映射就像Alt键Ctrl键,并?就像我想<Win-J>就像<C-J>nnoremap

我读过这个问题Can Windows key be mapped in Vim?但它没有回答我的疑惑。所以我来到这里寻求帮助。

PS:我使用Ubuntu 14.04

+0

您使用的是GNU/Linux系统吗? – rendon 2014-10-12 03:51:15

+0

@rendon,是的,我使用的是Ubuntu 14.04 – Zen 2014-10-12 03:52:08

回答

1

因为Vim不认窗口键,你可能不得不做这样的事情:

  1. 地图窗口关键,映射的ctrl键序列您的操作系统(例如,按Ctrl + L)(仅当vim /你的shell是活动窗口)

  2. `nnoremap v echo“hi”。现在你可以按下Win + V

这是不是最好的解决方案,因为我不知道你的操作系统如何对待持有win键的Ctrl + l多个分派。也许你需要找出你是否可以把它“请按,然后立即释放”当你按下win(但还没有公布它)

编辑:

解决方案分为两个部分:映射Windows键一定的顺序(如ctrl + l),然后在vim,把这样的事情在你的vimrc:

inoremap <c-l><c-k> hello 
nnoremap <c-l><c-k> :echo("hello")<cr> 
插入模式

现在按Win + k应键入hello你,在正常模式下,按win + k应回声“你好”。

+0

你认为我们可以使用'contral + 2普通密钥'如''?怎么做? – Zen 2014-10-12 10:49:03

+0

''应该工作。 (注意,在Vim /终端被硬编码为'Enter'键)你想要使用一个非硬编码的密钥,如'' – 2014-10-12 20:51:06

+0

你的意思是我可以将映射到:echo'test',然后当我按下'Control','j','k',我可以在屏幕上进行'测试'吗? – Zen 2014-10-13 02:33:51

1

在我的系统我用xmodmap使Window键和附加Ctrl键,这样一来我用的是Window键作为我控制键(原Ctrl键仍然有效)。

保存在~/.Xmodmap下面几行:

! Make windows Meta key an aditional Control key 
remove Control = Control_L Control_R 
remove mod4 = Super_L Super_R 
add Control = Control_L Super_L 

某些窗口管理器自动加载该文件,如果没有,用xmodmap ~/.Xmodmap

+0

但是我应该如何使用Win作为与nmap中原始控件不同的关键字? – Zen 2014-10-12 03:59:09

+0

此后'Win'是一个'Ctrl'键,在映射中用''指代它。 – rendon 2014-10-12 04:03:32

+0

你的意思是captalized C?所以它与映射中的原始ctrl没有区别?所以我仍然没有得到一个更特殊的映射关键。 – Zen 2014-10-12 04:28:26