如何停止终端自动换行

有没有办法告诉终端不要换行长行。我希望在同一空间中看到一行,而不是换到下一行。我不在乎是否能看到行的结尾,只要行保持在一行即可。水平滚动也可以解决这个问题,但目前我只需要取消换行。

相关 https://unix.stackexchange.com/questions/20493/how-to-disable-line-wrap-in-a-terminal - Ciro Santilli OurBigBook.com
3个回答

这取决于你使用的应用程序。
如果你正在使用less查看文件或命令输出,通过传递-S选项(也称为--chop-long-lines),输出将被截断而不是换行到新行。你可以使用水平箭头键查看剩余的内容。
对于非全屏通用应用程序,你可以通过向终端发送适当的转义序列来关闭换行:
tput rmam

这种模式可以通过类似的逃逸方式取消。
tput smam

在这里可以找到有关调整其他几个命令行工具行为的详细信息:

http://tomayko.com/writings/StupidShellTricks


虽然我没想到会有这样的链接改变行为,但还是很不错。+1。 - Luis Alvarado
9非常有趣。我尝试在gnome终端上使用这个方法,它有点儿起作用,但也导致输出被截断了。我更希望终端可以“假装”拥有无限的行宽,这样它就可以一直写下去,然后我可以通过调整终端窗口的大小或滚动来回顾查看剩余的内容。这种可能吗? - wim
当创建一个新的bash/sh时,这个是否会自动重置?比如说,这是持久的还是非持久的? - ThorSummoner
这是终端的运行时配置,而不是用户配置。因此,它不会在新的终端实例中保留,但如果行为没有重置,它应该会传递给在终端中运行的新事物。 - James Henstridge
@JamesHenstridge 有没有办法启用自动换行?我不喜欢左右移动来阅读一行文本的剩余部分。 - Shayan
在我的情况下,我不想换行,因为查看包含大量水平数据的 CSV 文件时非常烦人,以至于我愿意截断数据,只为了能够在单行上看到一些数据。我的两个解决方案是:
  1. 只查看部分列
cat myfile.csv | awk '{ FS=","; print $1,$2,$3 }'
  1. 不截断任何内容,只需使用 less 命令,然后可以通过左右箭头进行水平滚动!
cat myfile.csv | less注意:当一个字段很长时,less 命令的表现会有些奇怪。
- yosefrow

要在终端中更普遍地禁用自动换行,您可以使用以下命令: ``` setterm -linewrap off ```

不考虑包装的问题,你可以在终端中缩小/放大来一次性查看所需的所有内容。
对我来说是:
  • Ctrl+Shift++ - 放大
  • Ctrl+- - 缩小
希望这能帮到你。