У меня есть пара несовершенных, но, возможно, полезных идей.
Способ 1 - мышиный.
Используйте полосу прокрутки терминала.
Подробности (при условии xterm
, что для других терминалов потребуются корректировки).
- Включите полосу прокрутки, если это не так. (В
xterm
, это в меню, которое вы получаете с помощью Ctrl + Button2.)
- Убедитесь, что
less
не работает с этой -c
опцией (у меня эта опция включена в моей LESS
переменной среды, но она мешает тому, что мы собираемся сделать, поэтому я должен набрать, -c
чтобы отключить ее.)
- Используя любые
less
команды, которые вам нравятся, прокрутите вверх или вниз, чтобы первая строка, которую вы хотите скопировать, была видна на экране.
- Triple-Button1 выбранной вами стартовой линии, чтобы выбрать его.
- Прокрутите вниз, пока на экране не появится последняя строка, которую вы хотите скопировать. Вы должны использовать только пробел или другие простые клавиши прокрутки, а не
/
поиск - смысл в том, less
чтобы отправить все строки на терминал, чтобы их можно было скопировать.
- Button3 на выбранной вами конечной строке, чтобы расширить выбор.
Возможная трудность: ваш буфер прокрутки может быть недостаточно большим. Это можно изменить xterm
с помощью параметра saveLines
ресурса или -sl
командной строки, но я не знаю, как это изменить в уже запущенном xterm.
Способ 2 - без мышки.
Используйте команду |
(pipe) less
для отправки текста xclip
.
Детали:
- Используя любые
less
команды, которые вам нравятся, прокрутите вверх или вниз, чтобы расположить последнюю строку, которую вы хотите скопировать, в верхней части экрана. Вы можете пропустить этот шаг и следующий шаг, если вы хотите скопировать весь путь до конца.
- Используйте команду
m
(mark), чтобы установить отметку в выбранной вами конечной позиции. Марки сами по себе являются полезной функцией, и вы должны знать их уже vi
, но на случай, если вы этого не сделаете: mxустанавливает метку, где x
может быть любая буква, и 'xвозвращает вас туда позже.
- Теперь прокрутите вверх, чтобы первая строка, которую вы хотите скопировать, находилась вверху экрана.
- Используйте команду pipe: |xкоторая вызовет запрос на ввод внешней команды. Это
x
должна быть та же самая буква, которую вы указали в m
команде, или $
«до самого конца». Типа xclip
там.
Простой случай копирования всей страницы руководства сводится к g|$xclipEnter.
Предупреждение (то есть ужасная вещь, которая только что произошла со мной ): xclip
будет полу-фоновой, работающей как часть группы less
процессов. Если вы попытаетесь приостановить работу less
, запустите другое задание на том же терминале и вставите в него, оно не будет работать. Затем, когда вы позже наметите man
/ less
job, вдруг произойдет вставка. Я думаю, что это следует считать xclip
ошибкой ...