(Terminal tabanlı) vim'de menüler oluşturmak ve kullanmak mümkün müdür?


18

Öncelikle Windows tabanlı bir şirketteki geliştiriciler için sanallaştırılmış Linux kutuları (yerel geliştirme sunucuları olarak) kuruyorum ve bazı geliştiriciler vim (diğer şeylerin yanı sıra) hakkında olumsuz çatlaklar yapıyor. (Görünüşe göre Linux / Unix'i bir şekilde temsil ediyorlar ve ortamın kullanımı oldukça zor. öğrenme eğrisi, bu yüzden biraz sempatikim. nanoGeçişi kolaylaştırmak için vim'de nano benzeri menüler kurmanın mümkün olabileceğini (muhtemelen hiç geçmeyecekleri) tanıtmak mümkün oldu. (Onları vermek için çok başlangıç ​​dostu bir .vimrc dosyası buldum, ancak nano tarzı menüler gibi bir şey yok.)

Tek sorun, vim'de (gvim değil) menüler kurmanın mümkün olduğunu iddia ettiğim tek şeydi ve sorunu düzeltme girişimlerim beni çözecek başka bir sorunla bıraktı. Çok fazla zaman harcamadan önce bunun mümkün olup olmadığını bilmek istiyorum, çünkü nasıl yapılacağı hakkında çok az bilgi var.


3
Şimdi bu Vim yardımı içindedir: :h console-menus.
Alexey

@Alexey: teşekkürler! bunu bilmek çok yardımcı olur ... "5.2 Yeni Menüler Oluşturma" bölümüne ilerlersem, istediğim gibi olur.
iconoclast

Yanıtlar:


18

Evet mümkün. Sen yükleyebilirsiniz menu.vim(varsayılan gvim menü tanımları), ya da sadece sıfırdan başlamak ve kendi yaratmak, daha sonra bunları aracılığıyla erişebilir :emenu. Bu size nano benzeri her zaman görünür menüler sağlamaz; komut satırı sekmesi tamamlamayı kullanarak menülerde gezinmenizi sağlar.

Kullanıcının vimrc'si yoksa vi uyumluluğunu devre dışı bırakarak başlamak istersiniz:

:set nocompatible

Akıllı komut satırı tamamlamayı etkinleştir <Tab>(etkinleştirmek mümkün olan tüm seçenekleri gösteren ve sonuçları gezinme <Up>, <Down>, <Left>, <Right>, ve <Enter>):

:set wildmenu

Eşleşen tüm seçenekler arasında tekrarlı basışlar döngüsü yapın:

:set wildmode=full

Varsayılan menüleri yükleyin (bu otomatik olarak gvim'de olur, ancak terminal vim'de olmaz):

:source $VIMRUNTIME/menu.vim

Bu dört komuttan sonra :emenukomutta sekme tamamlamayı çağırarak menü tamamlamayı el ile tetikleyebilirsiniz.:emenu<space><tab>

Sekme tuşunu ve ok tuşlarını ve enter tuşunu kullanarak sonuçlarda gezinebilirsiniz (her ikisi de alt menüleri genişletir ve öğeleri seçer). Daha sonra bir adım daha ileri giderek ve :emenuher seferinde yazmak zorunda kalmadan menüyü açmak için bir eşleme bağlayarak bunu daha kolay hale getirebilirsiniz :

Bir eşlemedeki Ctrl-Z'yi <Tab>komut satırında etkileşimli olarak basmak gibi davranın :

:set wildcharm=<C-Z>

Ve :emenusizin için otomatik olarak tamamlamayı gerektiren bir ciltleme yapın:

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

2
Parlak! Sana nasıl bira alabileceğimi söyle!
iconoclast

2

Kullandığım eklentiler için tüm komutları ve tuş kombinasyonlarını hatırlayamıyorum sorunum vardı. Ayrıca, yeni anahtar eşlemeleri ayarlamak veya bunlara erişmek için komutları icat etmek zorunda kalmadan komutları hızlı bir şekilde yürütmek için basit yollara sahip olmak istedim.

Vim-Venu

Vim ile düzenleyebileceğiniz her dosya türü için menüleri tanımlamanızı sağlayan küçük bir vim menü eklentisi yazdım . Bu şekilde, farklı dosya türleri için 'Derle' menü seçeneğini tanımlayabilir ve düzenlediğiniz dosyaya (.py, .c, .c ++, ...) bağlı olarak kodu derlemek için doğru talimatları başlatabilirsiniz. Veya bir markdown dosyasında 'Table' eklenti komutları için bir alt menü oluşturun.

Buradan kontrol edin: https://github.com/Timoses/vim-venu

Bir yan not olarak: Herkesin kendi favori metin düzenleyicisini seçmesi gerektiğini düşünüyorum. Vim'in küçük bir engeli var (öğrenmeye değer!). Birisi öğrenmeye istekli değilse, vim o kişi için çok fazla fayda sağlamaz.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.