Например, для команды ls --color
отображаются красочные результаты при выполнении в оболочке. Однако, когда я звоню :!ls --color
в vim, вся информация о цветах исчезает.
Что мне нужно сделать, чтобы сохранить цвет при вызове внешней команды внутри vim?
EDIT: Для того, чтобы прояснить мой вопрос , это вопрос о VIM сам, я НЕ фактически спрашивать , как включить «LS» 's цвета. Что я хочу знать, так это то, как включить отображение разноцветных результатов ВСЕХ команд оболочки (если они дают разноцветные результаты).
Ответы:
CLI Vim или GUI Vim?
Вы не можете отобразить вывод команды
:!ls
или:!ls --color
любой другой внешней команды в самом CLI Vim, потому что она однопоточная: Vim приостановлен и$ ls --color
выполняется в вашей оболочке. Обойти это невозможно. Ну, вы можете поместить вывод внешних команд в текущий буфер, но это не одно и то же.В графическом интерфейсе Vim вы можете получить только псевдооболочку, которая совершенно не отображает цвета. Обойти это тоже невозможно.
Если вам отчаянно нужен цветной вывод от внешних команд, вам нужно запустить эмулятор внешнего терминала с чем-то вроде
:!xterm &
или использовать плагин, такой как Conque Shell .источник
Вы можете
:set shellcmdflag=-ic
заставить оболочку вести себя интерактивно, как ваша командная строка.источник
Вы можете сделать функцию в
.bashrc
:источник