4

В Less (терминал Linux) я могу выделить строки мышью, а затем использовать Ctrl+Shift+C для копирования в буфер обмена. Это работает только в отображаемой части терминала. Как я могу выбрать больше текста? Существуют ли какие-либо сочетания клавиш для выбора текста, такие как выделение до конца или начала или одной страницы и т.д.?

1 ответ1

3

Как правило, нет.

В частности, любые такие возможности будут зависеть от нескольких факторов.

Сам по себе less работает в терминальной среде и вообще не знает о буфере обмена.

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

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

В конкретном случае less рассмотрите возможность удаления less из уравнения полностью. Если файл не слишком большой или иным образом неуместен, чтобы просто скопировать его на терминал, просто cat его к терминалу и используйте буфер прокрутки эмулятора терминала, чтобы выбрать нужный текст. С буфером прокрутки соответствующего размера, который позволит вам скопировать весь текст, который вы хотите скопировать, за одну операцию.

Поскольку мы обнаружили, что вы действительно пытаетесь получить только часть текстового файла, вы можете использовать команду типа sed -n M,Np infile > outfile чтобы извлечь диапазон строк от M до N из файла с именем infile . Например, чтобы извлечь строки с 10 000 до 20 000, вы должны использовать sed -n 10000,20000p infile > outfile . Как я могу извлечь диапазон строк из текстового файла в Unix? есть дополнительные предложенные решения о том, как решить эту проблему.

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