คำถามติดแท็ก invocation

คำถามเกี่ยวกับตัวเลือกต่างๆที่กลุ่มสามารถนำมาจากเชลล์และคำสั่งต่างๆเพื่อเริ่มตัวแก้ไข

5
เทอร์มินัล borked หลังจากเรียกใช้ Vim ด้วย xargs
บางครั้งฉันพยายามเรียกใช้ Vim โดยใช้วิธีxargsนี้: find . -name '*.java' | xargs vim …งานประเภทใด: เมื่อ Vim เปิดตัวฉันจะเห็นแฟลชคำเตือนต่อไปนี้สั้น ๆ : Vim: Warning: Input is not from a terminal การแก้ไขการทำงาน - :filesระบุ.javaไฟล์ทั้งหมดอย่างถูกต้องตามที่คาดไว้ ฉันสามารถบันทึกและออกจาก อย่างไรก็ตามหลังจากออกจาก Vim เทอร์มินัลของฉันถูก borked: สิ่งที่ฉันพิมพ์ที่ shell prompt ไม่ได้สะท้อน การขึ้นบรรทัดใหม่จะไม่ปรากฏเลยและบางครั้งการป้อนบรรทัดก็จะปรากฏขึ้น สิ่งนี้จะดำเนินต่อไปจนกว่าฉันจะออกreset(1)คำสั่งเพื่อกำหนดค่าเริ่มต้นใหม่ให้กับเทอร์มินัล นี่เป็นข้อผิดพลาด Vim หรือมีคำอธิบายที่น่าพอใจมากกว่าสำหรับสาเหตุที่มันโต้ตอบกับเทอร์มินัลเช่นนั้น? ฉันเคยเห็นมันเกิดขึ้นใน Vim จนถึงเวอร์ชัน 7.3 (ดูเหมือนว่าจะไม่มีความหมาย) บน Linux และ Unices …


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) เป็นแบบพกพา วิธีการทำงานเหมือนกันสามารถทำได้ในกลุ่ม?

4
โหลด Vi เข้าสู่โหมดแทรกโดยอัตโนมัติ
ฉันใช้ Vi เป็นตัวแก้ไขข้อความ (และอันที่จริงเท่านั้น) ที่ฉันต้องการบนระบบ Linux ฉันรู้วิธีเปลี่ยนโหมดจากปกติเป็นแทรกและข้อรอง เป็นไปได้ไหมที่ Vi โหลดเข้าสู่โหมดแทรกโดยอัตโนมัติมากกว่าโหมดปกติ?

2
ฉันสามารถเปิดไฟล์ในอินสแตนซ์ Vim ที่มีอยู่จากคำสั่งภายนอกได้หรือไม่
บางแอปพลิเคชันมีแนวคิดของ"เซสชัน"ซึ่งคุณสามารถเรียกใช้คำสั่งเพื่อโหลดไฟล์ในอินสแตนซ์ที่มีอยู่ของแอปพลิเคชัน ตัวอย่างเช่นเมื่อฉันพิมพ์: $ firefox http://vi.stackexchange.com Firefox จะใช้กระบวนการ Firefox ที่มีอยู่อีกครั้งแทนที่จะสร้างกระบวนการใหม่ เป็นไปได้ด้วย Vim?

5
เป็นไปได้หรือไม่ที่จะสั่งคำสั่ง vim เป็นกลุ่ม?
ฉันต้องการเรียกใช้เชลล์ต่อไปนี้ wea-this is the end of the second word | vim j exit 0 ซึ่งฉันหวังว่าจะไปป์จังหวะสำคัญw(เลื่อนไปข้างหน้าคำ) จากนั้นe(จบคำ) จากนั้นa(ต่อท้าย) แล้ว-this is the end of the second word( ต่อท้าย) (ข้อความ) ไปยังเอกสาร Vim jที่มีคำซึ่งมีคำอยู่แล้ว ข้อผิดพลาดต่อไปนี้เกิดขึ้นเมื่อฉันรันเชลล์สคริปต์ /root/bin/tt.sh: line 1: wea-this: command not found Vim: Warning: Input is not from a terminal ฉันใช้ Ubuntu 14.04 คำตอบสองประเภทจะได้รับการชื่นชม: …
18 invocation 

4
วิธีแก้ไขเนื้อหาจากอินพุตมาตรฐาน
ฉันต้องการแก้ไขเนื้อหาในกลุ่มที่สร้างขึ้นแบบไดนามิกจากบรรทัดคำสั่งโดยไม่ต้องมีไฟล์ ในตัวอย่าง: $ echo This is example. | vim /dev/stdin $ cat /etc/hosts | vim /dev/stdin แต่มันล้มเหลวด้วยข้อผิดพลาด: เป็นกลุ่ม: คำเตือน: อินพุตไม่ได้มาจากเทอร์มินัล เป็นกลุ่ม: ข้อผิดพลาดในการอ่านอินพุตกำลังออก ... เป็นไปได้ไหมที่จะบรรลุเป้าหมายนั้น?

3
ฉันจะรู้ได้อย่างไรว่า Vi หรือ Vim ได้รับการติดตั้งบนการกระจาย Linux ของฉันหรือไม่
ฉันใช้ Kubuntu 14.04 กับการติดตั้งเริ่มต้น (ทุบตี Konsole) ฉันต้องการเรียนรู้คีย์บอร์ดที่ทรงพลังตัวแก้ไขข้อความและตั้งอยู่บนหนึ่งในสิ่งเหล่านี้: Vi, Vim, Emacs (และฉันจะเรียนรู้ Nano เพราะมันง่าย) ฉันมีประสบการณ์เล็กน้อยเกี่ยวกับบรรทัดคำสั่ง: Bash และ Python ดังนั้นฉันพร้อมที่จะเพิ่มทักษะอื่นในการแสวงหาการใช้งาน Linux โดยไม่มีระบบ Windows จาก Bash พิมพ์vimหรือemacsแจ้งให้ฉันติดตั้งแพ็คเกจ viงานพิมพ์ดีด มันเป็นบรรณาธิการดังนั้นฉันคิดว่ามันต้องเป็น Vi แต่หน้าจอถ้าคุณเรียกมันว่าในทุบตีกล่าวและว่ามันเป็นVIM Vi Improved Running in Vi compatible modeดังนั้นตอนนี้ฉันคิดว่ามันต้องเป็นกลุ่ม ดังนั้นมันคืออะไรและทำไมการพิมพ์vimใน bash จึงไม่สามารถรันโปรแกรมแก้ไขได้?

1
การทดลองกับ vim / gvim ในโหมด "บริสุทธิ์"
บางครั้งฉันต้องการลองเคล็ดลับที่พบในอินเทอร์เน็ต บ่อยครั้งการลองใช้วิธีนี้ใน vim (gvim หากเป็น gui trick) ในโหมด Virgin คือโดยไม่ต้องโหลดเนื้อหา ~ / .vimrc ทั้งหมดของฉัน คุณมีเคล็ดลับในการทำสิ่งนี้อย่างมีประสิทธิภาพหรือไม่?

2
วิธีเขียนบัฟเฟอร์ทั้งหมดไปยังเอาต์พุตมาตรฐานจากบรรทัดคำสั่ง?
ฉันต้องการเขียนบัฟเฟอร์ทั้งหมดลงในเอาต์พุตมาตรฐาน ( /dev/stdout) แทนไฟล์และคำสั่งต่อไปนี้ทำงานตามที่คาดไว้ในขณะที่แก้ไขไฟล์: :w >> /dev/stdout คำแนะนำ: กดControl+ Lเพื่อรีเฟรชหน้าจอ แต่มันไม่ทำงานอย่างที่คาดไว้เมื่อฉันพยายามทำสิ่งเดียวกันจากบรรทัดคำสั่ง (แบบไม่โต้ตอบ ): $ echo This is example. | vim - '+:w >> /dev/stdout' '+:q!' Vim: Reading from stdin... เช่นเดียวกันกับ:w !tee, :x! /dev/stdout, :%printและที่คล้ายกัน ก่อนที่จะเลิกพูดว่า: [Device] 1L, 17C appended. มีวิธีการบังคับให้ vim เขียนอินพุตมาตรฐานลงในเอาต์พุตมาตรฐานตรงกลางของไพพ์หรือไม่? อาจจะถูกบัฟเฟอร์อย่างใด?

2
ทำไมจะไม่เป็นกลุ่มไฟล์. vimrc ของฉัน
วันนี้ฉันพบว่าฉัน.vimrcไม่มีผล มันก็โอเคแค่ไม่กี่ชั่วโมงที่ผ่านมา เมื่อฉันเปิดตัวเป็นกลุ่มที่มี$vim --plugin, :scriptnamesไม่มีอะไรสะท้อน: .vimrcไฟล์ที่ไม่ได้มา (หมายเหตุ: /etc/vimrcถูกลบเพื่อแก้ไขปัญหานี้) จากนั้นฉันก็ลอง google และพบ$VIMINITตัวแปรที่น่าสงสัย นี่คือค่าของ$VIMINIT: $ echo $VIMINIT set number เอกสารที่เป็นกลุ่มเกี่ยวกับVIMINIT: c. Four places are searched for initializations. The first that exists is used, the others are ignored. The $MYVIMRC environment variable is set to the file that was first found, unless $MYVIMRC …
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.