Якщо я встановлю прив'язку клавіші Cb до ca у tmux, як я можу перемістити курсор на початок рядка?


74

Я просто переходжу з екрана GNU на tmux, на екрані, коли я натискаю C-a, потім aзнову ввожу текст, може перевести мене на початок рядка, цікаво, якщо я дотримуюся C-atmux, як я можу обійти це?



@ChrisJohnsen Дякую, що вказав на це питання, це також допомагає
mko


[ДУМКА] Хоча ctrl-a, безсумнівно, легше друкувати на клавіатурі 'qwerty', ніж ctrl-b, я загалом заважаю людям налаштовувати інструменти unix таким чином. Якби все, що ви зробили, було змінити ключ префікса tmux, це було б не так погано. Але часто люди не задовольняються зупинятись на досягнутому, і в підсумку вони отримують такий суворо налаштований tmux, що, якщо їх коли-небудь попросять скористатися чужою машиною, яка відповідає поведінці за замовчуванням, вони будуть не в своєму роді. На мою думку, найкращою практикою є прийняття тих стандартів, які вже існують, та збереження налаштувань для власних розширень функціональних можливостей.
Ryan V. Bissell

[ІНШЕ ДУМКА] Я пропоную використовувати Ctrl-jпрефікс для будь-якого термінального мультиплексора, оскільки як в Emacs, так і у Vim поводяться як клавіша Enter (поки ваша клавіша Enter працює, у вас все повинно бути); також jзнаходиться у вашому домашньому ряду; також лівий Ctrlзазвичай ближче правого, Ctrlтому Ctrl-jце швидке поєднання; також jсхожий на гачок.
isar

Відповіді:


82

Як відомо, C-bце префікс за замовчуванням у tmux. C-b C-bвикористовується для надсилання фактичного C-bсимволу на термінал. Якщо переключити префікс наC-a , вам просто потрібно перев’язати деякі ключі, щоб оновити, який із них надсилаєsend-prefix команду.

Для вашого .tmux.conf:

# You probably already put this in
set prefix C-a

unbind-key C-b
bind-key C-a send-prefix

Як перемістити курсор, перемістити початок рядка?
mko

11
Після цих прив'язок знаходяться в місці, C-a C-a. Ви також можете додати, bind-key a send-prefixщоб зберегти схожу на екран C-a aпослідовність.
chepner

4
Справа в send-prefixтому, що він посилає префіксний ключ на оболонку. tmuxне переміщує курсор на початок рядка; bashробить це (через readline), коли отримує C-a. Повірте мені, наведений вище код - це те, що ви хочете у своєму .tmux.conf.
Чепнер

1
Який я дурний, я не зовсім закінчив сеанс tmux після зміни конфігураційного файлу, тепер це працює, дякую!
mko

11
Ви також C-a :source ~/.tmux.confможете перезавантажити файл конф, не виходячи з сеансу tmux.
jackbravo

81

Можливо, це проблема щодо версії, яку я використовую, але якщо вищевказаний код не працює для вас, спробуйте наступне:

set -g prefix C-a
unbind-key C-b
bind-key C-a send-prefix

10
Дякую, -gце обов'язково потрібно для моєї інсталяції Ubuntu, можливо, операційна програма повинна підтвердити, що прийнята відповідь все ще працює для нього?
stephenmurdoch

3
здається, що опція -g також потрібна для mac
Джардалу

Працює у мене на mac без -g: |
Авіель Гросс

1
Глобальне значення "всі сесії" - у мене була та сама проблема, одна сесія оновлена, а інша - ні. -g рятує день.
Ніл Макгілл,

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