Bagaimana saya bisa membuat kunci ctrl + kiri / kanan untuk bergerak dengan seluruh kata di tmux?

100

Dalam zsh dan bash, ctrl + panah memungkinkan saya untuk memindahkan posisi yang saya ketikkan secara keseluruhan, tetapi ini tidak berfungsi di tmux, yang merupakan masalah karena saya saat ini meluncurkan secara otomatis setiap kali saya membuka shell .

Bagaimana saya bisa memperbaikinya?

Llamageddon
sumber

Jawaban:

130
  1. Edit ~/.tmux.confdan tambahkan baris Anda:

    set-window-option -g xterm-keys on
    
  2. Jika Anda belum ingin menjadikannya permanen, lakukan:

    C-b :set-window-option xterm-keys on
    
  3. Muat ulang konfigurasi Anda di tmux dengan melakukan:

    C-b :source-file ~/.tmux.conf
    

Informasi lebih lanjut di sini :

sgzmd
sumber
2
Strange: Ini hanya berfungsi untuk saya jika saya memuat kembali file ~ / .tmux.conf dari tmux atau mengatur aksi di: -prompt dari tmux, bukan awalnya ketika saya membuka tmux. Adakah gagasan apa yang mungkin menjadi masalah di sana?
AME
@AME tutup semua sesi tmux lalu coba lagi.
Nathan
Jika memuat ulang konfigurasi tidak mengatasi masalah (ini masalahnya bagi saya), coba sesi baru. Mungkin Anda perlu mematikan sesi saat ini dan membuat yang baru. Pilihan lain untuk membuatnya berlaku di panel (bukan sesi) adalah Cb: respawn-pane -k
fstang
Ini bekerja untuk saya, kebanyakan. Saya ingin tahu mengapa ini tidak diaktifkan secara default?
inetknght
Membunuh sesi, atau apa pun set-window-option -g xterm-keys onmasih tidak melakukan apa pun dalam kasus saya.
noraj
8
set-window-option -g xterm-keys on

Membuat saya beberapa jalan di sana dan memberi saya Ctrl- Left/Rightdi konsol, tetapi masih merespons berbeda di vim.

Membuka ikatan kunci tampaknya tidak membantu.

Ternyata di beberapa titik saya telah mengatur terminal default saya ke layar ( set-option -g default-terminal "screen"dalam .tmux.conf)

Mengubah ini menjadi yang berikut memberi saya Ctrl- Left/Rightdalam hal lain:

set-option -g default-terminal "xterm-256color"

Semoga itu bisa membantu seseorang.

Kieran Moore
sumber
1
Kecuali ini memecah warna dalam vim, tig, dan mungkin banyak hal lainnya ...
koniiiik
1
lihat juga unix.stackexchange.com/a/1098/250 untuk saran menentang penetapan TERM seperti itu di tmux
phunehehe
3

Untuk msys2 / Cygwin / mintty:

Tambahkan di bawah ke ~/.inputrc.

"\e[1;5C": forward-word   # ctrl + right
"\e[1;5D": backward-word  # ctrl + left 

Muat ulang akan membuat tmux berfungsi dengan benar.

Mithril
sumber
2

Saya tidak yakin, tetapi ini mungkin karena tmuxsecara default mengikat C-<up/down/left/right>untuk mengalihkan fokus ke panel di atas / di bawah / kiri / kanan panel yang saat ini difokuskan. Jika Anda tidak sering menggunakan panel, Anda mungkin tidak memperhatikan fitur ini. Jika ini masalahnya, Anda dapat melepaskan ikatan kunci tersebut dengan mengatakan:

unbind C-Left
unbind C-Right

Itu mungkin cukup sendiri , atau Anda mungkin perlu secara manual mengikat mereka kembali dengan apa yang Anda ingin mereka lakukan, melalui:

bind -n C-Left <the action you want>
bind -n C-Right <other action you want>
jake-rendah
sumber
1
Itu harus cukup pada itu sendiri, jika tidak dicengkeram oleh tmux, itu harus diteruskan ke shell.
Rob
0

Bagi saya, kunci tidak diikat dengan benar, karena preferensi sistem di High Sierra ditetapkan untuk digunakan oleh Kontrol Misi. Hapus centang ini kemudian memungkinkan binding yang benar berfungsi di iTerm2 dan Tmux

Preferensi Sistem

Hapus centang pada semua item yang merujuk kunci kontrol, biarkan binding berfungsi dengan benar

Andrew
sumber