วิธีการปิดเสียงเรียกเข้าจากบรรทัดคำสั่ง?


46

ฉันรู้ว่านี่เป็นคำถามทั่วไปของ linux แต่มี / ดังนั้นเมื่อฉันเข้าสู่โปรแกรมเช่น vim ใน command prompt มันจะแสดงข้อความทั้งหมดในไฟล์และฉันสามารถแก้ไขได้ ฯลฯ แต่ฉันไม่สามารถหาวิธีปิดหรือบันทึกไฟล์และกลับไปที่ command prompt โดยไม่ต้องฆ่า กระบวนการ. ความช่วยเหลือใด ๆ ที่ชื่นชม




คำตอบ:


70

ในกลุ่มมี 3 โหมดที่แตกต่างกัน:

  • ส่วนแทรก - อนุญาตให้พิมพ์และแก้ไขได้ตามปกติ
  • ภาพ - ใช้สำหรับเลือกคัดลอก / วาง ฯลฯ
  • ปกติ - ใช้สำหรับคำสั่ง

escที่จะได้รับกลับไปที่โหมดปกติคุณสามารถกดเสมอ

เมื่อคุณอยู่ในโหมดปกติกด:เพื่อเริ่มคำสั่งของคุณ (คุณจะเห็นมันปรากฏขึ้นที่ด้านล่างซ้าย) คำสั่งต่อไปนี้เกี่ยวข้องกับการอ้างถึงกลุ่ม:

  • :q - ออกหากไม่มีการเปลี่ยนแปลงใด ๆ
  • :q! - ออกและทำลายการเปลี่ยนแปลงใด ๆ ที่เกิดขึ้น
  • :wq - เขียนการเปลี่ยนแปลง (บันทึก) และออก
  • :x- คล้ายกับ:wqเขียนเฉพาะไฟล์หากมีการเปลี่ยนแปลงแล้วออก

4
และ:xเป็นทางลัดสำหรับ:wq
Ward Muylaert

2
คุณเพียงแค่ลืมโหมด“ปกติ” ว้าว. ที่จริงแล้วmode()ฟังก์ชั่นในกลุ่มสามารถคืนค่าได้ 18 ค่า
เบอนัวต์

ดังที่ Benoit ได้กล่าวคำตอบนี้ใช้คำว่า "โหมดคำสั่ง" อย่างสับสนเพื่ออ้างถึงสิ่งที่ vim เรียกว่า "โหมดปกติ" vim docs พิจารณาโหมดคำสั่งว่าเป็นสิ่งที่คุณป้อนโดยการกด:ในโหมดปกติ หากคุณเข้าชมescคุณจะกลับสู่โหมดปกติ -1 สำหรับการทำให้เข้าใจผิดกับผู้ที่พยายามเรียนรู้คำศัพท์มาตรฐาน (และทำให้สามารถเข้าใจระบบช่วยเหลือได้)
intuited

6
@intuited ทุกคนสามารถแนะนำการแก้ไขซึ่งอาจเป็นประโยชน์ในระยะยาวมากกว่าการโหวตลงและคำแนะนำที่ดีที่ฝังอยู่ในความคิดเห็น
Michael Martin-Smucker

ขอบคุณสำหรับข้อมูลมันควรจะถูกนำไปแสดงที่ไหนสักแห่งใน VIM เพื่อที่จะได้รู้ว่า ... มันไร้สาระมากที่จะทำการค้นหาบนอินเทอร์เน็ต
shridutt kothari

14

ก่อนอื่นให้กดescapeปุ่ม 1

จากนั้นให้พิมพ์ZZ(นั่นคือตัวพิมพ์ใหญ่สองตัวของ Z ติดกัน) หรือพิมพ์
:xทั้งจะบันทึกการแก้ไขและออก
คุณยังสามารถใช้:wq

หรืออีกวิธีหนึ่งคุณสามารถพิมพ์:q (หรือที่เรียกว่า " เลิกโปรดได้ ") การทำเช่นนี้จะเป็นการออกเฉพาะเมื่อคุณยังไม่ได้ทำการแก้ไข

หากคุณได้ทำการแก้ไขและคุณต้องการยกเลิกและออกให้พิมพ์:q!(หรือที่เรียกว่า " เลิกทำเลย !")

1 : สิ่งนี้ทำให้แน่ใจว่าคุณอยู่ในโหมด "คำสั่ง" สิ่งที่คุณต้องการสำหรับการพิมพ์คำสั่งเช่นที่จำเป็นในการออก


4

ความไม่สะดวกของเราไม่มีวิธีการทั่วไปในการออกจากโปรแกรมบรรทัดคำสั่งเช่นมีปุ่ม "X" สำหรับโปรแกรมกราฟิก

โปรแกรมบรรทัดคำสั่งหลายโปรแกรมใช้ธีมของการใช้Q(เช่นmanและtop) หรือCtrl+ C(เช่นpingและwatch) เพื่อออก

  • เป็นกลุ่มโดยเฉพาะใช้การรวมกันที่คลุมเครือจาก:q!นั้นEnterมักจะนำหน้าด้วยหลายกดEscสำหรับการวัดที่ดี
  • Emacs , อัญมณีอื่นชอบCtrl+ Xตามด้วย+CtrlC

บรรณาธิการเช่นนี้เป็นกับดักสำหรับมือใหม่ ความชอบส่วนบุคคลของฉันและข้อเสนอแนะคือการ, เมื่อถูกบังคับให้แก้ไขข้อความในบรรทัดคำสั่งที่ใช้แทนตัวเองมากขึ้นอธิบายโจบรรณาธิการเอง (โจ)


4
ฉันจริงจะยืนยันว่าnanoเป็นตัวแก้ไขข้อความคอนโซลอธิบายเพิ่มเติมด้วยตนเองสากล
jondavidjohn

@jondavidjohn การโต้แย้งของคุณเป็นที่สงสัย ฉันยอมรับว่านาโนนั้นเป็นสากลมากขึ้นอย่างแน่นอนและฉันไม่ได้อ้างว่ามันเป็นคำอธิบายที่น้อยกว่า JOE ฉันตั้งค่าสำหรับโจเนื่องจากชุดคุณลักษณะขยายและฉันคำแนะนำกับผู้ที่ไม่มีประสบการณ์ได้รับอิทธิพลจากรายละเอียดปลีกย่อยเช่นการใช้คำว่าบันทึกในสถานที่ของโบราณWriteOut
ændrük

โดยทั่วไปคุณสามารถใช้ ^ Z เพื่อระงับกระบวนการ จากนั้นคุณสามารถฆ่ามันไม่สนใจวางไว้ในพื้นหลังหรือนำมันกลับมา (kill% 1 หรือ kill% x, bg, fg) มีความเป็นเอกภาพในการควบคุมงานอยู่แล้ว
belacqua

3

ข้างคำตอบของ jondavidjohn ต่อไปนี้เป็นสองลิงก์ที่มีข้อมูลที่จำเป็นเกี่ยวกับการใช้ vim

  1. นี่คือกราฟิกแป้นพิมพ์ที่แสดงให้คุณเห็นว่าแต่ละปุ่มทำงานอย่างไรขึ้นอยู่กับว่าคุณอยู่ในโหมดแก้ไขโหมดคำสั่งหรือโหมดภาพ:

    http://www.viemu.com/a_vi_vim_graphical_cheat_sheet_tutorial.html

  2. นี่คือการกวดวิชาที่ดีที่สุดที่ฉันเคยทำงานมา เป็นการสนทนาและเข้าใจง่ายซึ่งเป็นรูปแบบ IRC / การส่งข้อความทันที

    http://www.vi-improved.org/tutorial.php

ในที่สุดก็มีบางอย่างเช่น aendruk ที่ไม่ต้องการใช้เครื่องมือแก้ไขข้อความบรรทัดคำสั่งขั้นสูง โดยเฉพาะกลุ่มที่มีเส้นโค้งการเรียนรู้ที่สูงชันและใช้ความพยายามเริ่มแรกเพื่อทำความคุ้นเคย แต่มันเร็วมากและทรงพลังมาก หากคุณมีความสนใจใน linux นอกเหนือจากการใช้เดสก์ท็อปขั้นพื้นฐานคุณควรสละเวลาในการเรียนรู้โปรแกรมแก้ไขข้อความบรรทัดคำสั่งที่เหมาะสมเช่น Vim หรือ Emacs หากคุณต้องการแก้ไขข้อความและไม่สนใจอะไรมากไปกว่านั้นลองพิมพ์gedit filename.txtแทน มันจะเปิดตัวโปรแกรมกราฟิกที่คุ้นเคยเหมือน Notepad จาก Windows


@djeikyb: ฉันขอขอบคุณที่คุณทำให้ความแตกต่างระหว่างการใช้งานเดสก์ทอปขั้นพื้นฐานและการแก้ไขข้อความบรรทัดคำสั่งขั้นสูง จุดแข็งของ Ubuntu เหนือการกระจาย Linux อื่น ๆ คือความสามารถในการทำให้เดสก์ทอป Linux สามารถเข้าถึงได้โดยผู้ใช้คอมพิวเตอร์ทุกวันซึ่งตอนนี้เครดิตของพวกเขาได้รับความนิยมมากขึ้นเรื่อย ๆ โดยไม่จำเป็นต้องรู้ว่าบรรณาธิการเช่น Vim นั้นคืออะไร
ændrük

... มันขึ้นอยู่กับอิสระพิเศษนี้ในใจที่ฉันตัดสินใจที่จะทำงานสูงกว่าวิธีการบรรทัดคำสั่ง Linux แบบดั้งเดิมเนื่องจากฉันมีความอดทนในระหว่างการใช้คอมพิวเตอร์ในชีวิตประจำวัน ฉันใช้ความพยายามในการใช้เครื่องมือที่ง่ายและเข้าถึงได้ง่ายเท่านั้นเพราะฉันสามารถจ่ายได้ มันไม่ถูกต้องที่จะบอกว่าฉันไม่ชอบเครื่องมือแก้ไขข้อความบรรทัดคำสั่ง ในทางตรงกันข้ามฉันชอบ Vim ด้วยปลั๊กอิน VimOutliner และฉันรู้สึกเป็นหนี้บุญคุณสำหรับอิทธิพลที่มีต่อโครงการ Vimperator / Pentadactyl
ændrük

... อย่างไรก็ตามฉันเห็นว่าการใช้งานเครื่องมือเหล่านี้เป็นการใช้งานส่วนตัวโดยเบี่ยงเบนจากการใช้คอมพิวเตอร์ทั่วไป ฉันเห็นว่ามันจะเป็นการพัฒนาที่ดีสำหรับชุมชนอูบุนตูเพื่อแนะนำผู้ที่เพิ่งเข้ามาใหม่ว่าการใช้เครื่องมือขั้นสูงแบบไม่เป็นทางการพร้อมกับเส้นโค้งการเรียนรู้ที่สูงชันถือเป็นบรรทัดฐานในหมู่ผู้ใช้ทุกวัน
ændrük

@ Letseatlunch หากเป้าหมายของคุณคือความเชี่ยวชาญใน Vim ดังนั้นฉันขอแนะนำให้คุณติดตามมันต่อไป ฉันหมายความว่าจะสื่อสารเท่านั้น แต่ที่สำคัญ Ubuntu มีเครื่องมือขั้นสูงมากมายที่ระบบปฏิบัติการอื่นขาดไปทั้งหมดการเรียนรู้ที่จะใช้มันไม่ควรเป็นข้อกำหนดสำหรับการใช้ Ubuntu
ændrük

คำอธิบายที่ดี! ฉันจะแก้ไขคำตอบของฉันเพื่อสะท้อนสิ่งนี้ดีกว่า นอกจากนี้ฉันแนะนำ gedit เหนือ nano โดยเฉพาะเพราะ gedit อยู่ในระดับที่สูงขึ้นด้วย gui ที่คุ้นเคยและเนื่องจาก nano นั้นทำให้ฉันสับสนในตอนแรก (สัญลักษณ์รูปหมวกหมายความว่าอย่างไรฉันจะออกจากอย่างไรฉันจะประหยัดได้อย่างไร) . ซึ่งเป็นเรื่องตลกในขณะนี้การพิจารณาเป็นกลุ่มเป็นตัวเลือกที่ฉันเลือก
djeikyb

2

ถ้า Esc :q!ไม่ทำงาน

ลองแรกCtrl+ q(เพื่อปลดล็อกหน้าจอที่ถูกล็อคด้วยCtrl+ s)

จากนั้นลองอีกครั้งEsc :q!(เพื่อออกโดยไม่บันทึก) หรือEsc :wq(เพื่อบันทึกและออก)


0

ต้องการออกโดยไม่บันทึก:

  1. ตี ESC
  2. ตี ZQ

ออกด้วยการบันทึก:

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