ฉันจะแก้ไขคำสั่ง shell ปัจจุบันใน VI ได้อย่างไร


31

ฉันเห็นในบล็อกบนเครื่อง Linux คุณสามารถแก้ไขคำสั่ง bash shell ปัจจุบันใน VI (หรือสิ่งที่ EDITOR ตั้งไว้) โดยกด ctrl-x, ctrl-e

ดูเหมือนจะใช้งานไม่ได้กับ 10.8 แนวคิดเกี่ยวกับวิธีแก้ไขคำสั่ง bash ปัจจุบันในตัวแก้ไขเริ่มต้นหรือไม่


สิ่งนี้ควรใช้งานได้ใน 10.8 (อย่างน้อยก็เหมาะกับฉัน) คุณพยายามยกเลิกการตั้งค่า FCEDIT และ EDITOR หรือไม่
nohillside

เอกสารสำหรับ C-xC-e อยู่ที่นี่ - คุณมีVISUALตัวแปรอะไรบ้าง?
เกล็นแจ็คแมน

มันไม่เกี่ยวกับ 10.8 ฉันอายุ 10.8 และใช้งานได้ดีกับฉัน ฉันไม่ได้เปลี่ยนแปลงอะไรใน. bash_profile เพื่อเปิดใช้งานสิ่งนี้
Vincent


1
ฉันเพิ่งรู้ว่าฉันกำลังทำ Ctrl + (x, e) (กด ctrl กด x กด e ปล่อยการควบคุม) - นี่คือเหตุผลที่มันไม่ทำงานสำหรับฉัน เมื่อฉันเปลี่ยนเป็นการกดสองจังหวะที่ชัดเจน Ctrl-x ปล่อย Ctrl, Ctrl-e - จากนั้นทุกอย่างก็เริ่มทำงานได้อย่างสมบูรณ์แบบ!
Dimitry K

คำตอบ:


32

คุณต้องการset -o vi(เพิ่มลงในของคุณ~/.bashrc) จากนั้นหากต้องการแก้ไขบรรทัดปัจจุบันเพียงกดEscเพื่อเข้าสู่โหมดคำสั่ง

ดูที่http://www.gnu.org/software/bash/manual/bashref.html#Readline-vi-Mode

การแก้ไขคำสั่งปัจจุบันในตัวแก้ไขแบบเต็มหน้าจอการตั้งค่าของVISUALตัวแปรสภาพแวดล้อมไปvim(ผมถือว่าคุณต้องการvim) vจากนั้นในโหมดคำสั่งในการแสดงความคิดเห็นในปัจจุบันตี


5
การกดปุ่ม "v" เป็นซอสลับที่ฉันหายไป ขอบคุณ
Scott Walter

2
เป็นไปได้หรือไม่ที่จะได้vรับคำสั่งนี้ขณะอยู่ในโหมด emacs (ไม่ใช่ vi)?
Alex Kahn

10
แค่ทำ Ctrl-X แล้วกด Ctrl-E
albapa

7

คุณedit-and-execute-commandอาจไม่ถูกผูกไว้สำหรับviโหมด ลอง:

bind -m vi-insert '"\C-x\C-e": edit-and-execute-command'

หากต้องการทำให้ถาวรให้เพิ่มบรรทัดนั้นใน~/.inputrcไฟล์ของคุณ

(ผ่านคำตอบนี้ให้เครดิต @unforgettableid สำหรับลิงก์)

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