Як я можу змусити клавіші ctrl + лівий / правий переміщення цілим словом у tmux?


100

І в zsh і bash, ctrl + стрілки дозволяють мені переміщувати позицію, в яку я набираю ціле слово, але це не працює в tmux, що є проблемою, оскільки я зараз запускаю його автоматично кожного разу, коли відкриваю оболонку .

Як я можу це виправити?

Відповіді:


130
  1. Відредагуйте ~/.tmux.confі додайте рядки:

    set-window-option -g xterm-keys on
    
  2. Якщо ви ще не хочете робити його постійним, зробіть:

    C-b :set-window-option xterm-keys on
    
  3. Перезавантажте конфігурацію в tmux, виконавши:

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

Більше інформації тут :


2
Дивно: Це працює для мене, лише якщо я перезавантажую файл ~ / .tmux.conf з tmux або встановлюю дію в: -prompt tmux, а не спочатку, коли я відкриваю tmux. Будь-які ідеї, в чому може бути проблема?
AME

@AME закрийте всі сеанси tmux, потім спробуйте ще раз.
Натан

Якщо конфігурація перезавантаження не вирішує проблему (це стосується мене), спробуйте новий сеанс. Можливо, вам потрібно вбити поточний сеанс і створити новий. Інший варіант, щоб зробити його ефект на панелі (не сеансом), це Cb: respawn-pane -k
fstang

Це працювало для мене, здебільшого. Цікаво, чому це не за замовчуванням?
inetknght

Вбивство сеансу чи все set-window-option -g xterm-keys onще нічого не робить у моєму випадку.
noraj

8
set-window-option -g xterm-keys on

Потрапив мені десь там і дав мені Ctrl- Left/Rightна консолі, але він усе ще відповідав по-різному.

Розв’язування ключів, здається, не допомогло.

Виявилося, що я в якийсь момент встановив свій екран за замовчуванням на екран ( set-option -g default-terminal "screen"in .tmux.conf)

Змінення цього на наступне дало мені Ctrl- Left/Rightу всьому іншому:

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

Сподіваюся, що хтось допомагає.


1
За винятком цього розбиває кольори у vim, tig та, мабуть, цілу купу інших речей ...
koniiiik

1
Дивіться також unix.stackexchange.com/a/1098/250, щоб порадити проти встановлення терміна, як у tmux
phunehehe

3

Для msys2 / Cygwin / mintty:

Додати нижче в ~/.inputrc.

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

Перезавантаження зробить tmux правильним.


2

Я не впевнений, але це може бути, тому що tmuxза замовчуванням прив'язується C-<up/down/left/right>для переміщення фокусу на панель вгорі / внизу / ліворуч / вліво / вправо від сфокусованої області. Якщо ви часто не використовуєте панелі, ви, можливо, не помітили цієї функції. Якщо це проблема, ви можете від’єднати ці ключі, сказавши:

unbind C-Left
unbind C-Right

Це може бути достатньо самостійно , або, можливо, вам доведеться знову вручну прив’язати їх до того, що ви хочете зробити, за допомогою:

bind -n C-Left <the action you want>
bind -n C-Right <other action you want>

1
Його має бути достатньо, якщо він не схоплений tmux, він повинен перейти на оболонку.
Роб

0

Для мене ключі не були пов’язані належним чином, оскільки системні налаштування у Високій Сьєррі були налаштовані на використання управлінням місії. Якщо зняти цей прапорець, тоді дозволили правильні прив’язки працювати в iTerm2 та Tmux

Налаштування системи

Якщо зняти галочку з усіх елементів, на які посилається керуючий ключ, дозволили прив’язки працювати належним чином

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.