เป็นไปได้หรือไม่ที่จะสร้างและใช้เมนูใน (ตามเทอร์มินัล)


18

ฉันกำลังตั้งค่ากล่อง Linux แบบเสมือน (เป็นเซิร์ฟเวอร์การพัฒนาในท้องถิ่น) สำหรับนักพัฒนาใน บริษัท ที่ใช้ Windows เป็นหลักและนักพัฒนาบางคนสร้างรอยร้าวเชิงลบเกี่ยวกับ vim (เหนือสิ่งอื่นใด) (ดูเหมือนว่าพวกเขาจะเป็นตัวแทนของ Linux / Unix ในทางใดทางหนึ่งและพิสูจน์ว่าสภาพแวดล้อมนั้นยากต่อการใช้) ฉันจำได้ว่าเมื่อฉันถูกบังคับให้ใช้ vim เป็นครั้งแรก (sysadmins ปฏิเสธที่จะติดตั้ง emacs!) โค้งการเรียนรู้ดังนั้นฉันค่อนข้างเห็นอกเห็นใจ มันเกิดขึ้นกับฉันมากกว่าที่จะแนะนำให้รู้จักกับnano(ซึ่งพวกเขาอาจจะไม่เคยผ่านมาแล้ว) มันอาจเป็นไปได้ที่จะตั้งค่าเมนูที่คล้ายกับนาโนในกลุ่มเพื่อให้การเปลี่ยนแปลงง่ายขึ้น (ฉันได้พบไฟล์. vimrc ที่เป็นมิตรสำหรับผู้เริ่มต้นแล้ว แต่มันไม่มีอะไรเหมือนเมนูสไตล์นาโน)

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


3
ตอนนี้อยู่ในความช่วยเหลือเป็นกลุ่ม: :h console-menus.
Alexey

@ Alexey: ขอบคุณ! มันมีประโยชน์มากที่จะรู้ว่า ... ถ้าฉันเลื่อนลงไปที่หัวข้อ "5.2 การสร้างเมนูใหม่" ที่ดูเหมือนว่ามันจะทำในสิ่งที่ฉันต้องการ
iconoclast

คำตอบ:


18

ใช่มันเป็นไปได้ คุณสามารถโหลดmenu.vim(นิยามเมนู gvim เริ่มต้น) หรือคุณสามารถเริ่มจากศูนย์และสร้างของคุณเองจากนั้นเข้าถึง:emenuได้ สิ่งนี้ไม่ได้ให้เมนูที่สามารถมองเห็นได้เสมอเหมือนคุณ มันช่วยให้คุณสามารถนำทางเมนูโดยใช้การกรอกข้อมูลในแท็บบรรทัดคำสั่ง

หากผู้ใช้ไม่มี vimrc คุณจะต้องเริ่มต้นด้วยการปิดใช้งานความเข้ากันได้ของ vi:

:set nocompatible

เปิดใช้งานเสร็จสิ้นบรรทัดคำสั่งบนสมาร์ท<Tab>(เปิดใช้งานรายการตัวเลือกที่เป็นไปได้ทั้งหมดและการนำผลกับ<Up>, <Down>, <Left>, <Right>และ<Enter>):

:set wildmenu

ทำการกดซ้ำรอบระหว่างตัวเลือกการจับคู่ทั้งหมด:

:set wildmode=full

โหลดเมนูเริ่มต้น (สิ่งนี้จะเกิดขึ้นโดยอัตโนมัติใน gvim แต่ไม่ใช่ใน terminal vim):

:source $VIMRUNTIME/menu.vim

หลังจากสี่คำสั่งเหล่านั้นคุณสามารถทริกเกอร์การเติมเมนูด้วยตนเองโดยเรียกใช้การเติมแท็บให้เสร็จสมบูรณ์บน:emenuคำสั่งโดยทำ:emenu<space><tab>

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

ทำให้ Ctrl-Z ทำหน้าที่เหมือนกับการกดปุ่ม<Tab>โต้ตอบบนบรรทัดคำสั่ง:

:set wildcharm=<C-Z>

และสร้างการเชื่อมโยงที่จะ:emenuทำให้การเติมสำเร็จสมบูรณ์โดยอัตโนมัติ:

:map <F4> :emenu <C-Z>

2
ยอดเยี่ยม! ให้ฉันรู้ว่าฉันจะซื้อเบียร์ให้คุณได้ยังไง!
iconoclast

2

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

เป็นกลุ่ม-Venu

ฉันได้เขียนปลั๊กอินเมนูขนาดเล็กที่อนุญาตให้คุณกำหนดเมนูสำหรับแต่ละประเภทไฟล์ที่คุณอาจแก้ไขด้วยเสียงเรียกเข้า ด้วยวิธีนี้คุณสามารถกำหนดตัวเลือกเมนู 'รวบรวม' สำหรับประเภทไฟล์ที่แตกต่างกันและเริ่มต้นคำแนะนำที่ถูกต้องในการรวบรวมรหัสขึ้นอยู่กับไฟล์ที่คุณกำลังแก้ไข (.py, .c, .c ++, ... ) หรือสร้างเมนูย่อยสำหรับคำสั่งปลั๊กอิน 'Table' ในไฟล์ markdown

ลองใช้งานได้ที่นี่: https://github.com/Timoses/vim-venu

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

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