Bagaimana cara beralih antara mode perintah dan penyisipan di Vim?

88

Saya baru saja mulai menggunakan Vim sebagai IDE. Saya menggunakannya sebagai editor tes untuk sementara waktu sekarang, jadi saya tidak perlu terlalu sering pergi ke mode perintah. Tapi, karena saya memprogram di Java, saya harus masuk ke mode perintah untuk membuat file, mengkompilasi / menjalankannya ... dll.

Masalahnya adalah: Saya membutuhkan cara yang baik untuk beralih di antara dua mode tersebut.

Saya mencari online dan dikatakan bahwa <Esc>kuncinya seharusnya melakukan itu, tetapi itu tidak berhasil untuk saya (mungkin bukan untuk gVim? Saya tidak tahu mengapa.)

Saya harus menekan CTRLOsetiap kali untuk masuk ke mode perintah; tombol melarikan diri bekerja dari mode itu ... itu membawa saya kembali ke mode penyisipan. Tetapi apakah ada cara yang lebih baik atau lebih mudah untuk beralih antara mode perintah dan mode sisipkan?

Ravish Chawla
sumber
2
Esc jelas merupakan kunci yang tepat untuk menyelesaikan penyisipan. Sisipan dapat dimulai dengan berbagai cara. Huruf kecil i untuk mulai menyisipkan di kursor Anda, huruf besar I untuk mulai memasukkan di awal baris, dll.
Vaughn Cato
Dimulai dari file kosong, karakter berikut akan memberi Anda file dengan kata "halo" di dalamnya: ihello<ESC>:w hello.txt<ENTER>
Vaughn Cato
8
ctrl-[berfungsi sebagai pengganti Esc pada banyak keyboard.
Vaughn Cato

Jawaban:

52

Sepertinya Vim Anda diluncurkan dalam mode mudah . Lihat :help easy.

Ini terjadi ketika Vim dipanggil dengan -yargumen atau sebagai evim, atau mungkin Anda memiliki suatu :set insertmodetempat di .vimrckonfigurasi Anda . Temukan sumber dan nonaktifkan; sementara ini juga dapat dilakukan melalui Ctrl+ O :set noim Enter.

Ingo Karkat
sumber
Saya pikir itu dia. Saya telah mengaktifkan mode penyisipan di file saya. Setelah saya melepasnya, kunci pelariannya bekerja dengan sempurna. Terima kasih!
Ravish Chawla
8
ini adalah mode mudah !?
Stachu
5
Vim mode mudah, sekarang itu oxymoron. Apakah itu mungkin untuk keluar dari vim?
Davos
1
@Davos itulah mode di mana ia dimulai dalam mode penyisipan, jadi ironisnya ini adalah mode di mana tidak mungkin untuk keluar dari vim: p "mode normal" jauh lebih mudah hanya alt + :, x XD
Fuseteam
115

Menekan ESCkeluar dari mode sisipkan ke mode normal, di mana Anda dapat menekan :untuk mengetikkan perintah. Tekan ilagi untuk kembali ke mode penyisipan, dan Anda siap melakukannya.

Saya bukan guru Vim, jadi orang lain bisa lebih berpengalaman dan memberi Anda pilihan lain.

Ricardo Souza
sumber
3
Bagi kebanyakan dari kita, tetapi jawaban yang diterima memiliki jawaban untuk masalah spesifik.
Saul Axel Martinez Ortiz
21

Ini telah disebutkan dalam pertanyaan lain , tetapi ctrl + [sama dengan ESCdi semua keyboard.

begolf123
sumber
Saya tidak pernah mengetahuinya, berguna saat tombol escape tidak didukung
shuva
Wow, terima kasih atas informasinya! Tmux menyalin urutan keystroke sekarang lebih masuk akal.
Thomas Legris
4

Menggunakan jj

Dalam kasus saya, pengaturan .vimrc (atau dalam gVim ada di _vimrc) di bawah ini.

inoremap jj <Esc>   """ jj key is <Esc> setting
StarMomo
sumber
Ini adalah pemetaan ulang yang umum. Saya merasa ada sedikit penundaan karena menunggu input karakter tambahan. Atau, petakan ulang kunci capslock Anda untuk esc menggunakan sesuatu seperti KeyRemap4MacBook di Macbook: github.com/tekezo/KeyRemap4MacBook
Koobz
saya merasa lebih mudah untuk memetakan ulang tab ke esc: 3
Fuseteam
3

Berasal dari emacs saya telah menemukan bahwa saya suka ctrl +tombol untuk melakukan sesuatu, dan di vim saya telah menemukan bahwa keduanya [ctrl + C]dan [alt + backspace]akan masuk ke mode Normal dari mode penyisipan. Anda dapat mencoba dan melihat apakah ada yang berhasil untuk Anda.

maxorcist
sumber
2

Bagi saya, masalahnya adalah saya dalam mode perekaman . Untuk keluar dari mode perekaman tekan q. Kemudian Escbekerja seperti yang diharapkan untuk saya.

betontalpfa.dll
sumber
0

Ada juga satu solusi lagi untuk masalah semacam itu, yang agak jarang, menurut saya, dan Anda mungkin mengalaminya, jika Anda menggunakan vim di OS X Sierra. Sebenarnya, ini masalah dengan tombol Esc - bukan dengan vim. Misalnya, saya tidak dapat keluar dari video layar penuh di youtube menggunakan Esc, tetapi saya tetap menggunakannya selama beberapa bulan sampai saya mengalami masalah yang sama dengan vim.

Saya menemukan solusi ini . Jika Anda cukup malas untuk mengikuti tautan eksternal, mematikan Siri dan mematikan proses di Monitor Aktivitas membantu.

oleander
sumber
0

Anda dapat menggunakan Alt + H, J, K, L untuk memindahkan kursor dalam mode sisipan.

Khoi Hoang
sumber
1
Tidak, tidak boleh. Itu mungkin merupakan peta ulang dari konfigurasi Anda.
Saul Axel Martinez Ortiz
@SaulAxelMartinezOrtiz ya Anda bisa, secara teknis itu keluar dari mode normal setelah itu Anda dapat bergerak dalam mode normal: p
Fuseteam