Vim - Apakah Capslock aktif?

11

Ketika saya bekerja dengan Vim, saya hampir tidak pernah melihat keyboard saya (seperti seharusnya!) Dan ini bagus, tetapi kadang-kadang, tanpa sadar saya menekan tombol CapsLock dan membuat saya berteriak pada layar saya.

Karena, Anda tahu, jtidak sama dengan Jdalam mode normal (dan sebagainya).

Jadi sebagai gantinya atau pemetaan CapsLockuntuk mengatakan Ctrlsaya ingin menampilkan pesan kesalahan yang akan memperingatkan saya dalam mode normal jika ini masalahnya.

Apakah ada cara bagi Vim untuk mengetahui apakah Anda telah CapsLockmengaktifkan?

Catatan: Saya lebih suka solusi VimScript / VimL untuk portabilitas dan karena saya ingin Vim memberi tahu saya dan tidak bergantung pada sistem yang sebenarnya.

alfredodeza
sumber
3
Singkirkan caps lock, Anda tidak membutuhkannya. Jika Anda perlu mengetikkan semua tutup untuk lebih dari 60 detik jatuhkan beban pada kunci shift Anda.
sidyll
1
Saya secara khusus mengatakan bahwa saya tidak ingin melakukan itu, jadi tidak ada gunanya menyarankan saya harus menyingkirkannya.
2
Saya menemukan tombol CapsLock sangat mudah untuk dipukul sehingga saya memetakannya kembali ke Escape. Bekerja untukku. :)
dash-tom-bang
1
Seiring dengan mengubah kunci caps saya ke Escape, itu juga Kontrol. Ya, itu sekaligus pelarian dan kontrol sekaligus ! Di linux, Anda dapat melakukannya melalui xmodmap -e "add Control = Escape". Semoga anda menikmati. :-)
evaryont
CapSee melakukan pekerjaan pada OS X. Bukan jawaban yang Anda cari, tetapi itu merupakan jawaban yang tepat bagi sebagian besar pengguna Apple.
earlio

Jawaban:

4

Anda dapat menggunakan skrip seperti ini:

; INDICATE WHEN THE CAPS LOCK IS ON WITH A SCREEN MESSAGE
Gui, +AlwaysOnTop +ToolWindow -SysMenu -Caption
Gui, Font, caf001e s30 bold ,Verdana ;changes font color, size and font
Gui, Color, af001d;changes background color
Gui +LastFound  ; Make the GUI window the last found window for use by the line below.
WinSet, TransColor,af001d
Gui, Add, Text, ,CAPS LOCK ON
; TOGGLE THE GUI ON AND OFF
~capslock::
   if(0==GetKeyState("capslock","T")){
      Gui,  hide
   }else{
      if(guilocation>0){
         guilocation=0
         Gui, Show,x600 y800 NoActivate
      }else{
         guilocation=1
         Gui, Show,x600 y400 NoActivate
      }
   }
return 

Diambil dari Sini . Sekarang Vim akan menampilkan CAPS LOCK ON setiap kali caps lock Anda aktif

Pembaruan: Dan itu skrip untuk AHK (Bahasa skrip hotkey otomatis). Menurut percakapan ini, tidak mungkin membuat perilaku yang Anda deskripsikan hanya menggunakan vim.


sumber
2
itu bahasa apa? Saya lebih suka memiliki VimScript / VimL untuk membuat Vim mengurusnya (memperbarui pertanyaan saya)
1
Itu untuk AHK (Otomatisasi hotkey scripting) jadi tidak ada gunanya bagi Anda. Mencoba melihat dari google dan tidak dapat menemukan sesuatu yang spesifik untuk masalah Anda: /
2
Idenya bagus tetapi bagaimana saya bisa meletakkan ini di .vimrc saya, misalnya? Bagaimana cara menggunakan ini dengan vim? = |
Eduardo Lucio