ฉันจะเก็บสีเมื่อเรียกใช้คำสั่งภายนอกภายในเป็นกลุ่มได้อย่างไร


12

ตัวอย่างเช่นสำหรับคำสั่งls --colorแสดงผลลัพธ์ที่มีสีสันเมื่อดำเนินการในเชลล์ อย่างไรก็ตามเมื่อฉันโทร:!ls --colorเข้าไปในกลุ่มข้อมูลสีทั้งหมดจะหายไป

ฉันควรทำอย่างไรเพื่อรักษาสีเมื่อเรียกใช้คำสั่งภายนอกภายในกลุ่ม?

แก้ไข: เพื่อชี้แจงคำถามของฉันนี่เป็นคำถามเกี่ยวกับVIMเองฉันไม่ได้ถามวิธีเปิดใช้สีของ "ls" สิ่งที่ฉันอยากรู้คือโดยทั่วไปแล้ววิธีเปิดใช้งานการแสดงผลที่มีสีสันของคำสั่งเชลล์ทั้งหมด (ตราบเท่าที่พวกเขามีผลลัพธ์ที่มีสีสัน)


2
ทำงานได้ดีที่นี่
Ignacio Vazquez-Abrams

2
"นี่เป็นคำถามเกี่ยวกับ VIM เอง ... "
Ignacio Vazquez-Abrams

2
และเป็นกลุ่มเป็นหนึ่งใน "เครื่องมือซอฟต์แวร์ที่ใช้กันทั่วไปโดยโปรแกรมเมอร์" ...

1
อีเมลของ ไม่ได้แปลว่า "ฉันจะใช้ Thunderbird ได้อย่างไร" ในหัวข้อที่นี่
Ignacio Vazquez-Abrams

2
เป็นกลุ่มมี ctags, เยื้องและสนับสนุนโดยตรงมากขึ้นสำหรับการเขียนโปรแกรม อีเมลทำอะไรเพื่อการเขียนโปรแกรมโดยตรง
Jens

คำตอบ:


5

CLI Vim หรือ GUI Vim?

คุณไม่สามารถแสดงเอาต์พุตของ:!lsหรือ:!ls --colorหรือคำสั่งภายนอกอื่น ๆ ใน CLI Vim ได้เพราะมันเป็นเธรดเดี่ยว: Vim ถูกระงับและ$ ls --colorถูกเรียกใช้งานในเชลล์ของคุณ ไม่มีทางรอบนั้น คุณสามารถวางเอาต์พุตของคำสั่งภายนอกในบัฟเฟอร์ปัจจุบัน แต่นั่นไม่ใช่สิ่งเดียวกัน

ใน GUI Vim คุณสามารถรับ pseudo-shell ที่ไม่สามารถแสดงสีใด ๆ ได้ทั้งหมด ไม่มีวิธีรอบที่ทั้ง

ถ้าคุณหมดต้องส่งออกสีจากคำสั่งภายนอกคุณต้องเปิดการภายนอกจำลอง terminal กับสิ่งที่ต้องการ:!xterm & หรือใช้ปลั๊กอินเช่นConque เชลล์


1
ฉันอยากจะแนะนำบางอย่างเช่น tmux หรือหน้าจอด้วย
lucapette

ใช่แน่นอน. แต่ผู้ถามยืนยันว่าเป็นคำถามเกี่ยวกับ Vim Tmux ยอดเยี่ยม ลงชื่อเข้าใช้บนเซิร์ฟเวอร์ระยะไกลผ่าน SSH และใช้ Vim ที่กำหนดค่าไว้อย่างดีภายใน tmux / หน้าจอเป็นประสบการณ์ที่สนุกสนานอย่างน่าประหลาดใจ สมบูรณ์แบบสำหรับการเดินทางในโซนและพักอยู่ที่นั่น
romainl

@ ฉีดขอบคุณสำหรับคำตอบที่ยอดเยี่ยมของคุณ ฉันใช้ gVim และฉันคิดว่า CLI vim นั้นไม่สามารถแสดงสีได้ ... ด้วยการทดลองบางอย่างฉันพบว่าสีนั้นแสดงอย่างถูกต้องใน CLI vim ของฉัน
CMinus


1

คุณสามารถสร้างฟังก์ชั่นใน.bashrc:

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

ขออภัยสำหรับการพิมพ์ผิด แต่ฉันไม่ได้ถามวิธีการแสดงสีด้วยคำสั่ง "ls" - ฉันอยากรู้เกี่ยวกับวิธีการคงสีเมื่อเรียกใช้คำสั่งภายนอกด้วย vim ฉันเพิ่งใช้ "ls" เป็นตัวอย่าง
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.