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

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

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

136
задан 30 May 2011 в 11:24

5 ответов

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

  • Ctrl-A: перейдите к началу строки
  • Ctrl-E: пойдите в конец строки
  • Alt-B: пропустите одно слово назад
  • Alt-F: пропустите одно слово вперед
  • Ctrl-U: удалите к началу строки
  • Ctrl-K: удалите в конец строки
  • Alt-D: удалите в конец слова
175
ответ дан 22 November 2019 в 22:54

Еще некоторые ярлыки отсюда

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
77
ответ дан 22 November 2019 в 22:54

Я не знаю о способе конкретно перейти к середине, не используя клавиши управления курсором. Однако я могу рекомендовать использовать CTRL + клавиши управления курсором, чтобы переместиться от пробела до пробела (т.е. спрыгнуть с одного слова другому).

8
ответ дан 22 November 2019 в 22:54

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

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

14
ответ дан 22 November 2019 в 22:54

Получите фрагмент кода ниже в Вашем .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, чтобы непосредственно перейти к середине, изменить код на:

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

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

1
ответ дан 22 November 2019 в 22:54

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

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