在80列宽的终端中,emacs包含80个列行,在第80列中添加反斜杠。有没有办法告诉emacs使用我的终端的所有80列,而不是换行直到它们达到81个字符?
答案 0 :(得分:4)
如果我正确理解这个问题,这不是逻辑线 包装(如何在文件中分割行),但关于视觉包装 (如何相对于窗口宽度显示线条。)
如果您只是希望显示可视之前包含多于零个字符 窗口边界,因此避免反斜杠无处不在,无论你的逻辑行真的多长,你都可以使用longlines-mode :
与Visual Line模式不同,长线模式会在填充列(请参阅填充命令)而不是右侧窗口边缘处断开长行。要启用长线模式,请键入M-x longlines-mode。如果文本中有长行,这也会立即“包裹”它们。
然后,只使用适当设置填充列的问题
全局设置(.emacs
,但您可能想要使用
特定情况下的特定模式挂钩),本地设置(文件
变量,dir-locals)或 C-u 79 C-u C-x
f 将变量fill-column
设置为79.这样,第79行
字符或更高的字符将包裹,但在触摸右边缘之前
80-char窗口(因此永远不会留下难看的反斜杠字符)。您的
文件将不受影响。
如果您只是希望在80个字符的行上不会出现视觉包装,因此不希望第一个下面的第80个逻辑字符可视化显示,那么有两个 可能的答案:
要么你在一个不必包装的环境中工作 逻辑上在80个字符或之前,你想要看到结束 那些81+行在屏幕的某个地方(即你确实需要视觉包装,但是在窗口宽度以上的多个字符处),那么我不知道该怎么做 它。
或者你想在逻辑上停止80行(例如你
在80)有自动填充和填充列,如果你碰巧有
81行或更多字符,你不关心看到他们的结局。
在这种情况下,请激活truncate-mode(toggle-truncate-lines
)。
如果问题与您窗口的最后一个字符有关,而您真正想要的是您的第80个逻辑字符在窗口的第80个视觉角色上显示,不过,我恐怕不知道怎么回事。要么是截断线(如上所示),窗口的最后一个字符是$,要么是emacs do its thing,最后一个字符是反斜杠。
注意在测试自动填充的包装时(以及longlines-mode的,因为它是它的视觉等效物)将仅在字边界处发生。
答案 1 :(得分:2)
一种选择是将包装设置为81,而不是80.
M-x set-fill-column RET 81
另一种选择,也许是最好的选择,是将变量overflow-newline-into-fringe定义为t。手动尝试一次:
M-x set-variable RET overflow-newline-into-fringe RET t
默认情况下可以设置其中任何一个。您可以通过M-x customize
或编辑.emacs文件来执行此操作。如果您需要帮助,请再次发帖。
顺便说一句,您是否在图形或终端环境中使用emacs?在图形环境中,如果我有长行,我通常会把窗口放大。或者我可以用水平滚动条打开行截断。
正如您所发现的,添加的信息表明您正在终端模式下运行emacs,这些选项都不起作用。我尝试了一个在putty中运行emacs的示例,我可以在其中更改窗口的大小,emacs会选择它。所以,我可以调整到81列,我的80列线保持完整,没有延续。我不确定您使用tmux分配了哪个TERM值,但您可以考虑创建支持81列的自定义终端类型(termcap或terminfo)。我只是简单地看了一下tmux,但我注意到你可以调整终端内的窗格。
现在,出于好奇,使用tmux的主要动力是什么?我认为恢复能力很有价值。然而,我会发现,其他功能并不是那么有用,因为在X-Window环境中它便宜而且价格低廉。容易打开更多的终端或如果我使用腻子,我可以创造更多这些。至于使用emacs,无论我是在X-Window还是MS-Windows下运行,我只需要创建尽可能多的帧,并且可以很容易地使用它。那么,是否有其他东西让你对使用tmux感兴趣?
答案 2 :(得分:0)
我认为这通常不可能,因为emacs至少需要一个字符来表示该行继续在下一行(换行),虽然我不确定,因为emacs有很多选项..你也许可以在“选项”菜单(或键盘)中选择“自动换行(视线模式)”:
M-x 视线模式 RET
这使得流程更自然,没有显示(至少在文本模式中)包装的指示。
答案 3 :(得分:0)
在之前的答案和解决方法之后的六年,我仍然使用的是使用81个字符宽的窗口。
不幸的是,80宽的窗户正确地包裹着#39;由于邪恶的边缘人物,这是不可能的。 Emacs要求最后一个(边缘)字符独占使用最后一列。对此的论证是一个可选的边缘字符是模棱两可的。我梦想有一天会有人提交一个补丁来使边缘角色成为可选的,并且可能用背景色来解决模糊性。