題 Vim的語法顏色突出顯示從命令行中丟失


如果我執行以下命令 從內部 一個 vim 正在訪問代碼文件的會話,生成的硬拷貝會突出顯示語法 彩色

:syntax on
:hardcopy >/path/to/hardcopy.ps

但是如果我從命令行(Unix shell)嘗試相同的命令序列,那麼得到的硬拷貝就是 沒有顏色 - 突出顯示(我在白色背景上只有黑色文字,有時是粗體或下劃線等):

% vim -c ':syntax on' -c ':hardcopy >/path/to/hardcopy.ps' -c quit /path/to/original

關於如何解決這個問題的任何想法?


3
2017-12-17 23:37


起源




答案:


我懷疑這裡可能存在的問題是Vim的著色是一種與顯示代碼集成的黑客。請注意,例如,當您在大文件中跳轉時,有時著色將是錯誤的,因為Vim嘗試在應用其分層“區域”模式匹配時不處理整個文件。此外,如果您的終端不支持顏色,則Vim不會打印顏色或生成彩色HTML,即使這些目的地與終端無關。

我曾試圖將Vim變成後端,以便在CGIT下進行動態語法高亮顯示,以查看GIT存儲庫中的文件。我嘗試了很多黑客試圖讓Vim以批處理模式生成輸出,但最後我放棄了。

但我沒有嘗試使用類似的實用工具 expect。使用腳本編寫Vim腳本 expect 如果你也對它撒謊,並且告訴它它正在與顏色Xterm交談,那麼它可能會起作用。


1
2018-04-02 08:02





我發現了環境變量 TERM 對使用的PS輸出顏色有影響。

你可以試試這個:

TERM=xterm-256color vim '+hardcopy >out.ps' +q src_file

0
2018-02-25 10:53