Misalnya, untuk perintah ls --color
menampilkan hasil yang berwarna ketika dieksekusi di shell. Namun, ketika saya memanggil :!ls --color
vim dalam, semua informasi warna hilang.
Apa yang harus saya lakukan untuk menjaga warna saat memanggil perintah eksternal di dalam vim?
EDIT: Untuk memperjelas pertanyaan saya , Ini adalah pertanyaan tentang VIM itu sendiri, saya TIDAK benar-benar bertanya bagaimana cara mengaktifkan "ls" warna. Yang ingin saya ketahui adalah, umumnya cara mengaktifkan tampilan hasil warna-warni dari SEMUA perintah shell (selama mereka memiliki hasil warna-warni).
Jawaban:
CLI Vim atau GUI Vim?
Anda tidak dapat menampilkan output dari
:!ls
atau:!ls --color
atau perintah eksternal lainnya di CLI Vim itu sendiri karena itu single threaded: Vim ditangguhkan dan$ ls --color
dieksekusi di shell Anda. Tidak ada jalan lain untuk itu. Nah, Anda dapat menempatkan output dari perintah eksternal di buffer saat ini tetapi itu bukan hal yang sama.Di GUI Vim, Anda hanya bisa mendapatkan pseudo-shell yang benar-benar tidak dapat menampilkan warna apa pun. Tidak ada jalan lain untuk itu.
Jika Anda sangat membutuhkan keluaran berwarna dari perintah eksternal Anda harus meluncurkan emulator terminal eksternal dengan sesuatu seperti
:!xterm &
atau menggunakan plugin seperti Conque Shell .sumber
Anda dapat
:set shellcmdflag=-ic
membuat shell berperilaku secara interaktif, seperti command prompt Anda.sumber
Anda dapat membuat fungsi di
.bashrc
:sumber