Як швидше орієнтуватися на довгі команди?


136

Чи є спосіб прискорити навігацію по CLI в Linux, коли я повинен вводити довгі команди? Я просто використовую стрілки прямо зараз, і - якщо у мене довга команда, потрібен певний час, щоб перейти від початку команди до середини її.

Чи є спосіб, наприклад, перейти до середини команди, не використовуючи стрілки?

Відповіді:


174

Деякі корисні редагування ліній для ключових рядків, надані бібліотекою Readline :

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

7
+1, оскільки це працює навіть тоді, коли з певних причин стрілки ctrl не працюють. Варто зазначити, що для screenкористувачів, Ctrl-A стає Ctrl-A A.
enzotib

3
Щоб скасувати видалення (або перемістити текст, видаливши його), використовуйте Ctrl + Y.
Lekensteyn

7
Ctrl + стрілка вправо, Ctrl + стрілка вліво, яку варто згадати.
мак

3
У Ubuntu за допомогою Gnome та GnomeTerminal Alt-Aвідкривається меню замість переміщення курсору. Як ви користуєтесь Alt-AGnome? Я маю на увазі, Gnome є типовим, тому, ймовірно, хтось, хто читає це, запустив би термінал у Gnome.
Джейсон

1
Якщо ви підключаєтесь до Ubuntu з OS X через SSH, можливо, вам доведеться використовувати "Esc" замість Ctrl, наприклад, Esc-A, Esc-E тощо. Це справедливо для iTerm та Terminal.
Фред Клаузен

77

Ще кілька ярликів звідси

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

Дякуємо вам за цей прямий список без чатів.
neverMind9

14

Якщо ви користувач 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.


8

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


1

Укажіть фрагмент коду нижче у вашому .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.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.