Я знаю комбінацію Ctrl+ Aперейти до початку поточної команди, і Ctrl+ Eперейти до кінця.
Але чи є спосіб стрибати слово за словом, як Alt+ ←/ →у програмах з какао?
ALT
ярлики були додані в термінал в останній OS X версії.
Я знаю комбінацію Ctrl+ Aперейти до початку поточної команди, і Ctrl+ Eперейти до кінця.
Але чи є спосіб стрибати слово за словом, як Alt+ ←/ →у програмах з какао?
ALT
ярлики були додані в термінал в останній OS X версії.
Відповіді:
З вікна ви можете використовувати досить химерні Esc+ Fдля переходу до початку наступного слова та Esc+ Bдля переходу до початку поточного слова.
Esc
+, F
коли в кінці рядка або інший клавішею клавіші на початку рядка, він просто вставляє букву замість цього. Дратівливий!
~/.inputrc
.
У Mac OS X - наступні комбінації клавіш працюють за замовчуванням. Зауважте, що ви повинні зробити клавішу Option діяти як Meta в налаштуваннях терміналу (на вкладці клавіатури)
Я помітив, що прив'язка клавіш emacs за замовчуванням для простої навігації по тексту, здається, працює на оболонках bash. Можна використовувати
За замовчуванням у Терміналу є ці ярлики для переміщення (ліворуч та праворуч) по слову:
Ви можете налаштувати alt+ ←та →створити ці послідовності для вас:
⌥ ←
якщо вона є, або додайте її, якщо її немає.\033b
(цей текст не можна вводити вручну).\033f
)Крім того, ви можете посилатися на цю публікацію в блозі в текстовому тексті:
B
для задньої або F
для вперед в Esc+
поле
alt left
та alt right
генерував ці послідовності
Перехід на iTerm2 . Це безкоштовно і набагато приємніше, ніж звичайний старий термінал. Крім того, у нього є набагато більше варіантів налаштування, як, наприклад, комбінації клавіш.
Також я люблю, що ви можете використовувати cmdта 1-9 для перемикання між вкладками. Спробуйте, і ви ніколи не повернетесь до звичайного терміналу :)
Як налаштувати власні налаштування клавіатури в iterm2
Я часто натискаю неправильну кнопку ( cmd/ control/ alt) за допомогою клавіші зі стрілкою, і тому у мене є комбінації клавіш зі стрілками з цими кнопками, усі вони готові стрибати слова вперед та назад, але будь ласка, робіть те, що вам найбільше підходить.
Ctrl + Arrow Left
або Right
- Up
і Down
працює: / спробував і без нового профілю встановлений за замовчуванням
Насправді існує набагато кращий підхід. Утримуйте option( altна деяких клавіатурах) і натискайте клавіші зі стрілками вліво або вправо, щоб рухатися за словом. Просто як це.
option←
option→
Також ctrleпідведе вас до кінця рядка і ctrlaпереведе вас на старт.
[D
і [C
. Щоб виправити це, додайте bind '"[D": backward-word'
і bind '"[C": forward-word'
до мого .bashrc
.
.bashrc
але вона не спрацювала, нічого поганого для мене? (Я використовую RubyMine)
.bashrc
коли термінал завантажується. Спробуйте echo "here"
і подивіться, чи з’являється це повідомлення під час відкриття нового терміналу. Також вам доведеться закрити і знову відкрити термінал або запустити source ~/.bashrc
його, щоб прочитати новий файл.
У мене є Alt+ ←/ →працює: відкрити Налаштування »Налаштування» Клавіатура , встановіть запис курсору опцій зліва для надсилання рядка в оболонку: \ 033b і встановіть курсор опцій праворуч для надсилання рядка в оболонку: \ 033f . Ви також можете використовувати це для інших комбінацій клавіш управління.
Enable option as meta key
. До речі, це дуже круто. Ключ, безумовно, буде набагато зручніше досягти порівняння з Esc + B або Esc + F
Насправді це залежить від того, яку оболонку ви використовуєте, проте більшість оболонок мають схожі прив'язки. Прив’язки, на які ви посилаєтесь (наприклад, Ctrl+ Aі Ctrl+ E), є прив'язками, які ви знайдете у багатьох інших програмах, і вони використовуються протягом віків, BTW також працює в більшості програм UI.
Ось перегляд типових прив’язок для Bash:
Найважливіші комбінації клавіш Bash
Також зверніть увагу, що ви можете їх налаштувати. Вам потрібно створити файл, назвіть за своїм бажанням, я назвав mine .bash_key_bindings і помістив його у свій домашній каталог. Там ви можете встановити деякі загальні параметри bash, а також можете встановити прив'язки ключів. Щоб переконатися, що вони застосовані, вам потрібно змінити файл під назвою ".bashrc", який читає bash при запуску (ви повинні створити його, якщо його немає) та здійснити наступний виклик там:
bind -f ~/.bash_key_bindings
~ означає домашній каталог у bash, як зазначено вище, ви можете називати файл так, як вам подобається, а також розміщувати його там, де вам подобається, доки ви подаєте правильний шлях + ім'я для прив’язки.
Дозвольте показати вам деякі витяги з мого .bash_key_bindings файлу:
set meta-flag on
set input-meta on
set output-meta on
set convert-meta off
set show-all-if-ambiguous on
set bell-style none
set print-completions-horizontally off
Вони просто встановлюють пару варіантів (наприклад, відключити дзвінок; все це можна знайти на веб-сторінці bash).
"A": self-insert
"B": self-insert
"C": self-insert
"D": self-insert
"E": self-insert
"F": self-insert
"G": self-insert
"H": self-insert
"I": self-insert
"J": self-insert
Вони впевнені, що лише персонажі нічого не роблять, але переконуючись, що персонаж "набраний" (вони вставляються на оболонку).
"\C-dW": kill-word
"\C-dL": kill-line
"\C-dw": backward-kill-word
"\C-dl": backward-kill-line
"\C-da": kill-line
Це досить цікаво. Якщо я натиснув Ctrl+ Dпоодинці (вибрав d для видалення), нічого не станеться. Але якщо я тоді введу нижній регістр w, слово зліва від курсора буде видалено. Однак, якщо я напишу верхній регістр, слово праворуч від курсору вбивається. Те ж саме стосується l та L щодо всього рядка, що починається від курсору. Якщо я напишу "a", весь рядок фактично видаляється (усе до і після курсору).
Я розмістив стрибки одне слово вперед на Ctrl+ Fі одне слово назад на Ctrl+B
"\C-f": forward-word
"\C-b": backward-word
Як ви бачите, ви можете зробити ярлик, який веде до дії негайно, або ви можете зробити один, який просто вводить послідовність символів, і тоді вам доведеться ввести один (або більше) символів, щоб викликати дію як показано в прикладі далі вище.
Тож якщо ви не задоволені прив’язками за замовчуванням, сміливо налаштовуйте їх так, як вам подобається. Ось посилання на посібник з bash для отримання додаткової інформації.
command
ключовий код? У вашому прикладі control
є \C
, але як це command
?
Meta
в bash ( \M
), cmd + зліва \M-\e[D
. Однак ви не можете зіставити cmd + ... ні до чого, всі ярлики команд обробляються (і таким чином проковтуються) самим додатком Terminal (ті ніколи не пересилаються в оболонку), а cmd + залишає карти в "попереднє вікно", якщо у вас кілька вікна терміналу відкриті. Вибачте, це просто неможливо з додатком Terminal.
Використовуйте попередньо налаштоване природне редагування тексту !
По суті, він пов'язує, серед інших ключових послідовностей, Option + LeftArrow для ^[b
послідовності та Option + RightArrow для^[f
Це працює в рибі та баш, а також у терміналі psql.
Якщо ви станете користувачем Vim, ви можете спробувати режим vim bash. Запустіть це або покладіть у свій ~/.bashrc
файл:
set -o vi
За замовчуванням ви перебуваєте у режимі вставки; натисніть на втечу, і ви зможете пересуватися так, як у звичайному режимі Vim, тому рух за словом є w
або b
, і звичайні клавіші руху також працюють .
Якщо ви перевірте Use option as meta key
на вкладці клавіатури налаштування, то команди стилю emacs за замовчуванням для прямого та зворотного слова та ⌥F
( Alt+ F) та ⌥B
( Alt+ B) відповідно.
Я рекомендую прочитати від Bash до Z-Shell . Якщо ви хочете збільшити баш / zsh майстерність!
На Mac OS X Lion 10.7, Terminal карти Option- Left/Right Arrowдо Esc- b/fза замовчуванням, так що тепер вбудований для Баш і інших програм, що використовують ці Emacs-сумісних комбінацій клавіш.
Утримуючи клавішу Option і натисніть, куди ви хочете перемістити курсор
У розділі iterm2
" Налаштування"> "Профіль"> "Клавіші" ви натискаєте клавішу "Класифікація+
нижче" та записуєте новий ярлик. Для дії виберіть і введіть відповідно або назад або вперед.Send Escape Sequence
b
f
Коли я спробував записати один для ( Ctrl+ ←), я помітив у полі " Клавіша швидкого доступу", що стрілка ніколи не з’являється. Виявляється, мені довелося відключити системні налаштування Mac за замовчуванням > Клавіатура> Комбінації клавіш> Комбінації клавіш управління місіями, щоб спочатку працювати, оскільки вони перекриють ярлики за замовчуванням iterm2. Має бути правдою і для стандартного термінального додатка.
Нова відповідь для користувачів iTerm2 Build 3.3.4:
Крок 1: (MacOS X) Системні налаштування> Клавіатура> Вкладка ярликів> Вибір управління місією (ліва панель)> Зніміть прапорці для ярликів, позначених як "Переміщення ліворуч" та "Переміщення праворуч на пробіл"
Крок 2: (iTerm2 Build 3.3.4) Налаштування> Профілі> Виберіть * За замовчуванням (ліва панель)> вкладка Ключі> Видалити обидві записи "⌥->" та "⌥ <-"> Встановити обидві клавіші "Лівий параметр (⌥)": "та" Клавіша правого варіанту (⌥): "до Esc +
Ніякого возитися з профілями оболонки, не возитися з неповноцінними masOS (за замовчуванням) Термінал, без незручних Esc + F / B, промивати та повторювати безглуздість.
Справу зроблено!!!
Насолоджуйтесь цією порадою, мої колеги ПРОГРАММЕРИ!
Як відповів раніше, ви можете додати set -o vi
в ваших , ~/.bashrc
щоб використовувати vi
/ vim
прив'язок клавіш, або ж ви можете додати такі частини в .bashrc
ворушити Ctrl
і клавіші зі стрілками:
# bindings to move 1 word left/right with ctrl+left/right in terminal, just some apple stuff!
bind '"\e[5C": forward-word'
bind '"\e[5D": backward-word'
# bindings to move 1 word left/right with ctrl+left/right in iTerm2, just some apple stuff!
bind '"\e[1;5C": forward-word'
bind '"\e[1;5D": backward-word'
Щоб запустити дію цих рядків коду, source ~/.bashrc
або розпочніть новий термінальний сеанс.