Beralih ke dan dari mode insert di Vim tidak lagi instan karena saya menggunakan tmux. Setelah menekan Escdalam mode sisipkan, dibutuhkan banyak waktu untuk benar-benar keluar dari mode sisipkan. Setelah menekan Escdan tombol lain apa pun setelahnya, sakelar langsung, dan perintah untuk tombol yang ditekan setelah Escdijalankan. Adakah yang tahu apa yang menyebabkan ini?
Konfigurasi Vim bukan masalah karena penundaan tidak terjadi ketika saya menjalankan Vim di luar tmux, jadi ini mungkin terkait dengan tmux. Saya menggunakan gnome-terminal btw.
Juga patut dicatat, sepertinya saya tidak dapat mendefinisikan binding utama dalam tmux untuk Esc, rencana saya adalah untuk mengikat Esc:
bind Escape send-keys ^[
Sayangnya, tampaknya mengikat apa pun agar Esctmux tidak bekerja. Masalah yang sama juga terjadi di layar.
sumber
man tmux
, dan perintah itu tidak berfungsi untuk saya.Saya memiliki masalah berbeda namun serupa yang saya coba selesaikan ketika saya menemukan halaman ini, jadi saya akan mempostingnya di sini kalau-kalau itu membantu orang lain yang mencari jawaban ini dan menemukan halaman ini dengan cara yang sama.
Masalah: mode vi dalam bash mengalami penundaan saat beralih dari mode insert ke mode perintah
Solusi: Di
~/.inputrc
file Anda , tambahkan diset keyseq-timeout n
manan
beberapa nilai rendah lebih besar dari 0.n
default ke 500 ms, yang merupakan penyebab keterlambatan. Lihat dokumentasi di sini .Selain itu, jika Anda ingin dapat mengetahui mode apa yang sedang Anda gunakan, lihat garpu bash Dylan Cali .
sumber
0.01
dan sekarang jauh lebih cepat menyenangkan. Terima kasih!/etc/inputrc
untuk membuatnya tersedia untuk semua pengguna.Sepertinya Anda menggunakan pemetaan yang dimulai dengan ESC. Saat Anda menekan ESC, vim harus menunggu untuk melihat apakah tombol berikutnya adalah yang ada di pemetaan. Jika tidak, maka dapat segera dilanjutkan.
Konfigurasi vim dapat bergantung pada terminal, sehingga fakta bahwa itu tidak terjadi di luar tmux tidak berarti banyak. Vim dapat meminta
$TERM
variabel lingkungan dan memilih konfigurasi yang berbeda tergantung pada nilainya.Karena gnome-terminal menggunakan, AFAIK,
xterm
sebagai nilai$TERM
variabel, dan tmux menggunakanscreen
, saya akan melihat semua file konfigurasi vim Anda untuk pengaturan yang hanya digunakan adalah$TERM
variabel sama denganscreen
. Dugaan saya adalah bahwa beberapa file konfigurasi vim pada sistem Anda menetapkan pemetaan untuk penanganan tombol panah (yang dimulai denganESC
karakter) ketika terminal beradascreen
.Anda dapat mengujinya dengan mengubah
$TERM
variabel sementara di tmux sebelum memulai vim. Jika shell Anda adalah bash, panggil vim sebagaidi tmux dan lihat apakah masalahnya tetap ada. Anda tidak dapat menggunakannya sebagai perbaikan, karena mungkin ada perbedaan antara kemampuan terminal tmux dan xterm, dan Anda mungkin mengalami beberapa masalah.
sumber
TERM=xterm vim
tidak memperbaiki masalah. Saya harus menggali sedikit lebih dalam.Sebagaimana judulnya menyebutkan Layar, berikut adalah solusi untuk memperbaiki perilaku tombol Escape di dalam Layar GNU. (Diambil dari sini .)
Menambahkan
untuk
.screenrc
mengkonfigurasi file.sumber