มีวิธีเข้าถึงเทอร์มินัลขณะใช้Vimหรือไม่?
ฉันไม่ชอบเปิดเทอร์มินัลอื่นหรือบันทึกและออกจากเทอร์มินัลปัจจุบัน
มีวิธีเข้าถึงเทอร์มินัลขณะใช้Vimหรือไม่?
ฉันไม่ชอบเปิดเทอร์มินัลอื่นหรือบันทึกและออกจากเทอร์มินัลปัจจุบัน
คำตอบ:
คุณสามารถส่งเป็นกลุ่มสัญญาณ SIGTSTP คุณทำเช่นนี้โดยการกด+ctrl zกลุ่มจะถูกระงับในพื้นหลังและคุณสามารถใช้เทอร์มินัล พิมพ์fg
เทอร์มินัลเพื่อใช้งานต่อด้วย vim
เคล็ดลับโบนัส: ใช้งานได้กับแอปพลิเคชั่นเทอร์มินัลเกือบทั้งหมด ใช้bg
เพื่อเปิดใช้งานแอปพลิเคชันเพื่อทำงานต่อในพื้นหลัง
%
fg
หรือ%1
, %2
ฯลฯ ถ้าคุณมีงานหลายพื้นหลัง jobs
คำสั่งจะแสดงรายการเหล่านั้น (สมมติว่าbash
เป็นเปลือก)
ในกลุ่มให้พิมพ์:
:!sh
:!
เรียกใช้กระบวนการภายนอก - ในกรณีนี้sh
คือเชลล์อื่น การควบคุมจะกลับไปเป็นกลุ่มเมื่อคุณออกจากเปลือก หากคุณต้องการใช้เชลล์พร้อมกับ vim ให้เพิ่ม&
ที่ส่วนท้ายของคำสั่ง sh:
:!sh&
:shell
หรือการใช้งานเพียงแค่
http-server
และจะพิมพ์บันทึกที่ฉันต้องการดู ฉันต้องการที่จะสลับไปยังไฟล์ของฉันทำการแก้ไขแล้วสลับกลับไปยังบันทึก
คุณสามารถใช้:shell
คำสั่ง (หรือแบบสั้น:sh
) จาก:help :shell
:
คำสั่งนี้เริ่มต้นเชลล์ เมื่อเชลล์ออกจาก (หลังจากคำสั่ง "exit") คุณกลับไปเป็นกลุ่ม ชื่อของคำสั่ง shell นั้นมาจากตัวเลือก 'shell'
ตามค่าเริ่มต้นบน Ubuntu สิ่งนี้จะทำให้คุณทุบตี พิมพ์exit
เพื่อกลับไปเป็นกลุ่มเมื่อคุณทำเสร็จแล้ว
ตั้งแต่เสียงเรียกเข้าล่าสุดคุณสามารถทำได้:
:terminal
สิ่งนี้ถูกเพิ่มเข้ามาใน Vim 8.0.693แต่มีข้อบกพร่องมากมาย ดู:help terminal
:
WARNING: THIS IS ONLY PARTLY IMPLEMENTED, ANYTHING CAN STILL CHANGE
The terminal feature is optional, use this to check if your Vim has it:
echo has('terminal')
If the result is "1" you have it.
[...]
The terminal feature requires the +multi_byte, +job and +channel features.
==============================================================================
1. Basic use terminal-use
This feature is for running a terminal emulator in a Vim window. A job can be
started connected to the terminal emulator. For example, to run a shell:
:term bash
Or to run a debugger:
:term gdb vim
The job runs asynchronously from Vim, the window will be updated to show
output from the job, also while editing in any other window.
เช่นเดียวกับคำตอบทั้งหมด
คุณสามารถติดตั้งปลั๊กอิน ConqueTerm
ปลั๊กอินนี้ให้ความสามารถในการเรียกใช้โปรแกรมแบบโต้ตอบภายในกลุ่มบัฟเฟอร์
หลังจากการติดตั้งคุณสามารถเพิ่ม 2 บรรทัดนี้ใน.vimrc
:
:nnoremap <S-w> :q!<CR>
:nnoremap <S-t> :ConqueTermSplit bash<CR>
และคุณจะสามารถเรียกใช้bash
โดยกดShift+ Tและปิดแท็บ Conque ปัจจุบันโดยกดShift+W
มันเป็น perferct bash
หากคุณต้องการเปิดอย่างรวดเร็ว
นี่คือgifที่แสดงให้เห็นว่ามันเป็นอย่างไร
ตัวเลือกอื่นที่มีหน้าจอหรือ byobu คือการเปิดแท็บภายในโปรแกรมเหล่านั้น โปรแกรมเหล่านี้ทำให้เปิด cq shell ได้อย่างง่ายดายและสลับระหว่างหน้าจอเหล่านั้นด้วยคีย์บอร์ด
ด้วย vim 8.1 เวอร์ชั่นใหม่ที่คุณต้องทำคือเพียง:terminal
voila! (สิ่งนี้สร้างขึ้นภายใน)