มีวิธีเข้าถึงเทอร์มินัลขณะใช้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 เวอร์ชั่นใหม่ที่คุณต้องทำคือเพียง:terminalvoila! (สิ่งนี้สร้างขึ้นภายใน)