消除终端中环绕行的尾随空格

Pau*_*cas 5 terminal

在某些终端会话中,会在长行环绕的位置插入一个空格。用鼠标复制多行时,每行插入的尾随空格都包括在内。粘贴时,必须手动删除这些多余的空格。

是否有一些终端设置可以防止为长的、环绕的文本行插入这些额外的空格?

如果重要的话,我目前在 Mac OS X 上使用 iTerm,但问题的发生取决于我 ssh 进入的机器。

Tho*_*key 0

这听起来像是 iTerm2 的 vim VT100 换行解决方法中的一个错误。

这听起来可能有点绕,但这里有一个解释:

  • 终端模拟器将您选择的文本存储为行,并且出于实际目的,不要换行这些行。
  • 大多数终端仿真器都做了特殊规定,允许您选择环绕右边距的文本,就好像它是一个长字符串一样。他们通过检测围绕边缘书写(和环绕)的一系列打印字符来实现这一点。
  • VT100 换行存在一个特殊问题,因为当光标位于右边距时,终端会忽略(非打印)控制字符(例如回车符)。将其视为抑制不必要的空行的一种方法。
  • 使用光标寻址的程序(例如文本编辑器)不一定会以某种方式编写您所看到的换行文本,以使终端其视为换行。可能会有间隙。
  • vim 是一个例外,它使用一种特殊情况来填充该空白,方法是编写一个虚拟字符,使换行发生,然后将光标寻址到下一行 - 并覆盖虚拟字符。

终端仿真器必须跟踪此提示并建立一个长的换行。iTerm2 有一个可能相关的错误报告(并且在这个问题之前几个月被关闭):