Я только что обнаружил, что могу добавить следующие строки ~/.vimrc
.
set mouse=a
:vmap <C-C> "+y
Это дает возможность выделять текст с помощью мыши (то есть в визуальном режиме), а затем копировать фактический текст в буфер обмена X с помощью Ctrl+ c. Это отличается от копии по умолчанию с терминала, поскольку я копирую настоящий текст, а не то, что видит терминал. Например, если в тексте есть вкладки, то раньше я копировал их как пробелы.
Есть ли способ заставить меньше вести себя так же? то есть я могу скопировать дословно то, что находится в текстовом файле, который я просматриваю меньше?
Ответы:
Не задача для меньших
Нет,
я не думаю, что вы можете сделать это напрямую, потому что у less нет курсора для начала.
Нужно было бы перейти к началу и концу текста для выбора.
less
просто не правильный инструмент для навигации на уровне персонажа.Вкладки уже развернуты
Вы можете использовать клавишу shiftи мышь, чтобы сделать выбор; Это обрабатывается терминалом, а не меньшим. Но терминал не знает, как расположены пробелы и вкладки, - меньше интерпретирует вкладки внутри и записывает только нормальные "
" символы на экран.
Есть такие инструменты, как
screen
,tmux
иbyobu
, которые могут сделать много впечатляющих вещей в этой области. Я не проверял, но я предполагаю, что эти терминальные мультиплексоры не могут обойти это - будучи терминалами, в конце концов - и будут вести себя одинаково.Используйте Vim
Если вы показываете файл
less
, есть хорошее решение:Нажмите клавишу vв ,
less
чтобы открыть текущий файл вvim
- asuming ваши и$EDITOR
т.д. настроена наvim
.Это не работает при показе stdin из конвейера или около того, хотя есть обходные пути .
Прокрутка мышью, по крайней мере
Но вы можете хотя бы прокрутить колесо мыши:
Похоже, это даже включено по умолчанию, но события колесика мыши подавляются другой опцией.
Для быстрого теста попробуйте:
Опция
-X
(--no-init
) блокирует прокрутку - проверьте, чтоLESS
содержит ваша переменная окружения :Опция
-q
(--quiet
,--silent
) также вызывает проблемы, в соответствии с SU: как сделать так, чтобы колесо мыши прокручивало меньше пейджеров, используя bash и gnome-терминал?источник
v
Ключ является фантастическим! (Я взял на себя смелый обходной путь, чтобы он работал и в конвейерах.) FWIW в моем терминальном эмуляторе (терминаторе) Мне не нужно удерживать shift, когда я выбираю текст.vimpager
который вы можете использовать дляless
полной продажи. На самом деле он использует толькоvim
завернутый в небольшой скрипт.vimpager
выглядит довольно круто, но у меня были проблемы с рывками , из-за которых я предпочитаю использовать меньше иv
.vimpager
пока он не заработает; (Я стараюсь не активировать все моиvim
плагины при запускеvimpager
...)Вы можете скопировать верхнюю строку, отображаемую в
less
выделенную панель X11, набравless
:Это направляет меньший буфер от верхней строки к
.
метке (таким образом, фактически весь контент экрана) кhead -n1|xclip -sel c
команде (чтобы сохранить первую строку этого в выборе CLIPBOARD)Вы можете настроить свой эмулятор терминала так, чтобы он вставлял эту строку при нажатии клавиши или связывал ее с клавишей или комбинацией
less
клавиш в привязках клавиш. Например, чтобы связать это с Alt+C:Однако обратите внимание, что Enterпосле этого вы нажмете , чтобы подтвердить приглашение «| done (нажмите RETURN)».
С помощью
xterm
, вы также можете определить новый режим выделения, например, здесь, удерживая Ctrl+Altпри расширении выделения, которое сообщает,less
какие строки копировать с его текущего экрана:Напишите
lesspaste
скрипт как:И определите таблицы перевода xterm (здесь, в командной строке для тестирования, но вы захотите добавить это в файл ресурсов X):
Затем вы пометите строки для вставки, перетаскивая мышь с Ctrl+Altудержанным, и после отпускания кнопки 1, xterm скажет меньше, чтобы передать текущий экран нашему
lesspaste
скрипту с начальными и конечными координатами, переданными в качестве одного аргумента (y1;x1 y2;x2
).(обратите внимание, что он может не работать должным образом, если
less
вызывается с помощью-s
сжатия пустых строк (как это обычно происходит при вызовеman
), поскольку вход, на который подается подачаlesspaste
, не будет сжимать пустые строки (поэтому смещения номеров строк могут быть неправильными)) ,источник
less
должна дать какой - либо обратной связи?j
кажется, ничего не делает для меня.less
,j
прокрутка вниз на одну строку (forw-line
) в привязке клавиш по умолчанию (на самом делеJ
(forw-line-force
здесь будет лучше, я отредактирую).|
должен дать вам обратную связь. (запрос на отметку, а затем команду для ввода).j
ничего не сделал. Первый вариант теперь работает (+1). Второй вариант кажется довольно сложным с несколькими оговорками, поэтому я не пробовал. Я думаю, чтоv
это достаточно хорошо для меня.