7

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

3 ответа3

7

Насколько я знаю, ни один из эмуляторов терминала "большой тройки" не может этого сделать, но и screen и tmux предлагают буфер обратной прокрутки, к которому вы можете получить доступ через клавиатуру.

Экран GNU

Префиксная клавиша на screen - Ctrl+A по умолчанию, но все это настраивается, поэтому с конфигурацией по умолчанию:

  1. Войдите в режим копирования с помощью Ctrl+A [.

  2. Переместите курсор с помощью движений vi : h, j, k, l, 0, ^, $, H, M, L, w, b, e, / ,?, g и G все работают (см. man screen под copy для получения дополнительной информации о привязках клавиш).

  3. Начните выбирать с помощью пробела, двигайтесь вокруг и снова остановите выбор с помощью пробела. Это выйдет из режима копирования.

  4. Вставьте выделенный текст с помощью Ctrl+A ].

tmux

tmux ведет себя примерно так же, за исключением того, что по умолчанию он использует несколько разных ключей:

  1. Войдите в режим копирования с помощью Ctrl+B [.

  2. Переместите курсор с помощью , , , , PgUp, PgDown и т.д. (См. man tmux | less -p '^WINDOWS AND PANES' для получения списка привязок режима копирования).

  3. Начните выделение с помощью Ctrl+ Пробел, переместитесь и остановите выделение с помощью Meta+ w. Это выйдет из режима копирования.

  4. Вставьте выделенный текст с помощью Ctrl+B ].

1

Зависит от терминала, который вы используете. Это возможно в режиме оболочки в emacs.

0

Это не совсем то, что вы просите, но если вы перенаправите вывод через xclip, вы можете извлечь его из буфера обмена и отредактировать. Я никогда не думал об использовании этого, чтобы минимизировать использование клавиатуры.

$ echo "this is the primary buffer" | xclip -selection "primary"
$ cat << EOF > primary.txt
> this is the primary buffer
> EOF

В gnome-Terminal я могу использовать shift-insert для вставки в here-файл. Со страницы руководства xclip -selection "clipboard" делает реальный буфер обмена вместо буфера x.

Кажется, я не могу заставить его работать с ти ... хммм ... это очень важно.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .