Dalam vim, control-left dan control-right adalah back dan forward kata yang dipisahkan spasi-putih (yaitu sinonim untuk B dan W), sama seperti web textareas dan bash
.
Tetapi ketika berjalan screen
, tombol-tombol ini berhenti bekerja. Saat ditekan, vim sebagai gantinya beralih ke baris perintah dan masuk 5C
atau di 5D
sana.
Berikut ini penyandian yang saya miliki untuk kunci-kunci ini:
$ cat >/dev/null # pressing control-left, then control-right:
^[[1;5C^[[1;5D
BTW: Saya mencoba memetakan kembali kunci-kunci ini .screenrc
, seperti ini:
bindkey ^[[1;5D stuff B
bindkey ^[[1;5C stuff W
Ini berfungsi untuk vim, tetapi sekarang kunci-kunci itu tidak bekerja di bash
baris perintah (sebagai gantinya, hanya keluaran B
atau W
).
Saya menduga ini adalah suatu termcap
misteri, yang tidak pernah saya mengerti ... terima kasih atas pencerahan apa pun!
vim
gnu-screen
13rn
sumber
sumber
$ echo $TERM
mengubah layar$TERM
kescreen-256color
(jika belum) dapat membantu. Bolehkah saya menyarankan Anda untuk terbiasab
danw
, sebaliknya?term screen-256color
di.screenrc
, dan restart;echo $TERM
mengkonfirmasi perubahan. Tapi itu tidak menyelesaikan masalah. Saya benar-benar menggunakanb
/w
sepanjang waktu - Saya sangat terkejut menemukan diri saya menggunakan^left
/^right
. Saya menyalahkan web.Jawaban:
Ada beberapa cara untuk memperbaikinya. Pertama adalah mencatat nilai $ TERM sebelum Anda memulai layar (mungkin xterm), kemudian setelah Anda memulai vim di dalam layar, setel opsi 'term' ke nilai itu. Sebagai contoh,
Cara lain adalah dengan mendefinisikan pemetaan untuk urutan karakter tersebut:
Anda dapat menjalankan salah satu dari solusi tersebut di ~ / .vimrc Anda secara kondisional menggunakan layar, seperti ini:
sumber
term xterm
), Tapi saya kira paling tidak mengganggu adalah yang paling bijaksana, jadi saya telah menggunakan jawaban peta bersyarat Anda. BTW pengikatannya ditukar, dengan 5D untuk kiri, 5C untuk kanan (yang sebaliknya akan diharapkan). Jadi saya menggunakan:map <esc>[1;5D <C-Left>
danmap <esc>[1;5C <C-Right>