vim:显示列表字符会更改屏幕环绕

发布于 2024-08-25 06:01:30 字数 242 浏览 8 评论 0原文

我注意到,当我在文本中显示 EOL 列表字符时,换行符会丢失

 this is my text of this 
 message

在设置列表后变为 ..eol

 this is my text of this mess
 age(EOL CHAR)

我希望看到 EOL 字符而不破坏窗口边框处的单词。 这可能吗?

I noted that when I show up the EOL listchars in a text the linebreaks are losen

p.e.

 this is my text of this 
 message

becomes after set list ..eol

 this is my text of this mess
 age(EOL CHAR)

I would like to see the EOL characters without breaking the words at window border.
Is that possible?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

离旧人 2024-09-01 06:01:30

不幸的是,这听起来像是 Vim 的记录限制。来自 linebreak 的文档(导致每个字换行而不是每个字符的选项):

当“wrap”选项关闭或“list”打开时,不使用此选项。

替代解决方案:突出显示行尾。简单的一次性方法就是搜索它们 (/$)。除此之外,您还可以使用突出显示:

:highlight endofline ctermbg=Green
:match endofline /$/

这将为您的 EOL 提供绿色背景。有关如何指定突出显示的更多信息,请参阅 :helphighlight-args

原始答案

这不是OP的实际问题,但有时可能会发生,所以我将其留在这里供其他人搜索时找到。

来自 'list' 的帮助:

请注意,当“cpoptions”包含“L”时,列表模式也会影响格式设置(使用“textwidth”或“wrapmargin”设置)。请参阅“listchars”以更改选项卡的显示方式。

来自 'cpoptions' 的帮助:

L    设置 'list' 选项时,'wrapmargin'、'textwidth'、'softtabstop' 和虚拟替换模式(参见 |gR|)将 a 计为两个字符,而不是正常的的行为。

'cpoptions' 与 vi 兼容性有关 - 您是否将 vim 作为 vi 启动?或者你是
手动设置任何这些标志?检查 echo &cpoptions 的输出,确保以 vim 启动,如果它仍然设置(不知道为什么会这样),您可以取消设置该标志 (<代码>设置 cpoptions-=L)。

当然,请确保 wrapwrapmarginlinebreaktextwidth 的设置是您想要的。

Unfortunately it sounds like this is a documented limitation of Vim. From the documentation of linebreak (the option which causes per-word line breaks instead of per-character):

This option is not used when the 'wrap' option is off or 'list' is on.

Alternate solution: highlight end-of-lines. The simple one-time way would be to just search for them (/$). Beyond that, you can use highlighting:

:highlight endofline ctermbg=Green
:match endofline /$/

That'll give your EOLs green backgrounds. See :help highlight-args for more on how you can specify the highlight.

Original answer

This is not the OP's actual problem, but could sometimes happen, so I'll leave it here for others to find when they search.

From the help on 'list':

Note that list mode will also affect formatting (set with 'textwidth' or 'wrapmargin') when 'cpoptions' includes 'L'. See 'listchars' for changing the way tabs are displayed.

From the help on 'cpoptions':

L    When the 'list' option is set, 'wrapmargin', 'textwidth', 'softtabstop' and Virtual Replace mode (see |gR|) count a as two characters, instead of the normal behavior of a .

'cpoptions' is all about vi-compatibility - are you launching vim as vi? Or are you
manually setting any of those flags? Check the output of echo &cpoptions, be sure to launch as vim, and if it's still set (no idea why it would be) you can unset the flag (set cpoptions-=L).

And of course, make sure that the settings for wrap, wrapmargin, linebreak, and textwidth are what you want.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文