2010-01-27 13 views
16

Ben vim wiki ipuçları gördüm ve sırayla aşağıdaki pencere kodunu düzenlemek zorunda KİLİT CAP Esc yeniden eşleştirmek söylüyor:Vim'de CAP LOCK Esc'yi yeniden oluşturmak neden bu kadar karmaşık?

REGEDIT4 
[HKEY_CURRENT_USER\Keyboard Layout] 
"Scancode Map"=hex:00,00,00,00,00,00,00,00,02,00,00,00,01,00,3a,00,00,00,00,00 

mümkün mü sadece ekleyerek veya değiştirerek KİLİT CAP Esc yeniden eşleştirmek _vimrc satırları?

+0

Üzgünüz, şunu sormak için * var: neden bunu yapmak istiyorsunuz? – paxdiablo

+8

paxdiablo, bu son derece yaygındır. Niye ya? CAPS LOCK, şimdiye kadarki en kullanışlı anahtar olduğundan, ancak asal gayrimenkul var. Başka bir ctrl anahtarı için çok daha elverişli bir konum ya da Vim'i daha önce kullandığınız ESC anahtarı. – Jay

+0

Üzgünüm, yanlış anladım. ESC anahtarını CAPSLOCK olarak kullanmak istediğini sanıyordum. Yine de, ESC tuşunu bir inç veya iki aşağı hareket ettirerek çok fazla zamanın kaydedilebileceğini anlamakta zorlanıyorum.Gün boyunca harcanan zamanı gerçekten ölçtün mü? Belki de modal olmayan bir editör hakkında düşünmelisiniz :-) – paxdiablo

cevap

21

Bunun için AutoHotkey kullanmanızı öneririz. örnek vim kaçmak için kapaklar ve başka her yerde kontrol setleri için,

SetTitleMatchMode,2 
#IfWinActive,VIM 
    CAPSLOCK::ESC 
return 

#IfWinActive 
    CAPSLOCK::CTRL 
return 

Bu senaryoyu:

Sen her uygulama kısayol değişikliği yapabilir.

+0

AutoHotkey harika – alexchenco

+0

@jay ama kapak kilidi o zaman nerede bitti? – sayth

+0

@sayth Çoğu zaman buna asla ihtiyacım yok - yıllarca onsuz var oldum. – Jay

1

capslock tuşunun hiçbir vim anahtar tanımlayıcı var, bu yüzden bir tarama kodu ile bunu yapmak zorunda. Bu ctrl tuşunu falan shift tuşu harita çalışırken nasıl olurdu

- bu anahtarlar, başlarına bir şey yok, anahtar düzenleyiciler, bu nedenle aynı şekilde tuzağa edilemez.

1

haritalama yerine vim OS seviyesinde yapılmalıdır, böylece komplikasyon OS geliyor.

! Esc on caps lock 
remove Lock = Caps_Lock 
keysym Caps_Lock = Escape 

Ancak, ben REGEDIT komut dosyası kadar kötü olduğunu düşünmüyorum: Örneğin, benim Ubuntu makinede ben ~/.Xmodmap içinde taşıyanlar. Bu çok çirkin, ama sadece iki satır!

+5

için Daha Kolay: 'setxkbmap -option caps: escape' için' #IfWinActive ahk_class Vim' kullanmak zorundaydım ya da X/giriş yapılandırmasının ilgili bölümüne ekleyin. – ephemient

+0

@ephemient Bu bahşiş için teşekkürler. –

+1

Bunu GUI ile yapmak da mümkündür. Sistem/Tercihler/Klavye'ye gidin, Düzen sekmesini açın, Seçenekler iletişim kutusunu açın. Caps Lock başlığının altında, seçilecek farklı davranışların bir listesi vardır ve bunlardan biri Caps Lock ve ESC'yi değiştirir. – hugomg

1

Ayrıca (en azından vim kullanılabilir) kaçmak için Ctrl-C kullanabilirsiniz. Normalde kullandığım budur. Genelde kontrol ve kapak kilidini değiştiririm ve pencerelerdeki klavye ayarları ve ubuntu'daki klavye ile yaptım.

Düzenleme: @mMontu nazik notları gibi Ctrl-C Esc daha vahşi olan: this appropriate question belirtildiği üzere

vim sadece bir kısaltma kısmını yazdıysam kontrol rahatsız etmeyecek, ve fantezi oto sizin eklentileri benim vimming henüz çok gelişmiş olmadığı için ben fark etmemişti

Eğer ekleme modunu terk her zaman kurdunuz komutları çalıştırmak için gitmiyor.

+2

Ctrl-C ve ESC arasındaki ince farkın farkında olmalısınız: http://stackoverflow.com/questions/5030164/whats-the-difference-between-ctrlc-and-ctrl/5036294#5036294 – mMontu

1

Ayrıca bu deneyebilirsiniz: SharpKeys. CapLock ve Esc'yi onunla değiştirdim.

1

beni Esasen this website

bulunan yönergeleri kullanmaktı için iyi çalıştığı bir başka alternatif: o zaman, Microsoft'un Klavye Düzeni Creator Install CAPS LOCK ve kendi özel düzen oluşturmak yeniden haritalandırılmasını izin kaynak kodunu düzenleyin.