Можно ли сопоставить ключ Windows в Vim? - PullRequest
15 голосов
/ 29 ноября 2008

Использование ключа Windows как мета очень полезно в Emacs, есть ли способ сделать это в Vim?

Ответы [ 5 ]

8 голосов
/ 08 апреля 2014

Вы определенно можете, даже в терминале, хотя вы должны использовать его как мета-ключ (я не нашел способа использовать его самостоятельно).

Отредактируйте ваш файл .vimrc с помощью vim. Скажем, вы хотите переназначить Win+q в обычном режиме, чтобы выйти из vim. Просто добавьте свое сопоставление и, при попытке указать ярлык, нажмите Ctrl+V, затем Win+q.

Это добавит что-то похожее на ^X@sq в ваш файл (но не вводите его напрямую , ^X - это специальный символ ).

В конце ваша строка должна выглядеть так:

nnoremap ^X@sq :q<CR>

Сохраните и выйдите, снова запустите vim, и все.

Примечание: Ctrl+v в режиме вставки буквально вставляет следующую клавишу / комбинацию клавиш. Для получения дополнительной информации попробуйте :help i_CTRL-V в vim.

5 голосов
/ 29 ноября 2008

Вы можете использовать AutoHotkey для сопоставления ключа Windows с другим ключом. Активируйте отображение только тогда, когда vim активен:

#IfWinActive ahk_class GVIM
RWin::Alt  
LWin::Alt  
#IfWinActive  ; This puts subsequent remappings and hotkeys in effect for all windows.
4 голосов
/ 04 июля 2012

Извините за ответ на столь древний вопрос, но решение действительно простое: невозможно использовать ключ Win в терминале, но его можно использовать с Gvim. Просто передайте его как модификатор T. Например,

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

отобразит Win + F5 в команду: q. Но его можно использовать только под * nix.

4 голосов
/ 08 апреля 2010

Ни один из этих ответов (включая этот) не зависит от 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

0 голосов
/ 29 ноября 2008

Не совсем уверен, но комбинация клавиш Ctrl + Esc предназначена только для окон. Это не поможет с vim

...