Vim可以将这些转义码解释为预期的颜色吗?如果不是,可以将Vim设置为忽略这些转义码吗?
#1 楼
有多种插件可让您通过转义码查看ANSI颜色:AnsiEsc.vim –
:AnsiEsc
。Colorizer –
:ColorToggle
。如果要删除所有转义代码,可以使用:
:%s/<1b>\[[0-9;]*m//g
注意:
<1b>
不是文字,它是转义字符,请使用Ctrl + v后跟Esc插入它(它可能也显示为^[
,具体取决于您的display
设置)。也可以使用
sed
将其删除;例如:$ sed 's|\x1b\[[;0-9]*m||g' somefile | vi -
#2 楼
如果您有一个具有+ terminal功能的足够现代的vim,则可以执行:term cat somefile
,并且您将获得一个带有解释了所有终端代码的缓冲区。在大型文件上,例如着色器,当我将它释放在6000行的文件中时,这会使我的vim变得异常缓慢。
评论
注意:默认情况下,终端缓冲区是不可修改的,任何修改都会使颜色消失。
– preferred_anon
20 Mar 5 '20 at 17:22
#3 楼
在上一个答案的基础上,使用此bash函数,您可以打开vim,并在以后的新窗口中以彩色而不是代码显示所需的文件(取决于$ 1的大小)。ansivim ()
{
vim -c ":term ++hidden ++open cat "
}
例如
ansivim build.log
评论
欢迎来到Vi和Vim!
– D. Ben Knoble♦
20年1月28日在14:24
drkicknrush,有没有办法用stdin做到这一点?我不确定发生了什么,只能使它与实际文件一起使用。谢谢!
– marinara
20年8月14日在1:28
嗨@marinara,那也是我想要的东西:-)但我无法使它正常工作,对不起...
– drkicknrush
20年8月20日在11:58
评论
您也可以在vim的正则表达式和vimscript字符串中使用\ e,而不用键入
–横行
20-2-7在18:31