我可以使用鼠标在 less 中正确选择文本吗?

Spa*_*awk 9 less terminal

我刚刚发现我可以将以下几行添加到~/.vimrc.

set mouse=a
:vmap <C-C> "+y
Run Code Online (Sandbox Code Playgroud)

这具有能够使用鼠标选择文本(即在可视模式下)的效果,然后使用Ctrl+将实际文本复制到 X 剪贴板c。这与终端的默认副本不同,因为它是我正在复制的真实文本,而不是终端看到的。例如,如果文本中有制表符,那么以前我会将它们复制为空格。

有没有办法让 less 以同样的方式表现?即我可以逐字复制我正在查看的文本文件中的内容吗?

Vol*_*gel 5

不是少花钱的任务

不,
我不认为你可以直接做到这一点,因为 less 没有一个游标开始。
它需要一个导航到要选择的文本的开头和结尾。
less只是不是字符级导航的正确工具。

标签已经展开

您可以使用按键shift和鼠标进行选择;这是由终端处理的,而不是更少。但是终端不知道空格和制表符是如何排列的 - 内部制表符的解释更少,并且只将正常的“ ”字符写入屏幕。

有像screen,tmux 和 之类的工具byobu,它们可以在这方面做很多令人印象深刻的事情。我没有检查,但我认为这些终端多路复用器没有办法解决这个问题——最终是终端——并且表现相同。

使用 vim

如果您在显示一个文件less,有一个很好的解决方案:
按键vless中打开当前文件vim- asuming你$EDITOR等设置的vim

尽管有解决方法,但从管道左右显示 stdin 时,这不起作用。

鼠标滚动,至少

但你至少可以用鼠标滚轮滚动:

这似乎甚至默认启用,但鼠标滚轮事件被不同的选项抑制。

要进行快速测试,请尝试:

LESS=-r man less
Run Code Online (Sandbox Code Playgroud)

选项-X( --no-init) 阻止滚动 - 检查您的环境变量LESS包含的内容:

$ echo $LESS
Run Code Online (Sandbox Code Playgroud)

根据SU 的说法,选项-q( --quiet, --silent) 也会引起麻烦:How to make mouse wheel scroll the less pager using bash and gnome-terminal?

  • 此外,还有一个叫做“vimpager”的寻呼机,你可以用它来代替“less”批发。它实际上只是使用包裹在一个小脚本中的 `vim`。 (2认同)