Вопрос или проблема
Я хотел бы знать, есть ли способ включить сочетания клавиш macOS для редактирования текста, чтобы они работали для команды, которую я в данный момент пишу.
Например, я хотел бы:
- Command+← перемещает курсор в начало строки.
- Command+→ перемещает курсор в конец строки.
- Command+Delete удаляет текст от начала строки до текущего курсора.
- Option+←/→ перемещает курсор к краю предыдущего или следующего слова.
- Option+Delete удаляет последнее слово до курсора.
Есть ли способ это сделать?
Запустите cat
в Терминале.
Затем нажмите ⌘ + ←.
Последовательность Escape, соответствующая ⌘ + ←, будет выведена на экран. У меня нет Mac, но, например, в Gnome Terminal / Ubuntu нажатие Ctrl + ← выведет:
^[[1;5D
Затем привяжите последовательность Escape к соответствующему действию (в данном случае backward-word
):
bindkey '<sequence>' backward-word
заменив <sequence>
на вывод cat
.
Затем сделайте то же самое для всех последовательностей, которые вы хотите сопоставить.
Действия, которые вы хотите сопоставить, в следующем порядке:
beginning-of-line
end-of-line
backward-kill-line
backward-word
forward-word
backward-kill-word
Я предлагаю вам поместить все ваши команды bindkey
(по мере их нахождения) в ~/.zshrc
, а не выполнять их, чтобы они выполнялись каждый раз, когда ~/.zshrc
загружается (т.е. каждый раз, когда вы открываете оболочку / запускаете новый экземпляр Терминала).
Наконец, выполните . ~/.zshrc
.
Ответ или решение
Чтобы включить горячие клавиши macOS для редактирования текста в текущей команде терминала, следует воспользоваться оболочкой Zsh и пользовательскими привязками клавиш. Вот пошаговая инструкция для реализации данной функции:
-
Откройте терминал и выполните команду
cat
, чтобы отслеживать коды нажатий клавиш:cat
После этого на экране будет бесполезный вывод, и терминал будет ждать ввода.
-
Используйте сочетания клавиш, которые вы хотите настроить. Например, нажмите
⌘ + ←
(Command + Влево), и вы увидите последовательность, которая будет напечатана в терминале. Сделайте то же самое для всех сочетаний клавиш, которые вы хотите настроить. -
Запишите полученные последовательности. Например, если нажатие
⌘ + ←
выводит^[[1;5D
, то сохраните эту последовательность. -
Откройте конфигурационный файл Zsh, который находится по пути
~/.zshrc
. Вы можете использовать любой текстовый редактор, например:nano ~/.zshrc
-
Добавьте привязки для полученных последовательностей. Вставьте следующие строки, заменив
<sequence>
на соответствующие коды, которые вы получили ранее:bindkey '<sequence для cmd + ←>' beginning-of-line bindkey '<sequence для cmd + →>' end-of-line bindkey '<sequence для cmd + Delete>' backward-kill-line bindkey '<sequence для option + ←>' backward-word bindkey '<sequence для option + →>' forward-word bindkey '<sequence для option + Delete>' backward-kill-word
Пример:
bindkey '^[[1;5D' beginning-of-line # для cmd + ←
-
Сохраните изменения и выйдите из редактора. Если вы использовали
nano
, нажмитеCTRL + X
, затемY
, чтобы подтвердить сохранение, иEnter
, чтобы выйти. -
Перезагрузите конфигурацию Zsh, чтобы изменения вступили в силу:
source ~/.zshrc
Теперь все указанные сочетания клавиш должны работать в терминале, позволяя вам редактировать текст так же, как вы делаете это в других приложениях macOS!