คำถามติดแท็ก command-line

คำถามเกี่ยวกับคำสั่งอดีตหรือโคลอน สำหรับคำถามเกี่ยวกับตัวเลือกบรรทัดคำสั่งที่ใช้เรียกใช้ตัวแก้ไขให้ใช้แท็ก [การเรียกใช้]

2
ปิดและยกเลิกการโหลดบัฟเฟอร์โดยไม่ต้องออกเป็นกลุ่ม
:clo!บ่อยครั้งที่ผมจะโหลดข้อมูลบางอย่างเป็นบัฟเฟอร์ชั่วคราวและจากนั้นปิดมันด้วย แต่สิ่งนี้ซ่อนบัฟเฟอร์มากกว่าที่จะทำการขนถ่ายทั้งหมดแม้ว่าฉันจะnohiddenตั้งค่าไว้แล้วก็ตาม ฉันพบว่ามันน่าเบื่อเพราะฉันได้รับการยืนยันเป็นพิเศษเมื่อฉันออกจากกลุ่มเกี่ยวกับเนื้อหาที่ฉันทิ้งไปแล้ว ฉันสามารถใช้:q!แทนได้ แต่มันก็เป็นนิสัยที่ไม่ดีที่จะเข้าไปเพราะมันจะออกจากกลุ่มทั้งหมดถ้ามีบัฟเฟอร์เหลือเพียงอันเดียวซึ่งน่ารำคาญเช่นกัน แย่กว่านั้นถ้าฉันพิมพ์ผิด:qa!ฉันอาจสูญเสียงานมาก มีพื้นกลางหรือไม่ ฉันต้องการคำสั่งที่ฆ่าบัฟเฟอร์ปัจจุบัน แต่ไม่ได้ออกจากกลุ่ม ฉันไม่ได้คัดค้านการเขียนใน Vimscript แต่ฉันควรหลีกเลี่ยงหากคำสั่งนั้นมีอยู่แล้ว

4
ฉันจะย้ายเส้นได้อย่างง่ายดายได้อย่างไร?
คำสั่ง (หรือทางลัด) เพื่อย้ายบรรทัดขึ้นหรือลงในกลุ่มคืออะไร? เวิร์กโฟลว์ปัจจุบันของฉันคือการดึง (คัดลอก) บรรทัดและกว่าลบบรรทัดนั้นและแทนที่จะวาง (วาง) บรรทัดนั้น


2
ปิดไฟล์แยกทั้งหมดยกเว้นไฟล์ที่โฟกัสอยู่หรือไม่
บางครั้งเมื่อฉันทำงานกับไฟล์ฉันจะเปิดไฟล์หลาย ๆ ไฟล์เพื่อให้เข้าใจถึงการไหลของรหัสปัจจุบันจนถึงจุดหนึ่ง อย่างไรก็ตามบางครั้งสิ่งนี้นำไปสู่การเปิดหลายไฟล์พร้อมกันโดยแยก มีคำสั่งให้ออกทั้งหมดยกเว้นหน้าต่างที่เลือกหรือไม่

2
จะบันทึกไฟล์ที่ฉันไม่มีสิทธิ์เขียนได้อย่างไร?
บางครั้งมันเกิดขึ้นที่ฉันเปิดไฟล์และทำการปรับเปลี่ยนบางอย่างในฐานะผู้ใช้ของฉันเองโดยไม่สังเกตเห็นหรือ "ลืม" เพื่อสังเกต[read-only]คำเตือนในบรรทัดสถานะ (เช่น/etcไฟล์ config แบบสุ่มบางอย่าง/etc/resolv.conf) :w!เห็นได้ชัดว่าล้มเหลวในกรณีนี้เนื่องจากผู้ใช้ของฉันไม่มีสิทธิ์ในการเขียนอยู่แล้ว ดังนั้นฉันต้อง:w /home/filenameออกและsudo mv ...อึดอัดมาก มีวิธีใดบ้างที่ฉันเลื่อนระดับชั่วคราวไปที่รูทเพื่อให้สามารถบันทึกไฟล์ที่เปิดในปัจจุบันได้ (ฉันอยู่ในsudoersหรือ / และฉันสามารถsuโดยตรง)?

1
วิธีแก้ไขไฟล์แบบไม่โต้ตอบ (เช่นในไพพ์ไลน์)?
ฉันต้องการแก้ไขไฟล์ที่ส่งผ่านไปป์ไลน์โดยใช้ vim แบบไม่โต้ตอบหรือแก้ไขไฟล์ในตำแหน่ง (คล้ายกับsed) ตัวอย่างการใช้sed: $ sed -i'.bak' s/foo/test/g file # Edit file in-place. $ cat file | sed s/foo/test/g # Parse file in pipeline. อย่างไรก็ตามฉันสามารถอ่านที่นี่ว่า: sedเป็นS tream ED itor ไม่ใช่ตัวแก้ไขไฟล์ อย่างไรก็ตามผู้คนทุกที่มีแนวโน้มที่จะละเมิดมันสำหรับพยายามแก้ไขไฟล์ มันไม่ได้แก้ไขไฟล์ ประการที่สองตัวเลือกบางอย่างเช่นการแก้ไขในสถานที่ ( -i) เป็นแบบพกพา วิธีการทำงานเหมือนกันสามารถทำได้ในกลุ่ม?

5
วิธีที่ง่ายที่สุดในการสลับกิ่งก้านสาขา
ตอนนี้ฉันใช้ fugitive เพื่อจัดการ git เกือบทุกอย่างที่เกี่ยวข้อง แต่ฉันไม่สามารถหาเวิร์กโฟลว์ที่ดีในการมองเห็นและสลับระหว่างสาขาที่มีอยู่ได้อย่างรวดเร็ว ฉันสามารถทำได้:Git checkout <branch-name>ปัญหาคือการเติมข้อความอัตโนมัติทั้งชื่อไฟล์และสาขาและฉันต้องการรายการสาขา

2
ดำเนินการสคริปต์ทุบตีจากเป็นกลุ่ม
ฉันใช้เสียงเรียกเข้าสำหรับการเขียนสคริปต์ทุบตี บางครั้งสิ่งที่ฉันไม่ต้องการที่จะสร้างไฟล์ใหม่ทำให้มันปฏิบัติการได้ดำเนินการแล้วลบออก ฉันหมายถึงสคริปต์ที่จะใช้งานเพียงครั้งเดียว เช่นฉันเปิดเป็นกลุ่มและพิมพ์สิ่งนี้: #!/bin/bash ll | while read line do echo $line done ฉันไม่ได้บันทึกไฟล์นี้ฉันใช้ vim เพื่อทำให้ bash-scripting ง่ายขึ้น ฉันรู้ว่าฉันสามารถรันคำสั่ง bash ผ่าน!ในกลุ่ม แต่สิ่งที่เกี่ยวกับการดำเนินการทุกอย่างที่อยู่ในบัฟเฟอร์?

3
ฉันจะหยุดการบันทึกในบรรทัดคำสั่งได้อย่างไร
เมื่อฉันบันทึกแมโครด้วยqและฉันก็เสร็จฉันสามารถพิมพ์: q เพื่อหยุดการบันทึกถ้าฉันอยู่ในโหมดปกติหรือมองเห็น <c-o>q เพื่อหยุดการบันทึกถ้าฉันอยู่ในโหมดแทรก .. ฉันจะหยุดการบันทึกได้อย่างไรถ้าแมโครของฉันสิ้นสุดในโหมดคำสั่ง

3
'[Command Line]' คืออะไรซึ่งบางครั้งก็เกิดขึ้นเมื่อฉันพยายามที่จะออกและฉันจะออกได้อย่างรวดเร็วได้อย่างไร
บางครั้งเมื่อฉันพยายามออกจากกลุ่มฉันได้รับสิ่งที่มีลักษณะเช่นนี้: ฉันไม่แน่ใจว่าฉันจะเรียกสิ่งนี้โดยบังเอิญได้อย่างไร แต่วิธีการปัจจุบันของฉันในการหลบหนีคือการกดปุ่มสุ่มและในที่สุดมันก็จะหายไป สองคำถาม: ฉันจะเรียกมันอย่างไร (ฉันใช้:qเพื่อออกเป็นกลุ่ม) โดยไม่ตั้งใจและ ฉันจะออกจากมันได้อย่างรวดเร็วและกลับไปยังสิ่งที่ฉันกำลังทำงานอยู่ได้อย่างไร

3
ดัมพ์เอาต์พุตของคำสั่ง vim ภายในลงในบัฟเฟอร์
ฉันจะดัมพ์คำสั่ง vim ภายใน (ไม่ใช่คำสั่งเชลล์) ลงในบัฟเฟอร์ใหม่ได้อย่างไร? ตัวอย่างเช่นฉันต้องการถ่ายโอนรายชื่อของปลั๊กอินทั้งหมด:enewจาก:scriptnamesเพื่อให้ฉันสามารถค้นหาได้

4
เมื่อใดควรใช้: grep และ: vimgrep in vim?
ในกลุ่ม:makeทำให้ง่ายต่อการสร้างและแก้ไขข้อผิดพลาดและ:grepและพฤติกรรมเช่น:vimgrep :makeแต่ทำไมคุณถึงต้องการคำสั่งทั้งสองนี้? ทำไมไม่เพียงค้นหารูปแบบและเพียงกดn? อะไรคือข้อดีของพวกเขามากกว่าเพียงแค่การค้นหา?

3
ฉันจะใช้หมายเลขบรรทัดสัมพัทธ์ในโหมดบรรทัดคำสั่งได้อย่างไร
เมื่อเร็ว ๆ นี้ฉันได้เรียนรู้จากPractical Vimวิธีการคัดลอกหรือย้ายบล็อกของบรรทัดโดยไม่ต้องเลื่อนเคอร์เซอร์จากตำแหน่งปัจจุบัน สิ่งนี้จะทำในโหมดบรรทัดคำสั่ง เช่น :123,133m. # moves lines from 123 to 133 below the cursor position. ในขณะที่ฉันชอบมันเป็นความเจ็บปวดที่จะพิมพ์หมายเลขบรรทัดยาวโดยเฉพาะเมื่อไฟล์มีจำนวนบรรทัดมากเกินไป ในบางครั้งเส้นที่จะย้ายค่อนข้างใกล้เคอร์เซอร์ (แต่ฉันไม่ต้องการเลื่อนเคอร์เซอร์ของฉันงัดแงะกลับมาที่ที่ฉันเคยแปะ!) มันจะดีมากถ้าฉันสามารถใช้หมายเลขสัมพัทธ์คล้ายกับที่เราทำในโหมดปกติ มันก็เหมือนกับการพูด ย้าย 5 บรรทัดซึ่งเป็น 10 บรรทัดเหนือบรรทัดปัจจุบันไปที่นี่ ในระยะสั้นวิธีการใช้หมายเลขญาติในโหมดบรรทัดคำสั่ง (คล้ายกับโหมดปกติ)?

1
แท็บบางส่วนเหมือนทุบตีสมบูรณ์สำหรับชื่อไฟล์ใน Vim
ใน Bash เมื่อมีหลายไฟล์ที่มีคำนำหน้าเหมือนกันและฉันพิมพ์ส่วนหนึ่งของคำนำหน้าและการเข้าชมTabมันจะทำให้คำนำหน้าทั่วไปสมบูรณ์และอนุญาตให้ฉันพิมพ์ต่อไปเพื่อแยกความแตกต่างระหว่างผลลัพธ์ที่เป็นไปได้ ในกลุ่มเมื่อมีหลายไฟล์ที่มีคำนำหน้าเหมือนกันและฉันพิมพ์ส่วนหนึ่งของคำนำหน้าและการเข้าชมTabมันจะเสร็จสิ้นการแข่งขันครั้งแรกทั้งหมดและให้ฉันเลือกระหว่างการแข่งขันทั้งหมด เพื่อลดการตั้งค่าฉันต้องถอยกลับจนกว่าฉันจะไปถึงจุดสิ้นสุดของส่วนทั่วไปจากนั้นพิมพ์บางอย่างเพิ่มเติมและกดTabอีกครั้ง ฉันมักจะมีไฟล์จำนวนมากที่มีคำนำหน้าทั่วไปที่ยาวและไฟล์ที่ฉันต้องการไม่ใช่ไฟล์แรก (ตัวอย่างเช่นไดเรกทอรีของไฟล์โครงการที่มีหลายสิ่งหลายอย่าง makefiles ต่าง ๆ ล้วนมีชื่อMakefile.{whatever}) ฉันจะทำให้ Vim สมบูรณ์ยิ่งขึ้นเช่น Bash เพื่อประหยัดการกดปุ่มจำนวนมากได้หรือไม่? โบนัสหากสิ่งนี้สามารถนำไปใช้กับความสำเร็จอื่น ๆ เช่นกัน (ตัวอย่างเช่นค่า enum ที่ทุกคนมีคำนำหน้าเหมือนกัน)

2
ฉันจะใช้ทางลัด Readline ในบรรทัดคำสั่ง vim ได้อย่างไร
เมื่อฉันแก้ไขคำสั่ง Vim ฉันต้องการใช้ทางลัดเดียวกับใน Bash และ REPL อื่น ๆ : M-bเพื่อย้อนกลับคำM-Backspaceเพื่อลบคำก่อนหน้านี้M-uเพื่อแปลงคำเป็นตัวพิมพ์ใหญ่C-kเพื่อตัดจนกว่าจะสิ้นสุด บรรทัด ฯลฯ ฉันสามารถกำหนดค่าคำสั่งบางอย่างใช้:cmapแต่ไม่ใช่ทั้งหมด มีปลั๊กอินหรือการตั้งค่าที่ให้สิ่งนี้หรือไม่? ฉันรู้ceditแต่ฉันพบว่ามันยุ่งยากเมื่อทุกอย่างที่ฉันต้องการคือการป้อนคำสั่งด่วน

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