Setelah hampir setiap kali saya mengetikkan sesuatu dalam huruf besar, saya lupa mematikan capslock ketika kembali ke mode normal. Saya kemudian mencoba untuk memindahkan kursor dan akhirnya bergabung dengan banyak baris dan banyak hal lain yang saya tidak harapkan terjadi.
Apakah mungkin untuk mengkonfigurasi vim untuk mematikan capslock ketika saya menekan escape untuk masuk ke mode Normal?
Jika ada solusi yang spesifik untuk OS, saya tertarik pada yang berlaku untuk Linux.
normal-mode
drs
sumber
sumber
Jawaban:
Tanggapan untuk pertanyaan ini menunjukkan bahwa itu tidak mungkin - Vim tidak memiliki akses ke OS untuk melakukan panggilan itu.
Namun, Anda dapat mencoba mengubah perilaku Anda sehingga Caps Lock tidak diperlukan. Ini adalah kunci populer untuk memetakan Ctrl, Escatau Meta.
Vim memiliki gUoperator untuk huruf besar pilihan atau gerakan, jadi mungkin Anda bisa mengetik secara normal dan menggunakannya setelah itu. Juga relevan: guuntuk huruf kecil dan ~untuk beralih.
Ada juga cara pelengkapan otomatis, yang dapat mengurangi kebutuhan Anda untuk mengetik
VERY_LONG_MACRO_NAMES
.sumber
Saya telah memetakan ulang capslock saya menjadi ctrl dan saya jarang menggunakan capslock lagi. Namun, untuk vim jika perlu, Anda memiliki tpope / vim-capslock sebagai perangkat lunak capslock sementara untuk Anda. Jika Anda menggunakan ini, seharusnya cukup mudah untuk mengatur autocmd untuk acara tersebut
InsertLeave
dan menonaktifkan capslock.sumber
Saya menemukan cara untuk mematikan caps lock dalam mode normal secara otomatis (meskipun hanya bekerja di Linux).
Solusi yang dibuat dengan plugin tidak memperhitungkan bahwa Anda dapat memasuki mode normal dalam lebih dari satu cara (yaitu dari menyisipkan ke normal), misalnya dari mode perintah.
Sebenarnya tidak ada acara perintah otomatis yang diaktifkan saat memasuki mode normal, jadi acara yang saya gunakan adalah
CursorHold
acara, yang aktif ketika Anda tidak mengetik dalam mode normal.Anda mengatur waktu pembaruan ke angka yang sangat kecil, jadi itu akan selalu aktif, sebelum Anda memiliki kesempatan untuk mengetik apa pun.
sumber
Pilihan lain adalah untuk memetakan kembali CapsLockke Anda Esc. Ini adalah pemetaan yang telah saya gunakan selama beberapa tahun sekarang: CapsLockada di baris rumah, jadi sangat mudah digunakan jika Anda menyentuh tipe. Ini juga mempromosikan penggunaan Vim yang tepat, karena keluar dari mode penyisipan jauh lebih mudah (kunci lebih dekat daripada Esc).
Sangat mudah untuk memetakan kembali: Linux mendukung ini secara asli, ada aplikasi kecil untuk Mac OS X dan Windows untuk mencapai itu. Dan beberapa keyboard mahal bahkan dilengkapi dengan fitur yang memungkinkan pembuatan ulang kunci.
sumber
Selain jawaban Avian Y, sebenarnya ada autocommand yang mengaktifkan mode sisipan:
Itu juga yang saya cari ...
sumber
Di mesin Apple saya, saya benar-benar mengimplementasikan fitur ini menggunakan Karabiner , yang bekerja dengan cukup baik. Sayangnya 10.12 melanggar Karabiner, dan saya belum mencoba menerapkannya sejak itu.
Saya memilikinya sehingga menggunakan tombol escape atau kunci enter dinonaktifkan caps lock, jika diaktifkan sebelumnya.
Jadi, ketika Anda menggunakan macOS pada 10.11 atau di bawah, Anda tentu dapat melakukan ini (meskipun jangan meminta saya untuk pengaturannya, saya tidak memilikinya lagi).
Kalau tidak, aku akan pergi dengan yang disarankan
gU
. (Meskipun saya dapat memahami keluhan Anda, tentang tidak dapat menggunakan metode yang sama dengan yang Anda gunakan dalam editor teks lainnya)sumber
Di manual bantuan vim ada pemetaan yang cukup bagus untuk membuat kata all caps dalam mode insert:
Ini menggunakan ctrl-h, yang biasanya hanya klon backspace, jadi Anda tidak benar-benar kehilangan apa pun dengan pemetaan ini.
Caps lock adalah mimpi buruk ketika Anda berada dalam mode normal! Saya harap itu membantu!
sumber