วิธีออกจาก Vim ชั่วคราวและย้อนกลับ


คำตอบ:


571

การสันนิษฐานเทอร์มินัลเป็นกลุ่มในรสชาติของ * ระวัง:

เพื่อระงับ Vim ที่ใช้งานอยู่ของคุณ

Ctrl + Z

จะระงับกระบวนการและกลับสู่เชลล์ของคุณ

fg

จะดำเนินการต่อ (นำไปสู่fแร่รอบg ) กลุ่มที่ถูกระงับ

เพื่อเริ่มเปลือกใหม่

เริ่ม subshell โดยใช้:

:sh

(ตามที่กำหนดโดย)

:set shell?

หรือ

:!bash

ติดตามโดย:

Ctrl+ D(หรือexitแต่ทำไมพิมพ์มากนัก)

เพื่อฆ่าเชลล์และกลับไปเป็นกลุ่ม


5
psเพื่อดูกระบวนการพื้นหน้าunix.stackexchange.com/questions/6115/…
Vlad Vinnikov

1
จะทำอย่างไรถ้าฉันต้องการเรียกใช้เซิร์ฟเวอร์ของฉันต่อในขณะที่แก้ไขไฟล์ของฉัน ตัวอย่างเช่นสมมติว่าฉันทำnodemon app.js(nodemon รีเฟรชเซิร์ฟเวอร์ในการแก้ไขไฟล์สำหรับคุณ) แล้วฉันต้องการกลับไปแก้ไข vim ของฉัน ฉันสามารถทำได้โดยไม่มีหน้าต่างเทอร์มินัลสองเครื่องแยกกันได้หรือไม่
Costa

5
หรือjobsเยี่ยมชมกระบวนการเบื้องหน้าพร้อมกับชื่อที่อ่านได้มากขึ้น (สำหรับฉัน) จากนั้นเช่นfg %2เพื่อเลือกวินาที
isomorphismes

หากสิ่งนี้ไม่ได้ผลสำหรับคุณและcontrol-zทำหน้าที่เป็น 'เลิกทำ' ให้ตรวจสอบ vimrc ของคุณเพื่อดูว่าbehave mswinมีอยู่หรือไม่ หากมีการลบออกและcontrol-zจะทำงาน
schuess

3
ในหน้าต่างคุณสามารถกลับไปเป็นกลุ่มถ้าคุณพิมพ์exit
JonnyRaa

107

คุณสามารถใช้:shเพื่อออกจากเชลล์เริ่มต้นจากนั้นพิมพ์$ exitที่ shell prompt จะนำคุณกลับไปที่ Vim


1
ฉันหวังว่าฉันจะเอาชนะสิ่งนี้ได้ยากขึ้น นี่คือเหตุผล: เชลล์มีอยู่จริง
แรนดี้มอร์ริส

8
เพื่อความเป็นธรรมบางครั้งคุณต้องการสภาพแวดล้อมเดียวกันไม่ใช่สภาพแวดล้อมย่อย ดังนั้นหากคุณกำลังมองหาการเปลี่ยนแปลงตัวแปรสภาพแวดล้อมเมื่อคุณออกจาก Vim โดยสมบูรณ์คุณจะต้อง CTRL-z /: sus
Tango Bravo

สามารถใช้$ psเพื่อค้นหาว่าเราอยู่ในกลุ่มย่อยเป็นกลุ่มก่อนเรียก$ exitเพื่อหลีกเลี่ยงการปิดเครื่องโดยไม่ตั้งใจ พบสิ่งนี้ที่นี่ (ฉันไม่ได้ลองตัวบ่งชี้ที่กล่าวถึงบนเว็บไซต์)
Daniel


14

หากคุณใช้ระบบ Unix, Ctrl+ Zจะระงับ Vim และให้เชลล์แก่คุณ

พิมพ์fgเพื่อย้อนกลับ โปรดทราบว่า Vim สร้างไฟล์ swap ในขณะที่แก้ไขและการระงับ Vim จะไม่ลบไฟล์นั้น (คุณไม่ได้ออกจาก Vim เลย) บนอาคารใบ้วิธีนี้เป็นมาตรฐานสวยสำหรับการแก้ไข-รวบรวมแก้ไขวงจรโดยใช้vi ฉันเพิ่งค้นพบว่าสำหรับฉันgVimลดการพิมพ์Zลง


13

นอกจากนี้คุณยังสามารถทำได้โดยจะตกอยู่ในเปลือกและกลับมาโดย:susfg


5

มีหลายวิธีในการออกจากกลุ่มและมีทุกอย่างเหมือนกันเมื่อคุณกลับมา มีเอกสารที่ดีมากในกลุ่มที่เป็นตัวของตัวเองอธิบายถึงวิธีการต่าง ๆ ที่สามารถทำได้ คุณสามารถใช้คำสั่งต่อไปนี้ภายในกลุ่มเพื่อเข้าถึงหน้าช่วยเหลือที่เกี่ยวข้อง::help usr_21

เพื่อให้ข้อมูลสรุปสั้น ๆ ต่อไปนี้เป็นวิธีที่แตกต่างกันในการเลิกและกลับมาพร้อมกับเซสชันของคุณ:

  1. ระงับและดำเนินการต่อ - คุณจะไม่ออกจาก Vim ด้วยสิ่งนี้ คุณเพียงแค่ซ่อนเซสชั่นของคุณในพื้นหลังจนกว่าคุณต้องการ หากคุณรีเซ็ตคอมพิวเตอร์หรือออกคำสั่ง kill เป็น Vim คุณจะสูญเสียเซสชันของคุณ สิ่งนี้เป็นสิ่งที่ดีเมื่อคุณต้องการสลับไปใช้งานอื่นชั่วคราว แต่ถ้าเป็นกรณีนี้คุณอาจต้องการใช้ยูทิลิตี GNU Screenแทน

  2. เซสชั่น - นี่คือวิธีที่แท้จริงในการบันทึกเซสชันของคุณระหว่างอินสแตนซ์ของ Vim แม้ว่าคุณจะออกจากกลุ่มอย่างแท้จริงเซสชันของคุณจะอยู่ที่นั่นเมื่อคุณกลับมา นี่อาจเป็นสิ่งที่คุณกำลังมองหา


5

ในการขยายคำตอบของผู้ใช้Zenคุณสามารถเพิ่มบรรทัดต่อไปนี้ใน~/.vimrcไฟล์ของคุณเพื่อให้สามารถสลับระหว่าง Bash และ Vim ได้อย่างรวดเร็ว:

noremap <C-d> :sh<cr>

ห้าปีต่อมาฉันแค่อยากจะบอกว่าการใช้ Cd อาจเป็นคำแนะนำที่ไม่ดีเพราะมันเขียนทับพฤติกรรมเริ่มต้นของ Vim ctrl-d หน้าต่าง scoll ไปยังในบัฟเฟอร์โดยค่าเริ่มต้น ดูvimdoc.sourceforge.net/htmldoc/scroll.html#CTRL-D
xaa

3

เพียงใส่fgและกลับไปยังโปรแกรมที่ถูกระงับล่าสุดของคุณ


3

หากคุณใช้Neovimคุณสามารถทำสิ่งต่อไปนี้:

  • :terminal คำสั่งเพื่อเปิดหน้าต่างเทอร์มินัล
  • ทำสิ่งที่สถานีของคุณ
  • พิมพ์exitเพื่อฆ่ากระบวนการเทอร์มินัล
  • กดปุ่มใด ๆ เพื่อกลับไปที่ Neovim

0

หากคุณไม่รังเกียจการใช้เม้าส์ของคุณ:

  • เริ่ม terminal ของคุณ
  • เลือกไฟล์
  • เลือกแท็บเปิด

สิ่งนี้จะสร้างแท็บใหม่บนเทอร์มินัลซึ่งคุณสามารถเรียกใช้ Vim ได้ ตอนนี้ใช้เมาส์เพื่อเลื่อนไปยัง / จากเทอร์มินัล ฉันชอบสิ่งนี้แทนที่จะต้องพิมพ์ ( :shellและออก) เสมอ

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