消除终端中换行上的尾随空格

消除终端中换行上的尾随空格

在某些终端会话中,长行换行处会插入空格。使用鼠标复制多行时,每行上插入的尾随空格都会包含在内。粘贴时,必须手动删除这些多余的空格。

是否有一些终端设置可以防止在长的换行文本中插入这些额外的空格?

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

答案1

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

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

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

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

相关内容