Может ли Vim интерпретировать коды выхода цвета терминала?


29

Многие программы CLI выводят красиво выделенный текст. В то время как большинство из них проверяют, идет ли вывод в файл, некоторые включают управляющие коды терминала. Мне нравится вывод с кодами перехода, но просмотр этих файлов в Vim является болезненным.

Может ли Vim интерпретировать эти escape-коды в ожидаемые цвета? Если нет, можно ли в Vim игнорировать эти управляющие коды?

Ответы:


28

Существуют различные плагины, которые позволяют вам просматривать цвета ANSI через escape-коды:


Если вы хотите удалить все escape-коды, вы можете использовать:

:%s/<1b>\[[0-9;]*m//g

Примечание: <1b>это не буквальный текст, это escape-символ, используйте Ctrl+ v, Escчтобы вставить его (он также может отображаться как ^[, в зависимости от ваших displayнастроек).

Или вы можете удалить их с помощью sed; например:

$ sed 's|\x1b\[[;0-9]*m||g' somefile | vi -

0

Если у вас достаточно современный vim с функцией + Terminal, вы можете сделать это, :term cat somefileи вы получите буфер со всеми интерпретированными кодами терминала.

Это может работать лучше на больших файлах, чем, например, Colorizer, что делало мой vim необычайно медленным, когда я отпускал его на файле размером 6000 строк.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.