У мене є пара недосконалих, але, можливо, корисних ідей.
Спосіб 1 - мишо.
Використовуйте смугу прокрутки терміналів.
Деталі (якщо припустити xterm
; для інших терміналів будуть потрібні коригування.)
- Увімкніть смугу прокрутки, якщо її ще немає. (В
xterm
, це в меню, яке ви отримуєте за допомогою Ctrl + Button2.)
- Переконайтеся, що параметр
less
не працює з цією -c
опцією (у мене ввімкнено цю опцію в моїй LESS
змінній оточення, але це заважає тому, що ми збираємось робити, тому мені потрібно набрати текст, -c
щоб вимкнути її.)
- Використовуючи будь-які
less
команди, які вам подобаються, прокрутіть вгору або вниз, щоб перший рядок, який ви хочете скопіювати, був видно на екрані.
- потрійний Button1 ваш вибраний початковий рядок, щоб вибрати його.
- Прокрутіть вниз, поки на екрані не буде показаний останній рядок, який потрібно скопіювати. Ви повинні використовувати лише пробіл або інші прості клавіші прокрутки, а не
/
пошук - справа тут у тому, less
щоб надіслати всі рядки до терміналу, щоб вони могли бути скопійовані.
- Кнопка3 у вибраному вам кінцевому рядку, щоб розширити вибір.
Можливі труднощі: ваш буфер прокрутки може бути недостатньо великим. Це можна змінити за xterm
допомогою параметра saveLines
ресурсу чи -sl
командного рядка, але я не знаю способу змінити його у вже запущеному xterm.
Спосіб 2 - не миші.
Використовуйте команду |
(pipe) less
для надсилання тексту до xclip
.
Деталі:
- Використовуючи будь-які
less
команди, які вам подобаються, прокрутіть вгору або вниз, щоб розташувати останній рядок, який ви хочете скопіювати, у верхній частині екрана. Ви можете пропустити цей крок і наступний крок, якщо хочете скопіювати його до кінця.
- За допомогою команди
m
(mark) встановіть позначку у вибраному вами кінцевому положенні. Познаки є корисною особливістю самі по собі, і ви повинні їх знати вже з vi
, але на випадок, якщо цього не зробите: mxвстановлює позначку, де x
може бути будь-яка літера, і 'xповертає вас туди пізніше.
- Тепер прокрутіть вгору, щоб перший рядок, який ви хочете скопіювати, був у верхній частині екрана.
- Скористайтеся командою pipe: |xяка відобразить підказку для введення зовнішньої команди. Це
x
має бути та сама буква-позначка, яку ви використовували в m
команді, або $
"до кінця". Введіть xclip
там.
Простий випадок копіювання всієї сторінки man доводиться до g|$xclipEnter.
Попередження (тобто жахливе, що зі мною щойно трапилось ): xclip
буде напівфабрикатом, працюватиме як частина групи less
процесів. Якщо ви спробуєте призупинити роботу less
, запустіть іншу роботу на цьому ж терміналі, і вставте її, вона не вийде. Тоді, коли пізніше ви виберете man
/ less
роботу, раптом вставить пасту. Я думаю, це слід вважати xclip
помилкою ...