ฉันสามารถเปิดเชลล์ได้โดยใช้คำสั่ง: shell ใน Vim แต่ฉันไม่สามารถแก้ไขไฟล์ได้และในเวลาเดียวกันก็ใช้เชลล์
มีวิธีใดบ้างในการแบ่ง Vim ในหลาย ๆ Windows (หรือแท็บ) และเปิดเชลล์ในหนึ่งในนั้นหรือไม่?
ฉันสามารถเปิดเชลล์ได้โดยใช้คำสั่ง: shell ใน Vim แต่ฉันไม่สามารถแก้ไขไฟล์ได้และในเวลาเดียวกันก็ใช้เชลล์
มีวิธีใดบ้างในการแบ่ง Vim ในหลาย ๆ Windows (หรือแท็บ) และเปิดเชลล์ในหนึ่งในนั้นหรือไม่?
คำตอบ:
Neovim และ Vim 8.2
สนับสนุนสิ่งนี้โดยกำเนิดผ่าน:ter[minal]
คำสั่ง
ดูterminal-window
รายละเอียดในเอกสาร
vsplit term://bash
ถ้าคุณใช้ Neovim
terminal
คำสั่งจะแบ่งหน้าต่างและให้เชลล์คำสั่งที่มีสีพิเศษบนแถบสถานะของหน้าต่าง เนียน.
มันขึ้นอยู่กับระบบปฏิบัติการของคุณจริงๆแล้วฉันไม่ได้ทดสอบบน MS Windows แต่Conqueเป็นหนึ่งในปลั๊กอินที่ดีที่สุด
จริงๆแล้วอาจจะดีกว่า แต่ได้ผล
:vsp
หรือ:sp
- แบ่งกลุ่มเป็นสองอินสแตนซ์ แต่คุณไม่สามารถใช้: เชลล์ในหนึ่งในนั้น
ทำไมไม่แสดงแท็บอื่นของเทอร์มินัลไม่ใช่แท็บอื่นของกลุ่ม หากคุณชอบแนวคิดนี้คุณสามารถลองใช้: Ctrl-shift-t.
และย้ายไปมาระหว่างแนวคิดเหล่านี้ด้วยCtrl - pageup
และCtrl - pagedown
หากคุณต้องการคำสั่งเชลล์เพียงไม่กี่คำคุณสามารถสร้างคำสั่งเชลล์เป็นกลุ่มโดยใช้ !
ตัวอย่างเช่น:!./a.out
.
vim
path magic ได้ดังนี้::!./%
Ctrl
ไม่ว่าคำตอบของคุณจะถือว่า gnome-terminal หรือโปรแกรมจำลองที่คล้ายกัน
คุณสามารถใช้tmux
หรือscreen
(ประการที่สองสามารถทำได้เฉพาะการแยกแนวนอนโดยไม่ต้องใช้แพทช์) เพื่อแยกเทอร์มินัลของคุณ แต่ฉันไม่รู้วิธีที่จะมี Vim หนึ่งอินสแตนซ์ในบานหน้าต่างทั้งสองบาน
หากคุณยังไม่พบคุณสามารถใช้ปลั๊กอินหน้าจอที่น่าทึ่งได้ได้
Conqueก็ยอดเยี่ยมเช่นกัน แต่ฉันพบว่าหน้าจอใช้งานได้จริงมากขึ้น (ตัวอย่างเช่นมันจะไม่ "ทิ้งขยะ" บัฟเฟอร์ของคุณและคุณสามารถส่งคำสั่งที่คุณต้องการจริงๆหลังจากแก้ไขในบัฟเฟอร์ของคุณ)
ฉันเดาว่านี่เป็นคำถามที่ค่อนข้างเก่า แต่ตอนนี้ในปี 2017 เรามี neovim ซึ่งเป็นกลุ่มแยกที่เพิ่มการรองรับเทอร์มินัล
ดังนั้นการเรียกใช้:term
จะเปิดหน้าต่างเทอร์มินัล ความสวยงามของโซลูชันนี้เมื่อเทียบกับการใช้ tmux (เทอร์มินัลมัลติเพล็กเซอร์) คือคุณจะมีการผูกหน้าต่างเดียวกันกับการvim
ตั้งค่าของคุณ neovim เข้ากันได้กับ vim ดังนั้นโดยทั่วไปคุณสามารถคัดลอกและวางของคุณ.vimrc
และมันก็จะทำงาน
ข้อดีเพิ่มเติมคือคุณสามารถเปลี่ยนเป็นโหมดปกติบนเทอร์มินัลที่เปิดอยู่และคุณสามารถคัดลอกและแก้ไขขั้นพื้นฐานได้ นอกจากนี้ยังมีประโยชน์มากสำหรับการคอมไพล์ด้วยฉันเดาว่าเนื่องจากทุกอย่างในบัฟเฟอร์ของคุณคุณสามารถใช้ในการเติมข้อความอัตโนมัติได้
ฉันจะอัปเดตคำตอบนี้เนื่องจาก vim กำลังวางแผนที่จะปล่อยการสนับสนุนเทอร์มินัลซึ่งอาจเป็น vim 8.1 ติดตามความคืบหน้าได้ที่นี่: https://groups.google.com/forum/#!topic/vim_dev/Q9gUWGCeTXM
เมื่อเปิดตัวแล้วฉันเชื่อว่านี่เป็นการตั้งค่าที่ดีกว่าการใช้ tmux
ไม่ใช่สิ่งที่คุณต้องการอย่างแน่นอน แต่คุณอาจสนใจโดยปลั๊กอินvim-notebookของฉันซึ่งช่วยให้ผู้ใช้สามารถรักษากระบวนการพื้นหลังให้มีชีวิตอยู่และทำให้ประเมินเป็นส่วนหนึ่งของเอกสารปัจจุบัน (และเขียนผลลัพธ์ในเอกสาร) มีวัตถุประสงค์เพื่อใช้กับเอกสารแบบโน้ตบุ๊กที่มีโค้ดที่จะประเมิน
คุณอาจต้องการเปิดโปรแกรม "หน้าจอ" แยกหน้าจอเปิดเชลล์ในรายการหนึ่งและรวมกันเป็นกลุ่มอื่น ใช้ได้ผลสำหรับฉัน
ฉันกำลังใช้ tmux
การติดตั้ง: sudo apt-get install tmux เรียกใช้: tmux
Ctrl + b ตามด้วย Ctr +%: จะแบ่งหน้าต่างเทอร์มินัลของคุณออกเป็นสองส่วนแนวตั้ง
Ctrl + "ลูกศรซ้าย | ลูกศรขวา": ย้ายไปมาระหว่างขั้ว