не могу заставить эти клавиши управления работать в vim - PullRequest
0 голосов
/ 17 мая 2019

Я смотрю на часть этого файла vimrc от Бена Фрейна

https://gist.github.com/benfrain/f09dd39e66fe2da9cf0a

" Allow line movement on wraps with CTRL+usual {{{
vmap <C-j> gj
vmap <C-k> gk
vmap <C-h> g$
vmap <C-6> g^
vmap <C-0> g^
nmap <C-j> gj
nmap <C-k> gk
nmap <C-4> g$
nmap <C-6> g^
nmap <C-0> g^
" }}}

Я замечаю проблему в этом списке, например, ctrl-k уже делает gk.Поэтому, когда это работает, это не из его сопоставления.

Я использую macvim

Даже если я попробую что-то простое

~/.vim$ cat vimrc
nmap <C-0> aaaa
~/.vim$ 

или

~/.vim$ cat vimrc
nmap <C-0> aaaa
vmap <C-0> aaaa
~/.vim$ 

это не работает, это не отображение ctrl-0 для набора 'aaaa'

Я пробовал с /usr/local/bin/vim (это macvim, установленный через brew cask install macvim), и я пробовал /usr/bin/vim (это VIM, который поставляется с предустановленным).Так что не имеет значения, какой vim я использую.

И я хотел бы знать, какие, если таковые имеются, клавиши Ctrl можно сопоставить.

Я слышал, что это плохая идея для сопоставленияCtrl, может быть, потому что многие из них используются, и что лучше использовать клавишу лидера, по умолчанию это обратный слеш.Так .map <leader>0 aaaa.и это работает, но мне по-прежнему любопытно, как отображается Ctrl.

Ответы [ 2 ]

3 голосов
/ 20 мая 2019

Vim не «видит» все доступные комбинации Ctrl-что-то. Vim разработан для терминала Unix, и эти терминалы не предоставляют все клавиши Ctrl для приложения.

Чтобы проверить, сопоставима ли комбинация Ctrl, выполните следующие действия:

Откройте Vim и перейдите в режим вставки. Затем нажмите Ctrl-v , а затем комбинацию Ctrl, которую вы хотите отобразить. Если что-то отображается, комбинация Ctrl сопоставима.

Примеры:

  • Если вы нажмете Ctrl-v , а затем Ctrl-k , появится символ ^k (обычно светло-голубой). Так что Ctrl-k сопоставимо.
  • Если вы нажмете Ctrl-v , а затем Ctrl-0 , ничего не отобразится. Так что Ctrl-0 является не сопоставимым.
  • Если вы нажмете Ctrl-v , а затем Ctrl-3 , появится символ ^[. Итак ... Ctrl-3 равно ESC .
0 голосов
/ 17 мая 2019

На этой странице упоминается разница между xmap, vmap и nmap https://vim.fandom.com/wiki/Mapping_keys_in_Vim_-Tutorial(Part_1)

:map <-- (presumably display all maps)

:nmap - Display normal mode maps
:imap - Display insert mode maps
:vmap - Display visual and select mode maps
:smap - Display select mode maps
:xmap - Display visual mode maps
:cmap - Display command-line mode maps
:omap - Display operator pending mode maps

и

nmap, nnoremap, nunmap          Normal mode
imap, inoremap, iunmap          Insert and Replace mode
vmap, vnoremap, vunmap          Visual and Select mode
xmap, xnoremap, xunmap          Visual mode
smap, snoremap, sunmap          Select mode
cmap, cnoremap, cunmap          Command-line mode
omap, onoremap, ounmap          Operator pending mode

ПохожеВы не можете делать цифры с помощью Ctrl.

nmap для нормального режима, поэтому для ввода aaaa вам нужно набрать iaaaa, чтобы сначала перейти в режим вставки.Итак, с помощью nmap, сопоставления с iaaaa, чтобы набрать 'aaaa'.

Вы можете попробовать nmap <C-a> iaaaa вплоть до <C-z> и получить ответ от большинства из них.Вы можете сделать map <C-a> aaaa или :map <C-a> aaaa

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...