Cum să folosiți eficient Vim: wildmenu (Programare, Vim)

skippr a intrebat.

Sunt un pic confuz în ceea ce privește utilizarea meniurilor din Vim. Am set wildmenu și set wildmode=list:longest,full dar nu înțeleg pe naiba cum să invoc și să folosesc funcția de completare.

Este utilă această funcție? De ce și cum? Ce fel de completare face mai exact? Cu alte cuvinte, ce determină conținutul listei de completare?

Orice sfaturi și exemple de utilizare ar fi apreciate.

Comentarii

  • Am set wildmenu. și îl găsesc destul de util. Nu mai trebuie să dau multe file dacă elementul pe care îl doresc nu apare în bara de indicii. –  > Por Frank Cheng.
4 răspunsuri
romainl

wildmenu și wildmode sunt utilizate pentru completarea liniei de comandă. Cel mai simplu mod de a încerca ar fi cu :color <Tab>: linia de comandă este „expandată” pe verticală cu o listă a tuturor culorilor disponibile pe mașina dvs. afișată în coloane și o bandă orizontală pe care puteți naviga cu <Tab> (înainte) și <S-Tab> (înapoi).

Comportamentul de completare a liniei de comandă și wildmenu depind de wildmode.

A se vedea :help wildmode și :help wildmenu pentru mai multe detalii.

Comentarii

  • Deci, ceea ce primesc este autocompletare pentru comenzile vim! Ceea ce are mai mult sens. Este capabil să meargă dincolo de asta? Poate că detectarea sintaxei pentru a completa automat numele funcțiilor/variabilelor în, să zicem, fișiere .cpp? –  > Por skippr.
  • Nu wildmode/wildmenu nu poate face nimic în afară de completarea liniei de comandă. Vim are un alt mecanism de completare a codului numit „omni-completare”. Citiți :help omni-completion pentru mai multe informații. –  > Por romainl.
Pablo Olmos de Aguilera C.

Probabil că cea mai confortabilă opțiune, cel puțin pentru mine este:

set wildmenu
set wildmode=longest:full,full

Asta înseamnă că la prima <Tab> se va completa până la cel mai lung șir comun și se va invoca wildmenu (un mic meniu orizontal și discret). La următoarea <Tab> va completa prima alternativă și va începe să parcurgă ciclic restul. Puteți merge înainte și înapoi cu <Tab> și <S-Tab> respectiv

Un exemplu minunat despre cum wildmenu este foarte util, este să completezi tampoanele, să folosești configurația pe care am postat-o și apoi să încerci:

:b<Tab>

Comentarii

  • Puteți explica cum funcționează? Pagina de ajutor nu spune nimic despre :. –  > Por saga.
  • Este descrisă în ajutorul vim: vimdoc.sourceforge.net/htmldoc/options.html#’wildmode’‘ (dar trebuie să vă uitați în wildmode, , și nu wildmenu) –  > Por Pablo Olmos de Aguilera C..
  • Vrei să spui :b <Tab> în loc de :b<Tab> ? –  > Por tonywoode.
trusktr

Favoritul meu este

set wildmenu
set wildmode=longest:list,full

Prima filă va completa până la cel mai lung șir de caractere și va afișa lista de corespondență, apoi a doua filă va completa până la prima corespondență completă și va deschide meniul wild.

Quang Linh Le

:set wildmode=list:longest vă permite să extindeți wildmenu.

:set wildmenu vă permite să utilizați <Left> sau <Right> pentru a naviga prin listele de completare.

Comentarii

  • Există o modalitate prin care, dacă apăsați tab, să puteți parcurge listele de completare? –  > Por hlin117.
  • doar :set wildmenu=list:full în schimb. –  > Por Quang Linh Le.
  • Linh: Aceasta este atât de aproape de ceea ce vreau; s-ar putea să nu fi fost clar cu întrebarea mea anterioară. Există o modalitate prin care să puteți derula prin wildmenu extins? Această funcționalitate este similară cu zsh: i.stack.imgur.com/GvC4A.png –  > Por hlin117.
  • @hlin117, din păcate nu am văzut această funcționalitate implementată în Vim. Dacă este doar pentru comandă, Unite are o interfață pentru aceasta (gândiți-vă la „Goto Anything”)… –  > Por Quang Linh Le.

Tags: