Vim'de Sol Alt tuşunu eşleme?


12

Ben tuş kombinasyonunu eşlemleyebilir duyuyorum Right Alt+ Left Arrowile <a-left>veya tarafından <m-left>. Ama Left Altanahtarı haritalayamıyorum .

Bunu yapmanın bir yolu var mı?

Düzenleme:
Sadece netlik + <a-left>anlamına gelir . Buradaki önemli soru Vim'deki tuş eşlemeleri arasındaki ve perspektifi arasındaki fark nedir?AltLeft Arrow
Left AltRight Alt

Yanıtlar:


14

Bunu yaparsanız :help key-notationvim, sen Vim tanıyan tek düzenleyiciler vardiya, kontrol, (eş anlamlı olarak ele) alt / meta ve Mac komut tuşu olduğunu göreceksiniz. Xmodmap komutunu sağ alt anahtarınızı Vim'in tanıdığı yeni bir değiştiriciyle eşleştirmek için kolayca kullanabilirsiniz, ancak belki de bu değiştiricilerin hiçbiri şu anda sizin tarafınızdan kullanılmamaktadır. (Linux sistemlerinin Vim'in gördüğü gibi Mac komut tuşu değiştiricisini temsil etmesini sağlamak mümkün mü bilmiyorum.) X'in tanıdığı başka değiştiriciler de var: Mod4, Hyper, vb. onları görmemek ya da en azından onları bağlayamamak.

Başka bir seçenek, SağAlt-Sol Ok için belirli bir tuş dizisi, örneğin Esc- [MyUniqueGarbageHere) oluşturmak üzere düzenleme yapmaktır. Bu kesinlikle yapılabilir ve daha sonra Vim'e bunu istediğiniz herhangi bir eyleme bağlamasını söyleyebilirsiniz, bu da sol alt anahtarınızın bağlı olduğundan farklıdır. Bunun dezavantajı, her RightAlt + Key kombinasyonu için ayrı ayrı yapmanız gerektiğidir. Ama bunu sadece birkaç anahtar için yapmak istiyorsanız, çok uygun.

Tam olarak nasıl uyguladığınız, Vim'i X'te veya bir Linux konsolunda mı yoksa başka bir ortamda mı kullanacağınıza bağlı olacaktır. X'te kullanmaktan bahsettiğinizi varsayalım.

  1. RightAlt'ı Mod3'e bağlamak için xmodmap kullanın. X oturumunuz başladığında bunun bir kez çalışmasını düzenleyin. Bazı dağıtımlarda zaten xmodmap komutları içeren belirli konumlara dosya yükleyecek bir / etc / X11 / xinit / xinitrc dosyası vardır.

    xmodmap -e "remove Mod1 = Alt_R" -e "add Mod3 = Alt_R"
    
  2. Ben urxvt terminalini kullanıyorum. Xresources tipi bir dosyada tuş bağlamalarının tanımlanmasını sağlar. ~ / .Config / Xresources dizininde yapabilirsiniz; ~ / .Config / app-defaults / URxvt içinde yaparım. Bu dosyaya böyle bir satır koyarım (tam sözdizimi onu koyduğunuz dosyaya duyarlıdır):

    URxvt.keysym.Mod3-Left:    \033<RAlt-Left>
    

    Şimdi yeni bir terminal başlatın, ctrl-V yazın ve ardından RightAlt + Left yazın. Komut satırında ^ [[<RAlt-Left>) karakterlerini görmelisiniz. Çalışıyor mu? İyi.

  3. ~ / .Vimrc'nize şunu koyun:

    set t_Ff=^[<RAlt-Left>
    

Buradaki '^ [' tek bir kaçış karakteri. Diğer karakterlerin her biri ('<', 'R', 'A' vb.) Kendisidir. '^ [' Değerini girmek için vim'in "değişmez" anahtar önekini ve ardından bir kaçış kullanın ("Değişmez" anahtarın varsayılan olarak ne olduğunu unuttum --- ayrıca ctrl-V, belki?) T_Ff sadece kullanılmayan bir terminal girişi . Diğeri t_Fg. Sen kullanabilirsiniz :set termcapTerminal girişleri atanmış olduğunu görmek için vim ve sadece kullanımda olmayan bazı XX t_XX kullanın. Bu sonraki satırlarla yukarıda sunulan .vimrc satırını izleyin:

    map <t_Ff> whatever-vim-keys-you-want-it-mapped-to
    map! <t_Ff> whatever-vim-keys-you-want-it-mapped-to

Doğrudan yapmak da mümkündür:

    map ^[<RAlt-Left> whatever-vim-keys-you-want-it-mapped-to

Ancak, çok daha güvenilir çalışmak için boş bir terminal girişi kullanan tekniği buldum.

Burada birçok varsayım yaptım: Linux, X vb. Urxvt'den farklı bir terminal programı kullanıyorsanız, açıkladığım şeyi yapmak için yeterince güçlü tuş bağlama teknikleri sağlayabilir veya sağlamayabilir. Daha az egzotik anahtarlar seçerseniz, yine de burada açıkladığım gibi bir şey yapabilirsiniz. Örneğin, RAlt-Left'un F21'e bağlanmasını ayarlayabilir ve sonra oradan gidebilirsiniz. Gereksinimlerinizin ne olduğunu bize bildirin.


Bu gvim için de geçerli mi?
Glif

Bunu özellikle yararlı buldum. Lxterminal kullanıyorum ve alt anahtarımı vim'de eşlemek istiyorum. Terminalde, Ctrl-V yazdığımda ve sonra istediğim tuş kombinasyonum (örneğin Alt-T), ^ [t. Bunu eşlemeyi gerçekleştirmek için <At> yerine .vimrc içinde kullandım (^ [elbette tek kaçış karakteri) ve kusursuz bir şekilde gerçekleştirdi. (^ [^ T, Ctrl + Alt + T'yi de doğru bir şekilde bağlar)
elynnaie
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.