Pencetakan tmux ^ P

1

Terminal saya baru-baru ini mulai mencetak karakter kontrol (misalnya ^Patau ^N) ketika saya menekan Ctrl+ P(atau kombinasi lainnya). Saya tidak yakin apa yang menyebabkan perubahan itu. Ini.tmux.conf file saya . Ada ide?

Perhatikan bahwa ^C,, ^Ddan beberapa lainnya masih berfungsi seperti yang diharapkan.

Sunting Saya baru menyadari bahwa ini berfungsi saat menggunakan bashbagian dalam tmux, tetapi tidak dengan yang biasa zsh. Ada ide?

Sunting 2 Saya pikir ini adalah masalah pemuatan pesanan. Di .zshrcset I saya EDITOR=vim, yang menyebabkan zsh beralih ke vim keybindings. Namun, untuk sesi terminal normal, tampaknya sudah diatur terlambat, tetapi ketika tmuxdijalankan, zshproses baru dimulai, dan kali EDTIORini sudah diatur ke vim, sehingga beralih ke vim keybindings. Menempatkan bindkey -etepat setelah EDITOR=vimsaya .zshrcmemperbaiki masalah.

Eric Andres
sumber
Silakan periksa, apakah bindkey -vatau lebih khusus bindkey '^P' up-line-or-historymembuat CTRL+Pbekerja kembali.
mpy
Perintah kedua membuatnya berfungsi lagi, namun ^ N masih tidak berfungsi. Mungkinkah ini tmux beralih readline ke mode vi? Dan jika demikian, bagaimana cara mengembalikannya ke mode emacs.
Eric Andres
zsh tidak menggunakan readline, tetapi zle. Sudahkah Anda mencobanya bindkey "^N" down-line-or-history? Sudahkah Anda memperbarui zsh, menginstal oh-my-zsh atau yang serupa sebelumnya?
mpy
Mengenai emacs keybindings, coba bindkey -e.
mpy
@ mpy Saya pikir itu memecahkan pertanyaan saya. Jika Anda menjawabnya, saya dengan senang hati akan menerimanya. Terima kasih atas bantuan Anda.
Eric Andres

Jawaban:

2

Ikatan kunci di shell Z dikontrol melalui bindkey builtin. Untuk mengaktifkan emacs atau vi keybindings biasa gunakan bindkey -eatau bindkey -v, resp.

Anda menyebutkan bahwa Anda termasuk EDITOR=vimdalam file zshrc Anda. Ini memengaruhi pilihan default untuk binding utama seperti yang dijelaskan oleh manual zshzle :

Jika salah satu VISUALatau EDITORvariabel lingkungan berisi string vi saat shell dijalankan maka [ mainymap utama] akan menjadi viins , jika tidak maka akan menjadi emacs . Opsi -e dan -v bindkey menyediakan cara yang nyaman untuk mengganti pilihan default ini.

mpy
sumber