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

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

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

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

45 ответов

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

8
ответ дан 6 August 2018 в 03:34

Отправьте фрагмент кода ниже в своем .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
ответ дан 6 August 2018 в 03:34

Если вы являетесь пользователем 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
ответ дан 6 August 2018 в 03:34

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

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

14
ответ дан 7 August 2018 в 21:23

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

8
ответ дан 7 August 2018 в 21:23

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

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

Или, если вы хотите использовать Ctrl-Something для прямого перехода к середине, измените код на:

  jump_mid () {LEN = $ {# READLINE_LINE} POS = $ (($ LEN  / 2)) READLINE_POINT = $ POS}  

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

0
ответ дан 7 August 2018 в 21:23

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

  Ctrl + a - перейти к началу командной строки Ctrl + e - перейти в конец командной строки Ctrl  + k - удалить из курсора в конец командной строки Ctrl + u - удалить из курсора в начало командной строки Ctrl + w - удалить из курсора в начало слова (т. е. удалить назад одно слово) Ctrl + y - вставить  слова или текста, которые были вырезаны с использованием одной из ярлыков удаления (например, выше) после курсора Ctrl + xx - перемещение между началом командной строки и текущей позицией курсора (и обратно) Alt + b - перемещение назад одним словом (  или перейти к началу слова, в котором находится курсор) Alt + f - переместить одно слово (или перейти к концу слова, в котором курсор в данный момент включен) Alt + d - удалить до конца слова, начинающегося с курсора (целое слово, если курсор  находится в начале слова) Alt + c - заглавная буква до конца слова, начинающегося с курсора (целое слово, если курсор находится в начале слова) Alt + u - сделать верхний регистр от курсора  до конца слова Alt + l - сделать строчную букву от курсора до конца слова Alt + t - заменить текущее слово предыдущим Ctrl + f - переместить вперед один символ Ctrl + b - переместить назад один символ Ctrl + d - удалить символ под курсором  Ctrl + h - удаление символа перед курсором Ctrl + t - подкачка символа под курсором с предыдущим  
64
ответ дан 7 August 2018 в 21:23

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

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

14
ответ дан 10 August 2018 в 09:40

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

  Ctrl + a - перейти к началу командной строки Ctrl + e - перейти в конец командной строки Ctrl  + k - удалить из курсора в конец командной строки Ctrl + u - удалить из курсора в начало командной строки Ctrl + w - удалить из курсора в начало слова (т. е. удалить назад одно слово) Ctrl + y - вставить  слова или текста, которые были вырезаны с использованием одной из ярлыков удаления (например, выше) после курсора Ctrl + xx - перемещение между началом командной строки и текущей позицией курсора (и обратно) Alt + b - перемещение назад одним словом (  или перейти к началу слова, в котором находится курсор) Alt + f - переместить одно слово (или перейти к концу слова, в котором курсор в данный момент включен) Alt + d - удалить до конца слова, начинающегося с курсора (целое слово, если курсор  находится в начале слова) Alt + c - заглавная буква до конца слова, начинающегося с курсора (целое слово, если курсор находится в начале слова) Alt + u - сделать верхний регистр от курсора  до конца слова Alt + l - сделать строчную букву от курсора до конца слова Alt + t - заменить текущее слово предыдущим Ctrl + f - переместить вперед один символ Ctrl + b - переместить назад один символ Ctrl + d - удалить символ под курсором  Ctrl + h - удаление символа перед курсором Ctrl + t - подкачка символа под курсором с предыдущим  
64
ответ дан 10 August 2018 в 09:40

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

8
ответ дан 10 August 2018 в 09:40

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

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

Или, если вы хотите использовать Ctrl-Something для прямого перехода к середине, измените код на:

  jump_mid () {LEN = $ {# READLINE_LINE} POS = $ (($ LEN  / 2)) READLINE_POINT = $ POS}  

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

0
ответ дан 10 August 2018 в 09:40

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

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

14
ответ дан 13 August 2018 в 15:53

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

8
ответ дан 13 August 2018 в 15:53

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

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

Или, если вы хотите использовать Ctrl-Something для прямого перехода к середине, измените код на:

  jump_mid () {LEN = $ {# READLINE_LINE} POS = $ (($ LEN  / 2)) READLINE_POINT = $ POS}  

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

0
ответ дан 13 August 2018 в 15:53

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

  Ctrl + a - перейти к началу командной строки Ctrl + e - перейти в конец командной строки Ctrl  + k - удалить из курсора в конец командной строки Ctrl + u - удалить из курсора в начало командной строки Ctrl + w - удалить из курсора в начало слова (т. е. удалить назад одно слово) Ctrl + y - вставить  слова или текста, которые были вырезаны с использованием одной из ярлыков удаления (например, выше) после курсора Ctrl + xx - перемещение между началом командной строки и текущей позицией курсора (и обратно) Alt + b - перемещение назад одним словом (  или перейти к началу слова, в котором находится курсор) Alt + f - переместить одно слово (или перейти к концу слова, в котором курсор в данный момент включен) Alt + d - удалить до конца слова, начинающегося с курсора (целое слово, если курсор  находится в начале слова) Alt + c - заглавная буква до конца слова, начинающегося с курсора (целое слово, если курсор находится в начале слова) Alt + u - сделать верхний регистр от курсора  до конца слова Alt + l - сделать строчную букву от курсора до конца слова Alt + t - заменить текущее слово предыдущим Ctrl + f - переместить вперед один символ Ctrl + b - переместить назад один символ Ctrl + d - удалить символ под курсором  Ctrl + h - удаление символа перед курсором Ctrl + t - подкачка символа под курсором с предыдущим  
64
ответ дан 13 August 2018 в 15:53
  • 1
    Благодарим вас за этот простой список без chit-chat-less. – neverMind9 9 July 2018 в 13:04

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

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