Перейти к последней подсказке в терминале (или tmux)


8

Есть ли в терминале ярлыки для перехода к предыдущему / следующему приглашению? Прокрутка вверх и попытка найти начало журнала замедляет мой рабочий процесс.

Я использую iTerm на OSX, но это должно быть применимо к любым терминалам Unix. Решение в Tmux также поможет.


Если ваше имя хоста есть в вашем приглашении, вы можете отменить поиск, чтобы вернуться назад таким образом ...
jasonwryan

Труба до less.
Кусалананда

Ответы:


4

В tmux v2.4 + ( соответствующая фиксация ) вы можете определить привязку для перехода к последним приглашениям с приемлемой надежностью:

bind-key b copy-mode\;\
           send-keys -X start-of-line\;\
           send-keys -X search-backward " "

Где " "- неразрывный пробел, и сделано соответствующее изменение, чтобы подсказка оболочки содержала его ( $PS1или $PROMPT_COMMANDв bash).

Может потребоваться особая осторожность, чтобы установить его в приглашении оболочки и конфигурации tmux, так как он может быть изменен на обычное пространство во время операций копирования и вставки (см. Метод с vim в комментариях).

Кроме того, вы можете попробовать свой любимый альтернативный символ Юникода или что-либо, что редко встречается в выходных данных команды, и которые вы готовы принять, увидев в вашем приглашении (🍌?).

Это также может быть комбинация нескольких символов для еще меньшего количества ложных срабатываний. Вероятно, лучше выбрать что-то в самом конце приглашения, чтобы упростить навигацию.

Кредит :

  • https://github.com/salcode/ironcode-tmux/issues/21 для использования неразрывного пробела и привязки. Сначала я подумал, что это может быть случай использования пространства нулевой ширины, но, похоже, он не работает.
  • Робенк за указание на то, что при вставке копий странные символьные пространства не всегда надежны

1
Вырезание и вставка не давали бы мне работать без пробела, но я смог заставить его работать с помощью Vim. В режиме вставки используйте CTRL-k <space><space>для вставки неразрывного пробела. Затем после слов в обычном режиме gaкоманда печатает значение ASCII символа под курсором, которое можно использовать для подтверждения того, что этот символ отличается от других пробелов.
Робенклин

0

Если вы используете lessдля просмотра содержимого файла журнала, у вас есть возможность прокручивать вперед и назад с помощью Spaceи bклавиша (см lessруководства). Вы также можете выполнять поиск в выходных данных с помощью /?для обратного поиска).

Чтобы просмотреть выходные данные программы less, просто передайте выходные данные в нее:

$ ./myprogram | less

Чтобы дополнительно сохранить вывод в файл:

$ ./myprogram | tee myprogram.out | less

Если вы нажмете Fво время чтения файла, который записывается, lessбудет вести себя как tail -f. Чтобы прервать это, нажмите Ctrl+ c.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.