Как быстро перемещаться по длинным командам?

Есть ли способ ускорить навигацию на CLI Linux, когда я должен ввести длинные команды? Я просто использую стрелки прямо сейчас, и - если у меня есть длинная команда, требуется некоторое время, чтобы добраться от начала команды до середины.

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

123
задан 30 May 2011 в 23:24

45 ответов

Некоторые полезные привязки клавиш редактирования строки, предоставляемые библиотекой Readline:

Ctrl-A: перейти к началу строки Ctrl-E: перейти к концу строки Alt-B: пропустить одно слово назад Alt-F: пропустить одно слово вперед Ctrl-U: удалить до начала строки Ctrl-K: удалить до конца строки Alt-D: удалить до конца слова
149
ответ дан 25 July 2018 в 21:50
  • 1
    +1, потому что это работает, даже если по некоторым причинам ctrl-стрелки не работают. Стоит отметить, что для пользователей screen, Ctrl-A становится Ctrl-A A. – enzotib 27 May 2011 в 23:54
  • 2
    Чтобы отменить удаление (или переместить текст, удалив его), используйте Ctrl + Y. – Lekensteyn 9 June 2011 в 03:48
  • 3
    Ctrl + стрелка вправо, Ctrl + стрелка влево стоит упомянуть. – mac 16 January 2014 в 21:04
  • 4
    На Ubuntu с использованием Gnome и GnomeTerminal Alt-A открывается меню вместо перемещения курсора. Как вы используете Alt-A с Gnome? Я имею в виду, что Gnome по умолчанию, поэтому, вероятно, кто-нибудь, кто читает это, будет использовать терминал в Gnome. – Jason 6 August 2014 в 04:42
  • 5
    Если вы подключаетесь к Ubuntu из OS X через SSH, возможно, вам придется использовать «Esc». вместо Ctrl, например, Esc-A, Esc-E и так далее. Это верно для iTerm и Terminal. – Fred Clausen 28 January 2015 в 04:30

Некоторые полезные привязки клавиш редактирования строки, предоставляемые библиотекой Readline:

Ctrl-A: перейти к началу строки Ctrl-E: перейти к концу строки Alt-B: пропустить одно слово назад Alt-F: пропустить одно слово вперед Ctrl-U: удалить до начала строки Ctrl-K: удалить до конца строки Alt-D: удалить до конца слова
149
ответ дан 31 July 2018 в 10:25

Некоторые полезные привязки клавиш редактирования строки, предоставляемые библиотекой Readline:

Ctrl-A: перейти к началу строки Ctrl-E: перейти к концу строки Alt-B: пропустить одно слово назад Alt-F: пропустить одно слово вперед Ctrl-U: удалить до начала строки Ctrl-K: удалить до конца строки Alt-D: удалить до конца слова
149
ответ дан 31 July 2018 в 11:28

Некоторые полезные привязки клавиш редактирования строки, предоставляемые библиотекой Readline:

Ctrl-A: перейти к началу строки Ctrl-E: перейти к концу строки Alt-B: пропустить одно слово назад Alt-F: пропустить одно слово вперед Ctrl-U: удалить до начала строки Ctrl-K: удалить до конца строки Alt-D: удалить до конца слова
149
ответ дан 2 August 2018 в 03:25

Некоторые полезные привязки клавиш редактирования строки, предоставляемые библиотекой Readline:

Ctrl-A: перейти к началу строки Ctrl-E: перейти к концу строки Alt-B: пропустить одно слово назад Alt-F: пропустить одно слово вперед Ctrl-U: удалить до начала строки Ctrl-K: удалить до конца строки Alt-D: удалить до конца слова
150
ответ дан 4 August 2018 в 19:23

Некоторые полезные привязки клавиш редактирования строки, предоставляемые библиотекой Readline:

Ctrl-A: перейти к началу строки Ctrl-E: перейти к концу строки Alt-B: пропустить одно слово назад Alt-F: пропустить одно слово вперед Ctrl-U: удалить до начала строки Ctrl-K: удалить до конца строки Alt-D: удалить до конца слова
150
ответ дан 6 August 2018 в 03:34

Некоторые полезные привязки клавиш редактирования строки, предоставляемые библиотекой Readline :

  • Ctrl-A : перейти к началу строки [ ! d8]
  • Ctrl-E : перейти к концу строки
  • Alt-B : пропустить одно слово назад
  • Alt-F : пропустить одно слово вперед
  • Ctrl-U : удалить до начала строки
  • ] Ctrl-K : удалить до конца строки
  • Alt-D : удалить до конца слова
150
ответ дан 7 August 2018 в 21:23

Некоторые полезные привязки клавиш редактирования строки, предоставляемые библиотекой Readline :

  • Ctrl-A : перейти к началу строки [ ! d8]
  • Ctrl-E : перейти к концу строки
  • Alt-B : пропустить одно слово назад
  • Alt-F : пропустить одно слово вперед
  • Ctrl-U : удалить до начала строки
  • ] Ctrl-K : удалить до конца строки
  • Alt-D : удалить до конца слова
150
ответ дан 10 August 2018 в 09:40

Некоторые полезные привязки клавиш редактирования строки, предоставляемые библиотекой Readline :

  • Ctrl-A : перейти к началу строки [ ! d8]
  • Ctrl-E : перейти к концу строки
  • Alt-B : пропустить одно слово назад
  • Alt-F : пропустить одно слово вперед
  • Ctrl-U : удалить до начала строки
  • ] Ctrl-K : удалить до конца строки
  • Alt-D : удалить до конца слова
150
ответ дан 13 August 2018 в 15:53
  • 1
    +1, потому что это работает, даже если по некоторым причинам ctrl-стрелки не работают. Стоит отметить, что для пользователей screen Ctrl-A становится Ctrl-A A. – enzotib 27 May 2011 в 23:54
  • 2
    Чтобы отменить удаление (или переместить текст, удалив его), используйте Ctrl + Y. – Lekensteyn 9 June 2011 в 03:48
  • 3
    Ctrl + стрелка вправо, Ctrl + стрелка влево стоит упомянуть. – mac 16 January 2014 в 21:04
  • 4
    На Ubuntu с использованием Gnome и GnomeTerminal Alt-A открывает меню вместо перемещения курсора. Как вы используете Alt-A с Gnome? Я имею в виду, что Gnome по умолчанию, поэтому, вероятно, кто-нибудь, кто читает это, будет использовать терминал в Gnome. – Jason 6 August 2014 в 04:42
  • 5
    Если вы подключаетесь к Ubuntu из OS X через SSH, вам может потребоваться использовать «Esc». вместо Ctrl, например, Esc-A, Esc-E и так далее. Это верно для iTerm и Terminal. – Fred Clausen 28 January 2015 в 04:30

Некоторые дополнительные ссылки здесь

Ctrl + a – go to the start of the command line Ctrl + e – go to the end of the command line Ctrl + k – delete from cursor to the end of the command line Ctrl + u – delete from cursor to the start of the command line Ctrl + w – delete from cursor to start of word (i.e. delete backwards one word) Ctrl + y – paste word or text that was cut using one of the deletion shortcuts (such as the one above) after the cursor Ctrl + xx – move between start of command line and current cursor position (and back again) Alt + b – move backward one word (or go to start of word the cursor is currently on) Alt + f – move forward one word (or go to end of word the cursor is currently on) Alt + d – delete to end of word starting at cursor (whole word if cursor is at the beginning of word) Alt + c – capitalize to end of word starting at cursor (whole word if cursor is at the beginning of word) Alt + u – make uppercase from cursor to end of word Alt + l – make lowercase from cursor to end of word Alt + t – swap current word with previous Ctrl + f – move forward one character Ctrl + b – move backward one character Ctrl + d – delete character under the cursor Ctrl + h – delete character before the cursor Ctrl + t – swap character under cursor with the previous one
62
ответ дан 25 July 2018 в 21:50
  • 1
    Благодарим вас за этот простой список без chit-chat-less. – neverMind9 9 July 2018 в 13:04

Я не знаю, как конкретно перейти в середину, не используя клавиши курсора. Тем не менее, я могу порекомендовать использовать CTRL + курсорную клавишу для перехода от пустой к пустой (т. Е. Перейти от одного слова к другому).

8
ответ дан 25 July 2018 в 21:50

Отправьте фрагмент кода ниже в своем .bashrc. Ctrl-a перескакивает в начало и нажимает Ctrl-a снова переходит в середину.

jump_mid() { if [ "$READLINE_POINT" -eq "0" ]; then LEN=${#READLINE_LINE} POS=$(($LEN / 2)) READLINE_POINT=$POS else READLINE_POINT=0 fi } bind -x '"\C-a" : jump_mid'

Или, если вы хотите использовать Ctrl-Something для прямого перехода к середине, измените код на: [ ! d1] jump_mid() { LEN=${#READLINE_LINE} POS=$(($LEN / 2)) READLINE_POINT=$POS }

И привяжите его к чему-то другому, чем Ctrl-a.

0
ответ дан 25 July 2018 в 21:50

Если вы являетесь пользователем vi [m] и bash, вы можете счесть полезным использовать readline (используется bash) для редактирования vi-стиля, добавив set editing-mode vi в ваши файлы ~/.inputrc или /etc/inputrc. Или вы можете просто сделать bash для редактирования vi-стиля, запустив команду bash set -o vi. Добавьте эту команду в свой файл ~/.bashrc, чтобы сделать поведение постоянным.

Если вы пользователь zsh, добавьте bindkey -v в свой файл .zshrc для редактирования в стиле vi.

14
ответ дан 25 July 2018 в 21:50

Некоторые дополнительные ссылки здесь

Ctrl + a – go to the start of the command line Ctrl + e – go to the end of the command line Ctrl + k – delete from cursor to the end of the command line Ctrl + u – delete from cursor to the start of the command line Ctrl + w – delete from cursor to start of word (i.e. delete backwards one word) Ctrl + y – paste word or text that was cut using one of the deletion shortcuts (such as the one above) after the cursor Ctrl + xx – move between start of command line and current cursor position (and back again) Alt + b – move backward one word (or go to start of word the cursor is currently on) Alt + f – move forward one word (or go to end of word the cursor is currently on) Alt + d – delete to end of word starting at cursor (whole word if cursor is at the beginning of word) Alt + c – capitalize to end of word starting at cursor (whole word if cursor is at the beginning of word) Alt + u – make uppercase from cursor to end of word Alt + l – make lowercase from cursor to end of word Alt + t – swap current word with previous Ctrl + f – move forward one character Ctrl + b – move backward one character Ctrl + d – delete character under the cursor Ctrl + h – delete character before the cursor Ctrl + t – swap character under cursor with the previous one
62
ответ дан 31 July 2018 в 10:25
  • 1
    Благодарим вас за этот простой список без chit-chat-less. – neverMind9 9 July 2018 в 13:04

Я не знаю, как конкретно перейти в середину, не используя клавиши курсора. Тем не менее, я могу порекомендовать использовать CTRL + курсорную клавишу для перехода от пустой к пустой (т. Е. Перейти от одного слова к другому).

8
ответ дан 31 July 2018 в 10:25

Отправьте фрагмент кода ниже в своем .bashrc. Ctrl-a перескакивает в начало и нажимает Ctrl-a снова переходит в середину.

jump_mid() { if [ "$READLINE_POINT" -eq "0" ]; then LEN=${#READLINE_LINE} POS=$(($LEN / 2)) READLINE_POINT=$POS else READLINE_POINT=0 fi } bind -x '"\C-a" : jump_mid'

Или, если вы хотите использовать Ctrl-Something для прямого перехода к середине, измените код на: [ ! d1] jump_mid() { LEN=${#READLINE_LINE} POS=$(($LEN / 2)) READLINE_POINT=$POS }

И привяжите его к чему-то другому, чем Ctrl-a.

0
ответ дан 31 July 2018 в 10:25

Если вы являетесь пользователем vi [m] и bash, вы можете счесть полезным использовать readline (используется bash) для редактирования vi-стиля, добавив set editing-mode vi в ваши файлы ~/.inputrc или /etc/inputrc. Или вы можете просто сделать bash для редактирования vi-стиля, запустив команду bash set -o vi. Добавьте эту команду в свой файл ~/.bashrc, чтобы сделать поведение постоянным.

Если вы пользователь zsh, добавьте bindkey -v в свой файл .zshrc для редактирования в стиле vi.

14
ответ дан 31 July 2018 в 10:25

Некоторые дополнительные ссылки здесь

Ctrl + a – go to the start of the command line Ctrl + e – go to the end of the command line Ctrl + k – delete from cursor to the end of the command line Ctrl + u – delete from cursor to the start of the command line Ctrl + w – delete from cursor to start of word (i.e. delete backwards one word) Ctrl + y – paste word or text that was cut using one of the deletion shortcuts (such as the one above) after the cursor Ctrl + xx – move between start of command line and current cursor position (and back again) Alt + b – move backward one word (or go to start of word the cursor is currently on) Alt + f – move forward one word (or go to end of word the cursor is currently on) Alt + d – delete to end of word starting at cursor (whole word if cursor is at the beginning of word) Alt + c – capitalize to end of word starting at cursor (whole word if cursor is at the beginning of word) Alt + u – make uppercase from cursor to end of word Alt + l – make lowercase from cursor to end of word Alt + t – swap current word with previous Ctrl + f – move forward one character Ctrl + b – move backward one character Ctrl + d – delete character under the cursor Ctrl + h – delete character before the cursor Ctrl + t – swap character under cursor with the previous one
62
ответ дан 31 July 2018 в 11:28
  • 1
    Благодарим вас за этот простой список без chit-chat-less. – neverMind9 9 July 2018 в 13:04

Я не знаю, как конкретно перейти в середину, не используя клавиши курсора. Тем не менее, я могу порекомендовать использовать CTRL + курсорную клавишу для перехода от пустой к пустой (т. Е. Перейти от одного слова к другому).

8
ответ дан 31 July 2018 в 11:28

Отправьте фрагмент кода ниже в своем .bashrc. Ctrl-a перескакивает в начало и нажимает Ctrl-a снова переходит в середину.

jump_mid() { if [ "$READLINE_POINT" -eq "0" ]; then LEN=${#READLINE_LINE} POS=$(($LEN / 2)) READLINE_POINT=$POS else READLINE_POINT=0 fi } bind -x '"\C-a" : jump_mid'

Или, если вы хотите использовать Ctrl-Something для прямого перехода к середине, измените код на: [ ! d1] jump_mid() { LEN=${#READLINE_LINE} POS=$(($LEN / 2)) READLINE_POINT=$POS }

И привяжите его к чему-то другому, чем Ctrl-a.

0
ответ дан 31 July 2018 в 11:28

Если вы являетесь пользователем vi [m] и bash, вы можете счесть полезным использовать readline (используется bash) для редактирования vi-стиля, добавив set editing-mode vi в ваши файлы ~/.inputrc или /etc/inputrc. Или вы можете просто сделать bash для редактирования vi-стиля, запустив команду bash set -o vi. Добавьте эту команду в свой файл ~/.bashrc, чтобы сделать поведение постоянным.

Если вы пользователь zsh, добавьте bindkey -v в свой файл .zshrc для редактирования в стиле vi.

14
ответ дан 31 July 2018 в 11:28

Некоторые дополнительные ссылки здесь

Ctrl + a – go to the start of the command line Ctrl + e – go to the end of the command line Ctrl + k – delete from cursor to the end of the command line Ctrl + u – delete from cursor to the start of the command line Ctrl + w – delete from cursor to start of word (i.e. delete backwards one word) Ctrl + y – paste word or text that was cut using one of the deletion shortcuts (such as the one above) after the cursor Ctrl + xx – move between start of command line and current cursor position (and back again) Alt + b – move backward one word (or go to start of word the cursor is currently on) Alt + f – move forward one word (or go to end of word the cursor is currently on) Alt + d – delete to end of word starting at cursor (whole word if cursor is at the beginning of word) Alt + c – capitalize to end of word starting at cursor (whole word if cursor is at the beginning of word) Alt + u – make uppercase from cursor to end of word Alt + l – make lowercase from cursor to end of word Alt + t – swap current word with previous Ctrl + f – move forward one character Ctrl + b – move backward one character Ctrl + d – delete character under the cursor Ctrl + h – delete character before the cursor Ctrl + t – swap character under cursor with the previous one
62
ответ дан 2 August 2018 в 03:25
  • 1
    Благодарим вас за этот простой список без chit-chat-less. – neverMind9 9 July 2018 в 13:04

Я не знаю, как конкретно перейти в середину, не используя клавиши курсора. Тем не менее, я могу порекомендовать использовать CTRL + курсорную клавишу для перехода от пустой к пустой (т. Е. Перейти от одного слова к другому).

8
ответ дан 2 August 2018 в 03:25

Отправьте фрагмент кода ниже в своем .bashrc. Ctrl-a перескакивает в начало и нажимает Ctrl-a снова переходит в середину.

jump_mid() { if [ "$READLINE_POINT" -eq "0" ]; then LEN=${#READLINE_LINE} POS=$(($LEN / 2)) READLINE_POINT=$POS else READLINE_POINT=0 fi } bind -x '"\C-a" : jump_mid'

Или, если вы хотите использовать Ctrl-Something для прямого перехода к середине, измените код на: [ ! d1] jump_mid() { LEN=${#READLINE_LINE} POS=$(($LEN / 2)) READLINE_POINT=$POS }

И привяжите его к чему-то другому, чем Ctrl-a.

0
ответ дан 2 August 2018 в 03:25

Если вы являетесь пользователем vi [m] и bash, вы можете счесть полезным использовать readline (используется bash) для редактирования vi-стиля, добавив set editing-mode vi в ваши файлы ~/.inputrc или /etc/inputrc. Или вы можете просто сделать bash для редактирования vi-стиля, запустив команду bash set -o vi. Добавьте эту команду в свой файл ~/.bashrc, чтобы сделать поведение постоянным.

Если вы пользователь zsh, добавьте bindkey -v в свой файл .zshrc для редактирования в стиле vi.

14
ответ дан 2 August 2018 в 03:25

Некоторые дополнительные ссылки здесь

Ctrl + a – go to the start of the command line Ctrl + e – go to the end of the command line Ctrl + k – delete from cursor to the end of the command line Ctrl + u – delete from cursor to the start of the command line Ctrl + w – delete from cursor to start of word (i.e. delete backwards one word) Ctrl + y – paste word or text that was cut using one of the deletion shortcuts (such as the one above) after the cursor Ctrl + xx – move between start of command line and current cursor position (and back again) Alt + b – move backward one word (or go to start of word the cursor is currently on) Alt + f – move forward one word (or go to end of word the cursor is currently on) Alt + d – delete to end of word starting at cursor (whole word if cursor is at the beginning of word) Alt + c – capitalize to end of word starting at cursor (whole word if cursor is at the beginning of word) Alt + u – make uppercase from cursor to end of word Alt + l – make lowercase from cursor to end of word Alt + t – swap current word with previous Ctrl + f – move forward one character Ctrl + b – move backward one character Ctrl + d – delete character under the cursor Ctrl + h – delete character before the cursor Ctrl + t – swap character under cursor with the previous one
63
ответ дан 4 August 2018 в 19:23
  • 1
    Благодарим вас за этот простой список без chit-chat-less. – neverMind9 9 July 2018 в 13:04

Я не знаю, как конкретно перейти в середину, не используя клавиши курсора. Тем не менее, я могу порекомендовать использовать CTRL + курсорную клавишу для перехода от пустой к пустой (т. Е. Перейти от одного слова к другому).

8
ответ дан 4 August 2018 в 19:23

Отправьте фрагмент кода ниже в своем .bashrc. Ctrl-a перескакивает в начало и нажимает Ctrl-a снова переходит в середину.

jump_mid() { if [ "$READLINE_POINT" -eq "0" ]; then LEN=${#READLINE_LINE} POS=$(($LEN / 2)) READLINE_POINT=$POS else READLINE_POINT=0 fi } bind -x '"\C-a" : jump_mid'

Или, если вы хотите использовать Ctrl-Something для прямого перехода к середине, измените код на: [ ! d1] jump_mid() { LEN=${#READLINE_LINE} POS=$(($LEN / 2)) READLINE_POINT=$POS }

И привяжите его к чему-то другому, чем Ctrl-a.

0
ответ дан 4 August 2018 в 19:23

Если вы являетесь пользователем vi [m] и bash, вы можете счесть полезным использовать readline (используется bash) для редактирования vi-стиля, добавив set editing-mode vi в ваши файлы ~/.inputrc или /etc/inputrc. Или вы можете просто сделать bash для редактирования vi-стиля, запустив команду bash set -o vi. Добавьте эту команду в свой файл ~/.bashrc, чтобы сделать поведение постоянным.

Если вы пользователь zsh, добавьте bindkey -v в свой файл .zshrc для редактирования в стиле vi.

14
ответ дан 4 August 2018 в 19:23

Некоторые дополнительные ссылки здесь

Ctrl + a – go to the start of the command line Ctrl + e – go to the end of the command line Ctrl + k – delete from cursor to the end of the command line Ctrl + u – delete from cursor to the start of the command line Ctrl + w – delete from cursor to start of word (i.e. delete backwards one word) Ctrl + y – paste word or text that was cut using one of the deletion shortcuts (such as the one above) after the cursor Ctrl + xx – move between start of command line and current cursor position (and back again) Alt + b – move backward one word (or go to start of word the cursor is currently on) Alt + f – move forward one word (or go to end of word the cursor is currently on) Alt + d – delete to end of word starting at cursor (whole word if cursor is at the beginning of word) Alt + c – capitalize to end of word starting at cursor (whole word if cursor is at the beginning of word) Alt + u – make uppercase from cursor to end of word Alt + l – make lowercase from cursor to end of word Alt + t – swap current word with previous Ctrl + f – move forward one character Ctrl + b – move backward one character Ctrl + d – delete character under the cursor Ctrl + h – delete character before the cursor Ctrl + t – swap character under cursor with the previous one
63
ответ дан 6 August 2018 в 03:34
  • 1
    Благодарим вас за этот простой список без chit-chat-less. – neverMind9 9 July 2018 в 13:04

Другие вопросы по тегам:

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