Vim içinde harici komutu çalıştırdığımda rengi nasıl koruyabilirim?


12

Örneğin, komut ls --coloriçin kabukta yürütüldüğünde renkli sonuçlar görüntülenir. Ancak, :!ls --colorvim'in içinde aradığımda tüm renk bilgileri kaybolur.

Vim içinde harici komut çağırırken rengi korumak için ne yapmalıyım?

DÜZENLEME: Sorumu açıklığa kavuşturmak için , bu yaklaşık bir sorudur VIM kendisi, ben değilim DEĞİL aslında "ls" 'in renk etkinleştirme soran. Bilmek istediğim, genel olarak TÜM kabuk komutlarının renkli sonuçlarının görüntülenmesini nasıl etkinleştireceğinizdir (renkli sonuçlara sahip oldukları sürece).


2
Burada iyi çalışıyor.
Ignacio Vazquez-Abrams

2
"Bu VIM'in kendisi hakkında bir soru ..."
Ignacio Vazquez-Abrams

2
ve vim "programcılar tarafından yaygın olarak kullanılan yazılım araçlarından" biridir ...

1
E-posta. Mutlaka burada "Thunderbird nasıl yapılır" anlamına gelmez.
Ignacio Vazquez-Abrams

2
Vim, programlama için ctags, indent ve çok daha doğrudan desteğe sahiptir. E-posta doğrudan programlama için ne yapar?
Jens

Yanıtlar:


5

CLI Vim veya GUI Vim?

Tek iş parçacıklı olduğu için CLI Vim'in çıktısını :!lsveya :!ls --colorbaşka bir harici komutu gösteremezsiniz : Vim askıya alınır ve $ ls --colorkabuğunuzda yürütülür. Bunun hiçbir yolu yok. Harici komutların çıkışını geçerli ara belleğe yerleştirebilirsiniz, ancak bu aynı şey değildir.

GUI Vim'de, yalnızca herhangi bir renk gösteremeyen sahte bir kabuk elde edebilirsiniz. Bunun da bir yolu yok.

Harici komutlardan umutsuzca renkli çıktıya ihtiyacınız varsa, Conque Shell gibi bir eklenti ile harici bir terminal emülatörü başlatmanız :!xterm & veya kullanmanız gerekir .


1
Ben de tmux veya ekran gibi bir şey öneririm.
lucapette

Evet kesinlikle. Fakat asker bunun Vim'in kendisi hakkında bir soru olduğu konusunda ısrar etti. Tmux harika. SSH üzerinden uzak bir sunucuda oturum açmış ve tmux / ekran içinde iyi yapılandırılmış bir Vim kullanarak şaşırtıcı derecede keyifli bir deneyim. Bölgede almak ve orada kalmak için mükemmel.
romainl

@romainl harika cevabınız için teşekkür ederim. GVim kullandım ve yanlış CLI vim'in de renk gösteremediğini varsaydım ... Bazı denemelerde renklerin CLI vim'de doğru görüntülendiğini gördüm.
CMinus

1

Şunları yapabilirsiniz :set shellcmdflag=-icKomut istemi gibi, etkileşimli kabuk davranacağınızı yapmak.


1

Bir işlev yapabilirsiniz .bashrc:

function ls { /bin/ls --color=always; }
export -f ls

Yazım hatası için özür dilerim, ama "ls" komutu ile nasıl renk gösterileceğini sormuyorum - vim ile harici komutları yürütürken rengi nasıl koruyacağımı merak ediyorum. Ben sadece "ls" örnek olarak kullandım.
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.