如何使Vim显示颜色代码所指示的颜色?


59

简而言之,我正在努力lessvimvimpager)代替。我有一些脚本设置,可以在任何可能的情况下吐出颜色(以及粗体,一切都很好)。less了解颜色代码并很好地显示它们。我vim该如何解析代码并以这种方式显示颜色/粗体less

Answers:


44

两个答案:

一个简短的例子:您想使用vim脚本AnsiEsc.vim。它将隐藏文件中的实际ANSI转义序列,并使用语法突出显示为文本适当地着色。在寻呼机中使用它的问题是,您将必须让vim识别何时使用它。我不确定是否可以始终加载它,或者它是否会与其他语法文件冲突。您将不得不尝试一下。

很长的答案:最好的希望是部分非便携式解决方案。更少的人实际上不了解终端转义序列,因为它们很大程度上取决于终端,但是更少的人可以识别这些(子集),并且如果您使用-r(或-R) 选项。终端将解释转义序列并更改文本的属性(颜色,粗体,下划线...)。Vim是编辑器而不是寻呼机,不会简单地将原始控制字符传递给终端。它需要以某种方式显示它们,因此您实际上可以对其进行编辑。您可以使用vim的其他功能,例如隐藏和语法高亮来隐藏序列,并使用它们来设置文本的颜色,但是,它将始终仅处理终端序列的一个子集,并且可能在某些终端上不起作用。

实际上,这只是尝试将文本编辑器用作寻呼机时遇到的许多问题之一。


简而言之,您必须在Vim中编写终端仿真器的一部分,该部分处理输入中存在的终端转义序列。
Gilles

谢谢,我想我要放弃了。如果这不容易,那就不再有意义了。
phunehehe

1
@JanHlavacek链接已损坏:(
Nitrodist

19
@Nitrodist: less -r FILE
的Adobe


2

现在使用vim 8,您可以使用终端模式:terminal,然后在该终端中cat myfile使用Ctrl-w N返回正常模式。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.