Eşittir işaretiyle Ctrl eşleme


10

Ctrl'imi eşleştirmeye ve birlikte imzalamaya çalışıyorum. Benim vimrc çalışıyorum budur:

nnoremap <C-=>    : echo "Hello" <CR> 

Ancak, haritalamanın tetiklenmediği anlaşılıyor. Neyi yanlış yaptığım konusunda herhangi bir öneriniz var mı? Macvim kullanıyorum.




@Montu Evet, oldukça yaygın bir soru. Acaba vim'in karakterlerin, temsillerin iç temsili ve vim'in neyi haritalayabildiği / neyi haritalayamayacağı üzerine kanonik bir yazı yazmanın iyi bir fikir olup olmayacağını merak ediyorum.
James

Yanıtlar:


17

Ne yazık ki, haritalamanın güvenilir bir yolu yoktur Ctrl-=.

Çünkü o yol ctrl+keyakorları terminali ile etkileşim ve içten temsil edildiği, Vim tespit edebilmek için garanti edildiğini sadece Ctrl-eşleştirmeleri ASCII standardında tanımlanan olanlardır. İşte bu tür ctrl+keykombinasyonların tam listesi ve baytların her biri temsil eder.

Ctrl-@                 0x00            NUL
Ctrl-A to Ctrl-Z       0x01 to 0x1A
Ctrl-a to Ctrl-z       0x01 to 0x1A
Ctrl-[                 0x1B            ESC
Ctrl-\                 0x1C
Ctrl-]                 0x1D
Ctrl-^                 0x1E
Ctrl-_                 0x1F
Ctrl-?                 0x7F            DEL

Bununla birlikte, bunların çoğunun Vim'de zaten bir fonksiyona sahip olduğunu ve bazılarının diğer tuş vuruşlarıyla özdeş / ayırt edilemez olduğunu unutmayın. Örneğin CTRL-M, aynı anahtar koduna sahiptir Enter, bu nedenle bunlardan birini eşlerseniz, diğerini kaçınılmaz olarak eşlersiniz.

Kaynak: Vim-FAQ

Terminalinizi, bu yığın taşması iş parçacığında olduğu gibi, eşlemeniz için belirli bir bayt dizisi gönderecek şekilde yapılandırarak yukarıdaki kısıtlamaları aşabilirsiniz , ancak bu kesinlikle bir acı olacaktır. Şahsen, sadece farklı bir harita seçmeyi tercih ederim.

Bu nihayetinde düzeltilebilir, ancak olası değildir, çünkü Vim çalıştığı terminale güvenir. Ancak, bunun Neovim'de çalışması için iyi bir olasılık var. Bunun şu anda işe yarayıp yaramadığını bilmiyorum.


1
Güzel, gelecekte insanları buna bağlayacağım.
Tumbler41
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.