Vim normal moda döndüğünde Capslock'u otomatik olarak kapatabilir mi?


14

Kapaklara neredeyse her yazdığımda, normal moda geri dönerken kapak kilidini kapatmayı unutuyorum. Daha sonra imleci hareket ettirmeye çalışıyorum ve sonunda bir sürü çizgiye ve olmasını beklemediğim birçok şeye katılıyorum.

Normal moda girmek için escape tuşuna bastığımda vim'i capslock'u kapatacak şekilde yapılandırmak mümkün mü?

İşletim sistemine özgü çözümler varsa, Linux için geçerli olanlarla ilgileniyorum.


benim "çözüm" yanlışlıkla dışında kullanmıyorum olarak "hiçbir eylem" (macos) kapaklar kilit yeniden oldu
localhostdotdev

Yanıtlar:


8

Verilen yanıtlar bu soruya büyük olasılıkla olmadığını gösteriyor - Vim telefon görüşmesini yapmaya OS erişimi yok.

Ancak, Caps Lock'un gerekli olmaması için davranışınızı değiştirmeyi deneyebilirsiniz. Bu eşlemek için popüler bir anahtar Ctrl, Escya Meta.

Vim, gUoperatörün bir seçimi veya hareketi büyük harflerle yapmasını sağlar, böylece normal olarak yazabilir ve daha sonra kullanabilirsiniz. Ayrıca ilgili: guküçük harf ve ~geçiş yapmak.

Ayrıca otomatik tamamlamanın yolları da vardır, bu da yazma gereksiniminizi azaltabilir VERY_LONG_MACRO_NAMES.


4

Capslock'umu ctrl olarak değiştirdim ve artık nadiren capslock kullanıyorum. Ancak, vim için hiç ihtiyacım olursa, sizin için bir yazılım geçici kapak kilidi olarak tpope / vim-capslock var. Bunu kullanırsanız, olay için bir autocmd ayarlamak InsertLeaveve capslock'u devre dışı bırakmak oldukça kolay olmalıdır .


4

(Sadece Linux'ta çalışıyor olsa da) normal modda büyük harf kilidini otomatik olarak kapatmanın bir yolunu buldum.

Eklentilerle yapılan çözümler, normal moda, örneğin komut modundan birden fazla şekilde girebileceğiniz (örneğin, ekleme - normal) dikkate alınmaz.

Aslında normal moda girdikten sonra aktif hale gelen hiçbir autocommand olayı yoktur, bu yüzden onun yerine kullandığım CursorHoldolay normal moda girmediğinizde aktif olan olaydı.

au CursorHold * call TurnOffCaps()
set updatetime=10

Güncelleme süresini çok küçük bir sayıya ayarlarsınız, böylece herhangi bir şey yazma şansınız olmadan her zaman etkinleşir.

function TurnOffCaps()  
    let capsState = matchstr(system('xset -q'), '00: Caps Lock:\s\+\zs\(on\|off\)\ze')
    if capsState == 'on'
        silent! execute ':!xdotool key Caps_Lock'
    endif
endfunction

Bence bu sorunun tek gerçek cevabı. Vim'in CapsLock'u bir şekilde açmak için işletim sistemini araması gerekiyor. Elbette bunun nasıl yapılacağı OS'ye bağlı olacaktır.
Octaviour

3

Kuş Y yanıtına ek olarak, aslında ekleme modundan çıkmayı etkinleştiren bir otomatik komut vardır:

au InsertLeave * call TurnOffCaps()

Tam da aradığım şey buydu ...


2

Başka bir seçenek yeniden eşleştirmek için CapsLockTo Esc. Bu, birkaç yıldır kullandığım bir eşleme: CapsLockev satırında, bu yüzden yazıya dokunursanız kullanmak gerçekten çok kolay. Ekleme modundan çıkmak çok daha kolay olduğundan (anahtardan daha yakın Esc) uygun Vim kullanımını da teşvik eder .

Anlaşılması kolay: Linux bunu doğal olarak destekliyor, bunu gerçekleştirmek için Mac OS X ve Windows için küçük uygulamalar var. Ve bazı pahalı klavyeler, tuşları yeniden eşleştirmeye izin veren bir özellikle birlikte gelir.


1

Apple makinemde bu özelliği gerçekten iyi çalışan Karabiner kullanarak uyguladım . Ne yazık ki 10.12 Karabiner'i kırdı ve o zamandan beri uygulamayı denemedim.

Daha önce etkinleştirilmişse, kaçış anahtarını veya enter tuşunu devre dışı bırakan büyük harf kilidini kullanarak öylesine kullandım.

Yani 10.11 veya daha düşük sürümlerde macOS kullanırken, bunu kesinlikle yapabilirsiniz (ancak ayarları istemeyin, artık onlara sahip değilim).

Aksi takdirde önerilen ile gitmek istiyorum gU. (Her ne kadar başka bir metin editöründe kullanacağınız aynı yöntemi kullanamayacağınıza dair şikayetleri anlasam da)


0

Vim yardım kılavuzunda, ekleme modunda tüm büyük harfleri bir kelimeye dönüştürmek için oldukça güzel bir eşleme var:

inoremap <c-h> <esc>gUiw`]a

ctrl-hNormalde sadece bir backspace klonu olan kullanır , bu nedenle bu eşlemeyle hiçbir şey kaybetmezsiniz.

Caps lock normal modda olduğunuzda bir kabus! Umarım bu yardımcı olur!

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.