我使用自定义样式运行 fish(在 gnome-terminal 中),它为我提供了有关当前 Git 存储库的信息:
这一切都很好,但是当我想复制粘贴一些命令及其输出时,如下所示:
我想得到_
$ du -sh .
1012K .
代替
$ du -sh . 0⚹ 0↺ 0? 0≡ ? master
1012K .
另一个用例是从启用行号的 vim 之类的编辑器进行复制——这是背后的一大痛点。
有什么方法可以防止在终端中选择/复制某些字符?
FWIW,我知道某些样式将插入符号移至下一行:
<gutter left> <gutter right>
$ <caret>
虽然是一种功能性的解决方法,但这不是我想要的。
不,这对于命令及其输出是不可能的。终端模拟器复制屏幕上的任何内容。您需要分两步进行复制粘贴:一次用于命令,一次用于输出。终端可以通过允许选择不连续的文本区域来使其更容易,就像 Firefox 在 Ctrl+单击时所做的那样,但我不知道有任何终端实现了这一点。
至于文本编辑器和行号,只要是复制文本的终端模拟器,这仍然是不可能的。但是,在这里使用编辑器本身的复制功能(通过键盘或鼠标)可能更有意义。编辑器不仅可以跳过行号,还可以包括在右边距被切掉的部分文本,保留TAB字符,保留其他不可打印的控制字符等。