terkadang file saya macet di vi | vim saya, apa yang terjadi?

298

Kadang-kadang ketika saya mengedit file saya menggunakan vi atau vim, file saya hanya macet. Bahkan jika saya mengetik Ctrl+Catau Ctrl+D, masih membeku di sana. sayakill -9 <pid> dari terminal lain, pid terbunuh, tetapi file masih membeku di sana.

Saya kira saya harus mengetik beberapa kombinasi tombol yang saya tidak tahu. Adakah yang punya ide?

pengguna399517
sumber

Jawaban:

605

Ctrl- Smungkin pelakunya; itu menghentikan output layar Anda di sebagian besar terminal. Seperti yang disebutkan Michael, Anda dapat mengembalikan layar ke normal dengan memasukkan Ctrl-Q .

Secara teoritis, pengaturan stty -ixonharus mencegah Ctrl- Sdari membekukan layar Anda, tetapi tidak berfungsi pada login Solaris 10 lokal saya.

pra
sumber
@CallMeNorm - ini juga terjadi dengan pintasan <Ctrl-A> pengecut untuk layar / tmux / etc karena saya punya jari yang gemuk. ;)
Cometsong
Jika, untuk alasan apa pun - Anda memetakan ulang Ctrl-Q secara global ("tidak aktif") (misalnya untuk menghindari Firefox yang tidak sengaja terhenti), menambah stty -ixonAnda untuk ~/.bashrcmengaktifkan Ctrl-q di terminal. Dalam kasus saya, Ctrl-s membeku Vim dan saya tidak bisa kembali ke sana ... sampai saya membuat modifikasi .bashrc. Detail di sini: superuser.com/a/1328326/409327
Victoria Stuart
75

Apakah Anda menggunakannya di dalam Layar GNU? (Seperti yang ditunjukkan oleh pra, ini tampaknya benar bahkan di luar layar) Ini cukup umum untuk secara tidak sengaja menekan Ctrl+S( xoff), yang menonaktifkan pengecatan layar sampai Anda menekan Ctrl+Q( xon)

Michael Mrozek
sumber
apakah ada kunci yang akan membekukan file jika vim saya dikombinasikan dengan cscope?
user399517
1
itu terjadi (kadang-kadang) setelah saya mengetik shift + insert, dan vi menunjukkan: mode terbuka.
user399517
1
Ctr-S tidak spesifik untuk layar GNU.
pra
1

Jika Ctrl+ Sbukan masalah Anda (seperti dalam jawaban pra ) ini dapat membantu Anda.

Jika Anda sudah mencoba memasang banyak plugin khusus menggunakan Vundle , terkadang semuanya serba salah. Anda dapat mencoba untuk menghapus paket-paket ini secara manual dan melihat apakah itu membantu. Cari tahu di mana plugin telah ditulis untuk - dalam kasus saya mereka semua ada di dalam .vim/bundledirektori karena saya dulu git clone https://github.com/gmarik/Vundle.vim.git ~/.vim/bundle/Vundle.vimmenginstal Vundle . Jadi begitu di dalam .vimdirektori Anda dapat menghapus seluruh folder bundel untuk menghapus semua plugin, dan mulai lagi, dengan mengeksekusi rm -rf bundle.

Semoga ini bisa membantu!

bibzzzz
sumber
-11

Anda dapat mencoba mengubah tata letak keyboard. Vi | vim hanya berinteraksi dengan input Bahasa Inggris (-seperti?).

Percikan
sumber