โดยทั่วไปแล้วเทอร์มินัลจะอนุญาตให้เลือกข้อความด้วยเมาส์ได้ แต่เชลล์จะไม่รับรู้สิ่งนี้ จึงขออภัยค่าbash
, zsh
, fish
หรือes
สามารถสนับสนุนการแก้ไขเมาส์ตาม ฉันคิดว่าจะทำเช่นนั้นพวกเขาจะต้องควบคุมขั้วให้มากขึ้น
อย่างไรก็ตาม (และนี่เป็นบิตของการยืด) ถ้าคุณเปิดเสียงเรียกเข้าหรือ GVim และจากนั้นป้อนคำสั่งเชลล์โดยใช้:
:!...
แล้วคุณสามารถคลิกเมาส์ของคุณเพื่อข้ามไปยังทุกที่ในบรรทัด (คุณจะต้อง:set mouse=a
ก่อนถ้ายังไม่ได้เปิดใช้งาน) ปุ่มแก้ไขในโหมดนี้สามารถเห็นได้ด้วย:help cmdline-editing
q:กลุ่มนี้ยังมีค่อนข้างโหมดประวัติคำสั่งที่มีประสิทธิภาพซึ่งสามารถเข้าถึงได้โดยการกดปุ่ม จากตรงนั้นคุณสามารถดึงลบและวางโดยใช้คำสั่งโหมดปกติของ Vim ในโหมดนี้คุณสามารถเลือกด้วยเมาส์แล้วลบคุณสมบัติที่คุณต้องการ (โดยการกดปุ่มd)
ข้อสังเกตที่สำคัญที่นี่คือ Vim ไม่ได้ทำให้เซสชันเชลล์แบบสดทำงาน แต่ละคำสั่งที่คุณเรียกใช้จะถูกเรียกใช้ในกระบวนการลูก ดังนั้นการเปลี่ยนแปลงใด ๆ ที่ทำกับตัวแปรสภาพแวดล้อมหรือตัวเลือกเชลล์โดยกระบวนการลูกจะหายไป
ที่กล่าวว่าคุณสามารถปรับเปลี่ยนตัวแปรสภาพแวดล้อมจากภายในกระบวนการ Vim และใช้สิ่งเหล่านี้จากบรรทัดคำสั่งของ Vim และพวกเขาจะถูกส่งออกไปยังกระบวนการลูก:
:let $FOO="bar" " the $ and the quotes are mandatory here
:echo $FOO " Vim's own echo command
bar
:!echo "$FOO" " Passing the variable to a shell command
bar
:!bash " Opening a child shell
$ echo "$FOO"
bar
ดังนั้นหากคุณยินดีที่จะแกล้งทำเป็นว่า Vim เป็นเชลล์แปลก ๆ คุณสามารถเพลิดเพลินกับฟีเจอร์การแก้ไขขั้นสูงได้! อาจเป็นข้อเสียเปรียบที่ใหญ่ที่สุดคือคุณจะต้องเริ่มทุกคำสั่งโดยการพิมพ์:!
หรือq:
โอ้และโดยวิธีถ้าคุณต้องการเอาท์พุทของคำสั่งเชลล์ในบัฟเฟอร์ Vim ปัจจุบันของคุณคุณสามารถทำเช่นนี้ (แต่ระวังว่ามันจะอุดตันบรรทัดปัจจุบันของคุณ):
:,!ls