emacs 中的术语 :: 如何关闭“自动换行”

Posted

技术标签:

【中文标题】emacs 中的术语 :: 如何关闭“自动换行”【英文标题】:term inside emacs:: how to turn "word wrap" off 【发布时间】:2010-10-09 22:41:26 【问题描述】:

在设置我的个人 Linux 命令行开发环境时,我想在 emacs b/c 中使用 term,然后我可以切换到“行模式”并将输出复制/粘贴到任何其他缓冲区。

但是,当我在 emacs 中的 term 内运行 mysql 时,漂亮的 sql 表仍然会根据 emacs 窗口的宽度自动换行 :(。我希望 emacs 会截断 bash 输出。

有没有办法做到这一点?

编辑:

toggle-truncate-lines 已打开,因此“自动换行”已关闭,但问题是在 emacs 甚至对文本进行任何操作之前,底层 bash 进程本身会手动添加换行符以根据它被告知的宽度换行文本它正在使用。至少它是这样的。在 term 缓冲区中切换截断行对我来说没有任何改变

【问题讨论】:

【参考方案1】:

我认为您可能想要的是“M-x toggle-truncate-lines”。这会在换行或要求您左右滚动以查看整行之间切换。

【讨论】:

这实际上是一个比接受的答案更好的答案。【参考方案2】:

你可能想在 sql 钩子中添加一些东西来关闭包装:

(add-hook 'sql-interactive-mode-hook '(lambda () (toggle-truncate-lines 1))

【讨论】:

【参考方案3】:

我认为 Emacs 可能会设置 COLUMNS 环境变量来指示 shell 何时应该换行。尝试将其设置为一个非常大的值,看看是否有帮助。

我不知道这会破坏什么其他东西。

【讨论】:

【参考方案4】:
Meta-X auto-fill-mode

这将切换自动填充模式并停止换行。

【讨论】:

【参考方案5】:

函数term--unwrap-visible-long-linesterm-reset-size 调用,只要调整窗口大小并且似乎负责不需要的换行,并且不可配置。我通过建议函数将包装宽度固定为一个较大的值来解决这个问题。

(defun my-prevent-term-unwrap (original-function height width)
  (apply original-function (list height 10000)))

(advice-add 'term-reset-size :around 'my-prevent-term-unwrap) 

【讨论】:

以上是关于emacs 中的术语 :: 如何关闭“自动换行”的主要内容,如果未能解决你的问题,请参考以下文章

在新的 Emacs 24.3 中调整术语面

Emacs术语模式:通过双击鼠标选择单词

如何在 Visual Studio 中切换自动换行?

CSS如何设置自适应宽度自动换行

关闭 Emacs 中除当前缓冲区之外的所有缓冲区

这样一个循环自栏目标签,如何实现3个td自动换行呢?求救!!