Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/gwt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
阻止emacs在一个80列终端中包装80列行?_Emacs_Terminal_Line_Word Wrap - Fatal编程技术网

阻止emacs在一个80列终端中包装80列行?

阻止emacs在一个80列终端中包装80列行?,emacs,terminal,line,word-wrap,Emacs,Terminal,Line,Word Wrap,在一个80列宽的终端中,emacs包裹了80列行,在第80列中放了一个反斜杠。有没有办法告诉emacs使用我终端的所有80列,在它们达到81个字符之前不要换行?我认为这在一般情况下是不可行的,因为emacs至少需要一个字符来指示行在下一行继续(换行),尽管我不确定,因为emacs有很多选项。。。您可以在“选项”菜单(或键盘)中选择“换行(可视行模式)”: M-x可视线调制解调器 这使得流程更加自然,不会显示(至少在文本模式下)换行指示。如果我正确理解这个问题,这与逻辑线无关 换行(如何在文件中分

在一个80列宽的终端中,emacs包裹了80列行,在第80列中放了一个反斜杠。有没有办法告诉emacs使用我终端的所有80列,在它们达到81个字符之前不要换行?

我认为这在一般情况下是不可行的,因为emacs至少需要一个字符来指示行在下一行继续(换行),尽管我不确定,因为emacs有很多选项。。。您可以在“选项”菜单(或键盘)中选择“换行(可视行模式)”:

M-x可视线调制解调器


这使得流程更加自然,不会显示(至少在文本模式下)换行指示。

如果我正确理解这个问题,这与逻辑线无关 换行(如何在文件中分割行),但关于视觉换行 (线条相对于窗口宽度的显示方式)

  • 如果您只想在显示之前直观地换行超过零个字符 窗口边界,因此避免在任何地方使用反斜杠,无论您的逻辑行实际有多长,都可以使用 :

    与视觉线条模式不同,长线模式在填充列(请参见填充命令)而不是窗口右边缘打断长线。要启用长线模式,请键入M-x长线模式。如果文本中充满了长行,这也会立即“包装”它们

    然后,只需使用 全局设置(
    .emacs
    ),但您可能希望使用 特定模式(适用于特定情况),本地设置(文件 变量,dir局部变量)或C-u 79 C-uC-x f将变量
    填充列
    设置为79。这边,第79行
    字符或更高的字符将自动换行,但在接触字符的右边缘之前
    80字符窗口(因此永远不会留下难看的反斜杠字符)。你的
    文件将保持不变

  • 如果您只是不希望在80个字符行上出现可视换行,因此不希望第80个逻辑字符显示在第一个逻辑字符下面,那么有两个 可能的答案:

    • 要么你在一个不需要包装的环境中工作 逻辑上在80个字符或之前,并且您希望看到 屏幕上的81+行(即,您确实需要视觉环绕,但在窗口宽度上方有许多字符),那么我不知道该怎么做 它

    • 或者,您希望在逻辑上将行停止在80个字符(例如,您 有自动填充和填充列在80),如果你碰巧有 行81个字符或更多,你不在乎看到他们的结局。 在这种情况下,激活(
      切换截断行

  • 如果问题是关于窗口的最后一个字符,而您真正想要的是在窗口的第80个可视字符上显示行的第80个逻辑字符,那么,恐怕我不知道如何显示。要么截断行(如上所述),窗口的最后一个字符将是$,要么让,最后一个字符将是反斜杠


请注意,在测试时,自动填充的换行(也包括长线模式,因为它是其视觉等价物)将仅出现在单词边界处。

一个选项是将换行设置为81,而不是80

M-x set-fill-column RET 81
另一种选择,也许是最好的选择,是将变量溢出换行符定义为t。手动尝试此操作一次:

M-x set-variable RET overflow-newline-into-fringe RET t
默认情况下,可以设置这两个选项中的任何一个。您可以通过
M-x customize
或编辑.emacs文件来实现这一点。如果需要帮助,请再次发布

顺便问一下,您是在图形环境还是终端环境中使用emacs?在图形环境中,如果我有长线,我通常只会将窗口变大。或者我可以用水平滚动条打开行截断


后来添加 添加了以终端模式运行emacs的信息后,您发现这些选项都不起作用。我尝试了一个在putty中运行emacs的例子,在这里我可以更改窗口的大小,emacs会立即选择它。因此,我可以将大小调整为81列,并且我的80列行在不继续的情况下保持不变。我不确定您用TMUX分配了哪一个术语值,但是您可以考虑创建支持81列的自定义终端类型(TelMCAP或TeNFO)。我只看了tmux一眼,但我注意到可以在终端内调整窗格的大小


现在,出于好奇,您使用tmux的主要动机是什么?我认为简历的能力是很有价值的。然而,我会发现其他功能并没有那么有用,因为在X-Window环境中,打开更多的终端非常便宜和容易,或者如果我使用putty,我可以创建更多的终端。至于使用emacs,无论我是在X-Window还是MS-Windows下运行,我只需要创建任意数量的帧,并且可以非常轻松地使用它。那么,还有什么让你对使用tmux感兴趣的吗?

在前面的回答六年后,我仍然使用的解决方法是使用81个字符宽的窗口


不幸的是,由于邪恶的边缘角色,80个宽窗口无法“正确”包裹。Emacs要求最后一个(边缘)字符独占使用最后一列。这是一个可选的边缘字符,其参数不明确。我梦想有一天,有人会提交一个补丁,使边缘字符成为可选的,也许会用背景色解决模糊性。

set fill column没有我想要的效果。它控制M-q的行为,而不是窗口的可视环绕行为。将换行符溢出到边缘听起来像是我想要的,但在终端中运行时似乎没有任何效果,这就是我运行emacs(利用tmux)的方式。我使用tmux,以便通过ssh连接到我在本地计算机上打开的同一组终端