Grootste verschillen tussen Vim en vi

Vandaag heb ik besloten om vi te proberen in plaats van Vim; Ik wilde zien hoe anders het is.

Ik heb helemaal niet veel verschillen opgemerkt. Het grootste wat me opviel was dat vi niet zei -- INSERT -- toen ik in de invoegmodus ging, en er waren enkele kleine interface-verschillen.

Dit deed me afvragen, wat zijn de grootste verschillen tussen vi en Vim?

Opmerkingen

  • Het is duidelijk dat je ‘ niet veel geavanceerde functies van vim gebruikt. blok selecteren, zoeken naar woord onder cursor, nummer verhogen onder cursor, syntaxis accentueren etc.
  • Gerelateerd bericht – Wat is het verschil tussen Vi en Vim?
  • Er zijn voor de hand liggende handige dingen, zoals uitgebreide toetsondersteuning. Pijltjestoetsen werken in tegenstelling tot hjkl.

Answer

Er is eigenlijk een help-commando in Vim om je te vertellen over de verschillen: :help vi_diff (let op het onderstrepingsteken: :help vi_diff)

Van Vim “s site zijn de grootste:

onbeperkt ongedaan maken

Je kunt xxxx doen en elk van de vier verwijderingen ongedaan maken. Wanneer was de de laatste keer dat je ” jjjj ” typte en ontdekte dat de caps lock-toets was ingeschakeld? Je hebt per ongeluk vijf regels samengevoegd en Vi kan maak alleen het laatste commando ongedaan. In Vim kun je alle vier ” J ” commandos ongedaan maken en je originele tekst terughalen.

portabiliteit

Vi is alleen beschikbaar op Unix. Vim werkt op MS-Windows, Maci ntosh, Amiga, OS / 2, VMS, QNX en andere systemen. En ook op elk Unix-systeem.

syntaxisaccentuering

Vim kan geprogrammeerd om delen van de buffer in verschillende kleuren of stijlen te markeren, op basis van het type bestand dat wordt bewerkt. Er zijn honderden regelsets voor syntaxisaccentuering gebundeld met Vim.

GUI

Vim werkt goed op een console, maar het kan native worden uitgevoerd in veel GUIs, waaronder X Windows, Mac OS en Microsoft Windows. Het maakt gebruik van native GUI-widgets voor scrollen, buffers verdelen en menus. Het kan ook tegen het klembord praten.

Opmerkingen

  • Er worden nog enkele verschillen genoemd in de faq
  • Volgens het readme zijn sommige van die besturingssystemen niet langer ondersteund.

Answer

Vim heeft veel functies die Vi niet heeft, zelfs functies die niet duidelijk zijn “geavanceerde” functies.

In de praktijk betekent dit dat als u Vi gewend bent, u waarschijnlijk zeer weinig verschillen zult tegenkomen als u Vim (of een andere Vi-kloon) gaat gebruiken, maar als u gewend bent naar Vim en als uw “reflexen” functies bevatten zoals het markeren van visuele modus, elke toetsactie die begint met “g” of “z”, elke tekstactie met “i” of “a” [bijv. “daw” om een woord onder de cursor te verwijderen], navigeren met de pijltjestoetsen in de invoegmodus, enz., zul je zien dat die niet werken in Vi.

Er is ook de vraag wat precies je gebruikte toen je zei dat je “Vi probeerde”. Op veel systemen draait “vi” eigenlijk Vim, in een modus waarin sommige van deze verschillen van toepassing zijn (standaard showmodus zoals je hebt opgemerkt, pijltjestoetsen werken niet in invoegmodus) en andere niet (visuele modus en g / z-toetsen werken ), en sommige functies zijn afhankelijk van een compilatietijdoptie die soms wordt uitgeschakeld in de “kleine Vim” die hiervoor wordt gebruikt (tekstobjecten, zoals “aw” een woord, zijn een van deze). deze als je de echte Vi gebruikt, of als “vi” een andere kloon is met minder of andere functies dan Vim, zoals nvi of VILE.

En, op het obscure kant, terwijl “kleine Vim in Vi-modus” duidelijk geen functies heeft die een volledige Vim niet heeft, zijn er een paar kenmerken van de echte originele Vi die vim mist. Deze zijn gedocumenteerd in :help vi-differences.

Reacties

  • Ik ‘ wed sterk dat OP daadwerkelijk een ” tiny vim ” vi.
  • je zegt dat op veel systemen de v i commando voert eigenlijk vim uit. Dus hoe kom ik erachter of ik echt vi of vim draai?
  • @firstpostcommenter Nou, het ‘ ziet er eigenlijk nog steeds uit als vim – de ~ op de de linkerkant van het scherm is blauw van kleur en de versieaankondigingstekst kan nog steeds in het midden van het scherm verschijnen als u deze zelf start zonder een bestand op te geven.Als je ‘ erg bezorgd bent over welke editor je gebruikt, zijn er mogelijk ook andere vi-klonen die kunnen worden geïnstalleerd, en de echte ” vi ” is zeer zeldzaam in linux / bsd-distributies.

Answer

De meeste vergelijkingen geven meer functionaliteit aan Vim dan aan vi, maar er is één uitzondering. Er was een “open” modus in vi, en Vim heeft deze modus niet echt.

Open modus is een enkellijnsmodus die vroeger werd gebruikt met terminals die geen elektronische displays, dwz teletypes, letterprinters en dergelijke, en ook met displays waarbij de cursor alleen onderaan blijft.

Ik weet dat er documentatie is die zegt dat Vim de open modus simuleert, maar mijn ervaring is dat dat doet het niet. Want ik heb het met mijn eigen ogen zien gebruiken met vi, en ik heb Vim het nog nooit zien doen. Het lijkt erop dat Vim gewoon het open commando gebruikt om te openen en bewerk een bestand in visuele modus. Ik geloof dat in de officiële documentatie van Vim staat dat het de open modus niet ondersteunt.

Reacties

  • I ex-vi.sourceforge.net hebben geïnstalleerd, wat een poort is van de originele Vi. Hoe start ik deze open modus? De manpage vermeldt het als het over ^R gaat, maar geeft verder geen hulp. :open some/file retourneert open: No such command from open/visual.
  • @muru Q om ex in te voeren modus, dan open. z om de context van de huidige regel weer te geven zodra u ‘ in de open modus bent. Om terug te gaan, Q en vervolgens vi.

Antwoord

De Vim FAQ heeft een goed opgemaakte lijst: https://vimhelp.org/vim_faq.txt.html#faq-1.4

Fragment uit de FAQ:

  • Ongedaan maken op meerdere niveaus
  • Tabbladen, meerdere vensters en buffers
  • Flexibele invoegmodus (kan pijltjestoetsen in invoegmodus)
  • macros
  • visuele modus (visueel geselecteerde tekstgedeelten)
  • blokoperatoren
  • online helpsysteem
  • Bewerken en geschiedenis via opdrachtregel
  • Voltooiing van opdrachtregel (aanvulling van tabbladen)
  • Horizontaal scrollen (lange regels)
  • Verbeteringen in Unicode en internationalisering .

Antwoord

Ik denk dat het erg moeilijk is om de vergelijking te maken, vanwege de veranderingen in vi die gebeurde in de loop van de tijd.

Toen ik op de universiteit zat, gebruikte ik plain-vanilla vi op een domme terminal (en ook op een terminalemulator op een Mac) die verbinding maakte met mainframes met behulp van System V. Je kunt dat zelfs niet vinden meer.

Maar ik weet niet eens zeker of dat waar was vi. Rond die tijd werden er veel klonen en ports gemaakt omdat vi op dat moment niet open-source was. En toen leveranciers klonen maakten, voegden ze functies toe die niet in vi waren. De geschiedenis is nogal ingewikkeld. Je kunt het lezen op Wikipedia en elders.

Dus als je “bepaalde leveranciers / hardware niet gebruikte, gebruikte je” geen vi, maar iets zoals vi.

Maar ik herinner me dat vi (of de kloon die ik gebruikte) erg minimalistisch was in zijn interface (geen kleuren, geen INSERT-labels, geen meervoudige ongedaan maken, enz.) maar toch krachtig in wat het werkelijk kon bereiken. Heel praktisch.

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *