I dag bestemte jeg meg for å prøve vi i stedet for Vim; Jeg ønsket å se hvor annerledes det er.
Jeg la ikke merke til mange forskjeller i det hele tatt. Det største jeg la merke til var hvordan vi ikke sa -- INSERT --
da jeg gikk inn i innsettingsmodus, og det var noen mindre grensesnittforskjeller.
Dette fikk meg til å lure på, hva er de største forskjellene mellom vi og Vim?
Kommentarer
- Du er tydeligvis ikke ‘ t ved å bruke mange avanserte funksjoner i vim. blokkvalg, søk etter ord under markør, trinnnummer under markør, syntaksmarkering osv.
- Relatert innlegg – Hva er forskjellen mellom Vi og Vim?
- Det er noen åpenbare hyggelige ting som utvidet nøkkelstøtte. Piltastene fungerer i motsetning til hjkl.
Svar
Det er faktisk en hjelpekommando i Vim for å fortelle deg om forskjellene: :help vi_diff
(merk understrekingen: :help vi_diff
)
Fra Vims nettsted er de største:
ubegrenset angre
Du kan gjøre xxxx og angre hver av de fire slettene. Når var sist du skrev » jjjj » og deretter fant ut at caps lock-tasten var på? Du sluttet tilfeldigvis fem linjer sammen, og Vi kan angre bare den siste kommandoen. I Vim kan du angre alle fire » J » kommandoer og få tilbake den originale teksten.
portabilitet
Vi er bare tilgjengelig på Unix. Vim fungerer på MS-Windows, Maci ntosh, Amiga, OS / 2, VMS, QNX og andre systemer. Og også på alle Unix-systemer.
syntaks som fremhever
Vim kan være programmert til å markere deler av bufferen i forskjellige farger eller stiler, basert på filtypen som redigeres. Det er hundrevis av syntaks-uthevingsregelsett samlet med Vim.
GUI
Vim fungerer bra på en konsoll, men den kan kjøres naturlig i mange GUIer, inkludert X Windows, Mac OS og Microsoft Windows. Den bruker innfødte GUI-widgets for å bla, dele buffere og menyer. Det kan også snakke med utklippstavlen.
Kommentarer
- Noen flere forskjeller er nevnt i vanlige spørsmål
- I følge readme er noen av disse operativsystemene støttes ikke lenger.
Svar
Vim har mange funksjoner som Vi ikke har, til og med funksjoner som ikke er åpenbart «avanserte» funksjoner.
I praksis betyr dette at hvis du er vant til Vi, vil du sannsynligvis støte på svært få forskjeller hvis du begynner å bruke Vim (eller en annen Vi-klon), men hvis du er brukt til Vim og hvis «reflekser» inkluderer funksjoner som fremheving av visuell modus, hvilken som helst nøkkelhandling som begynner med «g» eller «z», hvilken som helst teksthandling med «i» eller «a» [f.eks. «daw» for å slette et ord under markøren], navigere med piltastene i innsettingsmodus osv., vil du oppdage at de ikke fungerer i Vi.
Det er også spørsmålet om hva akkurat du brukte når du sa at du «prøvde Vi». På mange systemer kjører «vi» faktisk Vim, i en modus der noen av disse forskjellene gjelder (standard showmodus slik du observerte, piltastene fungerer ikke i innsettingsmodus) og andre ikke (visuell modus og g / z-tastene fungerer ), og noen funksjoner avhenger av et kompilasjonsalternativ som noen ganger er deaktivert i «bittesmå Vim» som brukes til dette (tekstobjekter, for eksempel «aw» et ord, er en av disse). Du får ikke disse hvis du kjører ekte Vi, eller hvis «vi» er en annen klon med færre eller andre funksjoner enn Vim, for eksempel nvi eller VILE.
Og i det uklare side, mens «liten Vim i Vi-modus» åpenbart ikke har noen funksjoner som en full Vim ikke har, er det noen få funksjoner i den ekte originale Vi som vim mangler. Disse er dokumentert i :help vi-differences
.
Kommentarer
- Jeg ‘ satser tungt på at OP faktisk har en » liten vim » vi.
- du sier at på mange systemer v jeg kommando kjører faktisk vim. Så hvordan kan jeg finne ut om jeg virkelig kjører vi eller vim?
- @firstpostcommenter Vel, det ‘ vil i utgangspunktet fremdeles se ut som vim – ~ på venstre på skjermen vil være blå i fargen, og versjonens kunngjøringstekst kan fremdeles vises midt på skjermen hvis du starter den av seg selv uten å spesifisere en fil.Hvis du ‘ er veldig opptatt av hvilken editor du kjører, er det også andre vi-kloner som kan installeres i stedet, og den ekte » vi » er veldig sjelden i linux / bsd-distribusjoner.
Svar
De fleste sammenligninger gir mer funksjonalitet til Vim enn vi, men det er ett unntak. Det var en «åpen» modus i vi, og Vim har ikke denne modusen.
Åpen modus er en enkeltlinjemodus som ble brukt på dagen med terminaler som ikke hadde elektronisk viser, dvs. teletyper, brevskrivere og lignende, og også med skjermer der markøren forblir bare nederst.
Jeg vet at det er dokumentasjon der ute som sier Vim simulerer åpen modus, men min erfaring er at det gjør det ikke. For jeg har sett det brukt med vi med mine egne øyne, og jeg har aldri sett Vim gjøre det. Det ser ut til at Vim bare bruker open
-kommandoen bare for å åpne og redigere en fil i visuell modus. Jeg tror at Vims offisielle dokumentasjon sier at den ikke støtter åpen modus.
Kommentarer
- I har ex-vi.sourceforge.net installert, som er en port til den opprinnelige Vi. Hvordan starter jeg denne åpne modusen? Startsiden nevner det når vi snakker om
^R
, men gir ingen annen hjelp.:open some/file
returnereropen: No such command from open/visual
. - @muru
Q
for å angi eks modus, deretteropen
.z
for å vise konteksten til gjeldende linje når du ‘ er i åpen modus. For å sikkerhetskopiere,Q
og derettervi
.
Svar
Vanlige spørsmål om Vim har en godt formatert liste: https://vimhelp.org/vim_faq.txt.html#faq-1.4
Utdrag fra FAQ:
- Angre flernivå
- Faner, flere vinduer og buffere
- Fleksibel innsettingsmodus (kan brukes piltastene i Sett inn modus)
- Makroer
- Visuell modus (visuelt velg tekstseksjoner)
- Blokker operatører
- Online hjelpesystem
- Kommandolinjeredigering og historie
- Kommandolinjefylting (fullføring av fane)
- Horisontal rulling (lange linjer)
- Forbedringer av Unicode og internasjonalisering .
Svar
Jeg synes det er veldig vanskelig å sammenligne på grunn av endringene i vi som har skjedde over tid.
Da jeg gikk på college, brukte jeg vanlig vanilje vi på en dum terminal (og også på en terminalemulator på en Mac) som koblet seg til hovedbilder ved hjelp av System V. Du kan ikke engang finne ut at noen mer.
Men jeg er ikke engang sikker på at det var sant vi. Omtrent på den tiden ble det laget mange kloner og porter fordi vi ikke var åpen kildekode på den tiden. Og da leverandører laget kloner, la de til funksjoner som ikke var i vi. Historien er litt innviklet. Du kan lese den på Wikipedia og andre steder.
Så hvis du ikke brukte visse leverandører / maskinvare, brukte du ikke vi, men noe som vi.
Men jeg husker at vi (eller klonen jeg brukte) var veldig minimalistiske i grensesnittet (ingen farger, ingen INSERT-etiketter, ingen mulige angrer osv.), men likevel kraftig i det den faktisk kunne oppnå. Veldig praktisk.