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


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

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


121
2018-05-27 15:17


происхождения




ответы:


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

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

153
2018-05-27 17:49



+1, потому что это работает, даже если по некоторым причинам ctrl-стрелки не работают. Следует отметить, что для screen пользователей, Ctrl-A становится Ctrl-A A. - enzotib
Чтобы отменить удаление (или переместить текст, удалив его), используйте Ctrl + Y. - Lekensteyn
Ctrl + стрелка вправо, Ctrl + стрелка влево стоит упомянуть. - mac
На Ubuntu с использованием Gnome и GnomeTerminal Alt-A открывает меню вместо перемещения курсора. Как вы используете Alt-A с Гномом? Я имею в виду, что Gnome по умолчанию, поэтому, вероятно, кто-нибудь, кто читает это, будет использовать терминал в Gnome. - Jason
Если вы подключаетесь к Ubuntu из OS X через SSH, возможно, вам придется использовать «Esc» вместо Ctrl, например, Esc-A, Esc-E и т. Д. Это верно для iTerm и Terminal. - Fred Clausen


Еще несколько ярлыков из Вот

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

64
2018-06-08 22:43



Благодарим вас за этот простой список без chit-chat-less. - neverMind9


Если вы являетесь пользователем 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
2017-10-14 12:58





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


8
2018-05-27 15:26





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


0
2017-10-05 12:00