Есть ли способ перейти к более ранней части команды командной строки в терминале Mac?

Я часто нахожу, что я пишу длинные команды в оболочке bash - вещи со многими аргументами, веб-адресами, маршрутами и т. д. и т. д. Каждый раз я осознаю, что забыл, скажем, поставить мой «пакетный exec» в начале команды, или что-то неправильно, или забыл котировки. Или что-то так же просто, как положить «cd» вместо «vim».

Таким образом, начинается утомительный процесс удерживания клавиши со стрелкой влево, пока я не вернусь к началу команды.

Есть ли способ снова перейти к началу строки?

9 голосов | спросил GlyphGryph 25 +04002011-10-25T17:42:49+04:00312011bEurope/MoscowTue, 25 Oct 2011 17:42:49 +0400 2011, 17:42:49

8 ответов


12

В дополнение к ^ A и ^ E вы можете сделать

  • Esc - b для возврата назад одного слова
  • Esc - f для перехода вперед на одно слово
  • Ctrl - b для перемещения назад одного символа
  • Ctrl - f для перемещения вперед одного символа

См. руководство bash для команд для перемещения .

ответил glenn jackman 25 +04002011-10-25T18:44:21+04:00312011bEurope/MoscowTue, 25 Oct 2011 18:44:21 +0400 2011, 18:44:21
6

Вы можете использовать команды Emacs, например:

  • ctrl -A перейти к началу командной строки
  • ctrl -E, чтобы перейти в конец командной строки

Это bash, не относящееся к Mac.

ответил mouviciel 25 +04002011-10-25T18:02:05+04:00312011bEurope/MoscowTue, 25 Oct 2011 18:02:05 +0400 2011, 18:02:05
3
set -o vi

Затем Esc , за которым следует

^ начало строки $ конец строки b одно слово назад w одно слово вперед

ответил kizzx2 25 +04002011-10-25T20:21:41+04:00312011bEurope/MoscowTue, 25 Oct 2011 20:21:41 +0400 2011, 20:21:41
1

Это не отвечает на ваш вопрос, но в некоторых случаях может решить вашу проблему.

В bash маркер !! заменяется предыдущей командой. Поэтому, если вы забыли добавить что-то к началу команды (например, sudo), вы можете сделать что-то вроде этого

# ./super_secret_command --with-args
=> ACCESS DENIED

# sudo !!
sudo ./super_secret_command --with-args
=> ACCESS GRANTED
ответил Sam 25 +04002011-10-25T22:25:49+04:00312011bEurope/MoscowTue, 25 Oct 2011 22:25:49 +0400 2011, 22:25:49
0

Вы можете настроить обычные Ctrl/Opt+Left/Right ярлыки для использования в терминале. Таким образом, вам не нужно переучивать все, когда используете терминал.

Откройте Терминал »Настройки ...» Настройки »(выберите профиль)» Клавиатура .

Здесь назначьте следующие ярлыки:

  • Control + Cursor Left: Отправить строку \033[1~ для оболочки
  • Control + Cursor Right: Отправить строку \033[4~ для оболочки
  • Option + Cursor Left: Отправить строку \033[5D для оболочки
  • Option + Cursor Right: Отправить строку \033[5C для оболочки

Мне также нравится следующее (Fn + Left/Right):

  • Home: Отправить строку \033[1~ для оболочки
  • End: Отправить строку \033[4~ для оболочки

введите описание изображения здесь>> </p></body></html>

ответил Daniel Beck 25 +04002011-10-25T22:45:07+04:00312011bEurope/MoscowTue, 25 Oct 2011 22:45:07 +0400 2011, 22:45:07
0

Мне это нужно в Cygwin, а не в Mac, но добавление следующего в ~/.inputrc тоже может помочь:

"\e[1;5C": forward-word   # ctrl + right
"\e[1;5D": backward-word  # ctrl + left 
ответил Tom 27 +04002011-10-27T02:10:35+04:00312011bEurope/MoscowThu, 27 Oct 2011 02:10:35 +0400 2011, 02:10:35
0

Я не пользователь Mac, но как насчет клавиши Home ? Это отлично работает на терминале Linux.

ответил m0skit0 25 +04002011-10-25T17:56:52+04:00312011bEurope/MoscowTue, 25 Oct 2011 17:56:52 +0400 2011, 17:56:52
0

Лучший способ передвижения по командной строке в Mac Os X - использовать мой профиль: https : //github.com/lingtalfi/mac-terminal-shortcuts

Он предоставляет следующие (интуитивные) ярлыки:

ALT-left: move one word backward
ALT-right: move one word forward
CTRL-left: move to the beginning of the line
CTRL-right: move to the end of the line
ALT-backspace: kill one word backward
ALT-del: kill one word forward
ALT-up: set word after cursor to uppercase
ALT-down: set word after cursor to lowercase
home: move to the beginning of the line
end: move to the end of the line    
CTRL-backspace: Same as ALT-backspace
CTRL-del: Same as ALT-del
ответил ling 23 rdEurope/Moscowp30Europe/Moscow09bEurope/MoscowWed, 23 Sep 2015 08:14:18 +0300 2015, 08:14:18

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132