Na przykład dla polecenia ls --color
wyświetla kolorowe wyniki podczas wykonywania w powłoce. Jednak gdy :!ls --color
wywołam vim, wszystkie informacje o kolorze zniknęły.
Co powinienem zrobić, aby zachować kolor podczas wywoływania zewnętrznego polecenia wewnątrz vima?
EDYCJA: Aby wyjaśnić moje pytanie , jest to pytanie dotyczące samego VIM , tak naprawdę NIE pytam, jak włączyć kolor „ls”. Chcę przede wszystkim wiedzieć, jak włączyć wyświetlanie kolorowych wyników WSZYSTKICH poleceń powłoki (o ile mają one kolorowe wyniki).
Odpowiedzi:
CLI Vim czy GUI Vim?
Nie można pokazać wyjście
:!ls
lub:!ls --color
lub innego polecenia zewnętrznego w samej CLI Vima bo to pojedynczy gwintowany: Vim jest zawieszony i$ ls --color
jest wykonywany w swojej skorupie. Nie można tego obejść. Cóż, możesz umieścić wyjście poleceń zewnętrznych w bieżącym buforze, ale to nie to samo.W GUI Vim można uzyskać tylko pseudo-powłokę, która całkowicie nie jest w stanie pokazać żadnych kolorów. Tego też nie da się obejść.
Jeśli rozpaczliwie potrzebujesz kolorowych wyników z zewnętrznych poleceń, musisz uruchomić zewnętrzny emulator terminala z czymś podobnym
:!xterm &
lub użyć wtyczki takiej jak Conque Shell .źródło
Możesz
:set shellcmdflag=-ic
sprawić, aby powłoka zachowywała się interaktywnie, podobnie jak wiersz polecenia.źródło
Możesz wykonać funkcję w
.bashrc
:źródło