Største forskelle mellem Vim og vi

I dag besluttede jeg at prøve vi i stedet for Vim; Jeg ville se, hvor anderledes det er.

Jeg bemærkede overhovedet ikke meget forskelle. Det største, jeg bemærkede, var, hvordan vi ikke sagde -- INSERT -- da jeg gik i indføringstilstand, og der var nogle mindre grænsefladesforskelle.

Dette fik mig til at spekulere på, hvad er de største forskelle mellem vi og Vim?

Kommentarer

  • Du er selvfølgelig ikke ‘ t ved hjælp af mange avancerede funktioner i vim. blokvælge, søg efter ord under markør, forøgelsesnummer under markør, syntaksfremhævning osv.
  • Relateret post – Hvad er forskellen mellem Vi og Vim?
  • Der er nogle åbenlyse rart at have som udvidet nøglesupport. Piletasterne fungerer i modsætning til hjkl.

Svar

Der er faktisk en hjælpekommando i Vim til at fortælle dig om forskellene: :help vi_diff (bemærk understregningen: :help vi_diff)

Fra Vims websted er de største:

ubegrænset fortryde

Du kan udføre xxxx og fortryde hver af de fire sletninger. Hvornår var sidste gang du skrev ” jjjj ” og derefter fandt ud af, at caps lock-tasten var tændt? Du forbandt ved et uheld fem linjer sammen, og Vi kan fortryd kun den sidste kommando. I Vim kan du fortryde alle de fire ” J ” kommandoer og få din originale tekst tilbage.

portabilitet

Vi er kun tilgængelig på Unix. Vim fungerer på MS-Windows, Maci ntosh, Amiga, OS / 2, VMS, QNX og andre systemer. Og også på alle Unix-systemer.

syntaks fremhævning

Vim kan være programmeret til at fremhæve dele af bufferen i forskellige farver eller stilarter, baseret på den filtype, der redigeres. Der er hundreder af syntaksfremhævende regelsæt med Vim.

GUI

Vim fungerer godt på en konsol, men den kan køre indbygget i mange GUIer, herunder X Windows, Mac OS og Microsoft Windows. Det bruger native GUI-widgets til at rulle, opdele buffere og menuing. Det kan også tale med udklipsholderen.

Kommentarer

Svar

Vim har mange funktioner, som Vi ikke har, selv funktioner, der ikke er tydeligt “avancerede” funktioner.

I praksis betyder det, at hvis du er vant til Vi, vil du sandsynligvis støde på meget få forskelle, hvis du begynder at bruge Vim (eller en anden Vi-klon), men hvis du er brugt til Vim og hvis dine “reflekser” inkluderer funktioner som fremhævning af visuel tilstand, enhver nøglehandling, der starter med “g” eller “z”, enhver teksthandling med “i” eller “a” [f.eks. “daw” for at slette et ord under markøren], navigere med piletasterne i insert-tilstand osv., vil du opdage, at de ikke fungerer i Vi.

Der er også spørgsmålet om, hvad der præcist du brugte, når du siger, at du “prøvede Vi”. På mange systemer kører “vi” faktisk Vim, i en tilstand, hvor nogle af disse forskelle gælder (standard showmode, som du observerede, piletasterne fungerer ikke i insert-tilstand), og andre fungerer ikke (visuel tilstand og g / z-taster fungerer ), og nogle funktioner afhænger af en kompileringstid, der undertiden er deaktiveret i den “lille Vim”, der bruges til dette (tekstobjekter, såsom “aw” et ord, er et af disse). Du får ikke disse, hvis du kører real Vi, eller hvis “vi” er en anden klon med færre eller forskellige funktioner end Vim, såsom nvi eller VILE.

Og i det uklare side, mens “lille Vim i Vi-tilstand” naturligvis ikke har nogen funktioner, som en fuld Vim ikke har, er der et par funktioner i den ægte originale Vi, som vim mangler. Disse er dokumenteret i :help vi-differences.

Kommentarer

  • Jeg ‘ satsede stærkt på, at OP faktisk har en ” lille vim ” vi.
  • du siger, at på mange systemer v i command kører faktisk vim. Så hvordan finder jeg ud af, om jeg virkelig kører vi eller vim?
  • @firstpostcommenter Nå, det ‘ vil stort set stadig se ud som vim – ~ på venstre side af skærmen vil være blå i farven, og versionens meddelelsestekst vises muligvis stadig i midten af skærmen, hvis du starter den af sig selv uden at angive en fil.Hvis du ‘ er meget bekymret for, hvilken editor du kører, er der også andre vi-kloner, der muligvis installeres i stedet for, og den ægte ” vi ” er meget sjældent i linux / bsd-distributioner.

Svar

De fleste sammenligninger giver Vim mere funktionalitet end vi, men der er en undtagelse. Der var en “åben” tilstand i vi, og Vim har ikke virkelig denne tilstand.

Åben tilstand er en enkeltlinjetilstand, der blev brugt tilbage på dagen med terminaler, der ikke havde elektronisk viser, dvs. teletyper, bogstavtrykkere og lignende, og også med skærme, hvor markøren kun forbliver i bunden.

Jeg ved, at der er dokumentation derude, der siger, at Vim simulerer åben tilstand, men min erfaring er, at det gør det ikke. For jeg har set det brugt med vi med mine egne øjne, og jeg har aldrig set Vim gøre det. Det ser ud til, at Vim bare bruger kommandoen open til at åbne og redigere en fil i visuel tilstand. Jeg tror, at Vims officielle dokumentation siger, at den ikke understøtter åben tilstand.

Kommentarer

  • I har ex-vi.sourceforge.net installeret, hvilket er en port til det originale Vi. Hvordan starter jeg denne åbne tilstand? Startsiden nævner det, når vi taler om ^R, men giver ingen anden hjælp. :open some/file returnerer open: No such command from open/visual.
  • @muru Q for at indtaste ex derefter open. z for at vise konteksten for den aktuelle linje, når du ‘ er i åben tilstand. For at bakke ud skal du Q og derefter vi.

Svar

Ofte stillede spørgsmål om Vim har en velformateret liste: https://vimhelp.org/vim_faq.txt.html#faq-1.4

Uddrag fra FAQ:

  • Fortryd flere niveauer
  • Faner, flere vinduer og buffere
  • Fleksibel indsættelsestilstand (kan bruges piletaster i Indsæt-tilstand)
  • Makroer
  • Visuel tilstand (vælg visuelt tekstsektioner)
  • Bloker operatører
  • Online hjælpesystem
  • Redigering af kommandolinje og historik
  • Fuldførelse af kommandolinje (afslutning af fane)
  • Vandret rulning (lange linjer)
  • Forbedringer af Unicode og internationalisering .

Svar

Jeg synes det er meget svært at foretage en sammenligning på grund af de ændringer i vi, der har skete over tid.

Da jeg var på college, brugte jeg almindelig vanille vi på en stum terminal (og også på en terminalemulator på en Mac), der sluttede til mainframes ved hjælp af System V. Du kan ikke engang finde ud af, at mere.

Men jeg er ikke engang sikker på, at det var sandt vi. Omkring det tidspunkt blev der lavet mange kloner og porte, fordi vi ikke var open source på det tidspunkt. Og da leverandører lavede kloner, tilføjede de funktioner, der ikke var i vi. Historien er lidt indviklet. Du kan læse det på Wikipedia og andre steder.

Så hvis du ikke brugte bestemte leverandører / hardware, brugte du ikke vi, men noget ligesom vi.

Men jeg kan huske, at vi (eller klonen, jeg brugte) var meget minimalistiske i sin grænseflade (ingen farver, ingen INSERT-etiketter, ingen mulige fortrydelser osv.), men alligevel stærke i, hvad det rent faktisk kunne udrette. Meget praktisk.

Skriv et svar

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *