Vim (text editor)
![]() | |
![]() Vim in a Terminal-Emulator | |
Originalautor (en) | Bram Moolenaar |
---|---|
Erstveröffentlichung | 2. November 1991 |
Stabile Version | 9.0[1] ![]() |
Repository | |
Geschrieben in | C, Vim -Skript |
Betriebssystem | Unix, Linux, Windows NT, MS-DOS, Mac OS, iOS, Android, Haiku, Amigaos, Morphos |
Typ | Texteditor |
Lizenz | Vim[2][3][4] |
Webseite | www |
Vim (/vɪm/;[5] eine Kontraktion von Vi verbessert) ist ein frei und offen, Bildschirmbasiert Texteditor Programm. Es ist ein verbesserter Klon von Bill Joy's vi. Vims Autor, Bram Moolenaar, abgeleitete Vim von einem Hafen der Stevie Herausgeber für Amiga[6] und veröffentlichte 1991 eine Version für die Öffentlichkeit Befehlszeilenschnittstelle und als eigenständige Anwendung in a grafische Benutzeroberfläche. Vim wird unter der VIM -Lizenz veröffentlicht, die einige enthält Wohltätigkeitswaren Klauseln, die Benutzer ermutigen, die die Software genießen, um Kinder zu spenden Uganda.[4] Die VIM -Lizenz ist mit der kompatibel GNU Allgemeine öffentliche Lizenz durch eine spezielle Klausel, die die Verteilung modifizierter Kopien unter dem erlaubt GNU GPL Version 2.0 oder höher.[4]
Seit seiner Veröffentlichung für die Amiga, plattformübergreifend Die Entwicklung hat es verfügbar gemacht viele andere Systeme. Im Jahr 2006 wurde es unter dem beliebtesten Herausgeber gewählt Linux Journal Leser;[7] 2015 die Paketüberfluss Die Entwicklerumfrage ergab, dass es sich um den dritthäufigsten Texteditor handelt.[8] und 2019 das fünft beliebteste Entwicklungsumfeld.[9]
Geschichte
Vims Vorläufer, Stevie (ST -Herausgeber für VI -Enthusiasten)wurde von Tim Thompson für die erstellt Atari st 1987[10][11] und weiterentwickelt von Tony Andrews[10][12] und G.R. (Fred) Walter.[13][14]
Stützt seine Arbeit auf Stevie, Bram Moolenaar begann an Vim für die zu arbeiten Amiga Computer im Jahr 1988 mit der ersten Veröffentlichung (VIM V1.14) im Jahr 1991.[15][16]
Zum Zeitpunkt seiner ersten Veröffentlichung war der Name "Vim" ein Akronym für "Vi Imitation", aber dies änderte sich Ende 1993 in "" Vi verbessert ".[17]
Veröffentlichung Geschichte | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Schnittstelle

Wie vi, Vims Schnittstelle basiert nicht auf Menüs oder Symbolen, sondern auf Befehlen in a Text Benutzeroberfläche; es ist GUI Modus, Gvimfügt Menüs und Symbolleisten für häufig verwendete Befehle hinzu, aber die volle Funktionalität wird immer noch durch seine ausgedrückt Befehlszeile Modus. VI (und im weiteren Sinne neigt VIM) dazu, dass ein Schreibraum seine Finger auf dem Heimreihe, was für a von Vorteil sein kann Berühren Sie Typist.[31]
Vim hat ein integriert Lernprogramm Für Anfänger namens Vimtutor. Es ist normalerweise zusammen mit VIM installiert, existiert jedoch als separate ausführbare Datei und kann mit einem Shell -Befehl ausgeführt werden.[32] Es gibt auch den vim Handbuch Das Details vims Funktionen und a FAQ. Dieses Handbuch kann innerhalb von VIM gelesen oder online gefunden werden.[33][34]
Vim verfügt auch über eine integrierte Help-Einrichtung (nutzt die :Hilfe
Befehl), mit dem Benutzer Befehle und Funktionen abfragen und navigieren können.
Modi
VIM hat 12 verschiedene Bearbeitungsmodi, von denen 6 Varianten der 6 Basismodi sind.[35] Die wichtigsten Modi sind:
- Normal Modus - Wird für Editorbefehle verwendet. Dies ist auch der Standardmodus, es sei denn, das
InsertMode
Option wird angegeben. - Visuell Modus - ähnlich wie der normale Modus, aber verwendet, um Bereiche des Textes hervorzuheben. Normale Befehle können auf dem hervorgehobenen Bereich ausgeführt werden, zum Beispiel zum Verschieben oder Bearbeiten einer Auswahl.
- Einfügung Modus - Ähnlich wie bei den meisten modernen Redakteuren. In diesem Modus können Puffer mit dem eingefügten Text geändert werden.
- Befehlszeile oder Cmdline Modus - Unterstützt eine einzelne Zeileneingabe am unteren Rand des VIM -Fensters. Normale Befehle (beginnend mit
:
) und einige andere Schlüssel für bestimmte Aktionen (einschließlich Mustersuche und den Filterbefehl) aktivieren diesen Modus. Nach Abschluss des Befehls kehrt VIM zum vorherigen Modus zurück.
Anpassung
VIM ist sehr anpassbar und erweiterbar und macht es zu einem attraktiven Tool für Benutzer, die eine große Menge an Kontrolle und Flexibilität gegenüber ihrer Textbearbeitungsumgebung erfordern.[36] Die Texteingabe wird durch eine Vielzahl von Funktionen erleichtert, die zur Erhöhung der Tastatureffizienz entwickelt werden. Benutzer können komplexe Befehle mit "wichtigen Zuordnungen" ausführen, die angepasst und erweitert werden können. Die Funktion "Aufnahme" ermöglicht die Erstellung von Makros So automatisieren Sie Sequenzen von Tastenanschlägen und rufen Sie interne oder benutzerdefinierte Funktionen und Zuordnungen auf. Abkürzungen, ähnlich wie Makros und wichtige Zuordnungen, erleichtern die Ausdehnung von kurzen Textzeichenfolgen in längere und können auch verwendet werden, um Fehler zu korrigieren. VIM verfügt außerdem über einen "einfachen" Modus für Benutzer, die nach einer einfacheren Textbearbeitungslösung suchen.[37]
Es gibt viele Plugins verfügbar, die VIM ausdehnen oder neue Funktionen hinzufügen. Diese Plugins sind normalerweise in der internen Skriptsprache von VIM VIMRSCIPT (auch als VIML bekannt) geschrieben.[38] kann aber auch in anderen Sprachen geschrieben werden.
Es gibt Projekte, die komplexe Skripte und Anpassungen zusammenbündeten und VIM in ein Tool für eine bestimmte Aufgabe verwandeln oder seinem Verhalten einen größeren Geschmack hinzufügen. Beispiele beinhalten Creme, was Vim dazu bringt, sich wie ein Click-and-Type-Editor oder Vimoutliner zu verhalten, was eine komfortable darstellt Outliner Für Benutzer von Unix-ähnlichen Systemen.
Funktionen und Verbesserungen gegenüber VI
Vim hat einen VI -Kompatibilitätsmodus, aber wenn dieser Modus nicht verwendet wird, hat VIM viele Verbesserungen gegenüber VI.[39] Selbst im Kompatibilitätsmodus ist VIM jedoch nicht vollständig mit VI kompatibel, wie in der definiert Einzel -Unix -Spezifikation[40] und Posix (z. B. unterstützt VIM nicht den offenen Modus von VI, nur den visuellen Modus). Die Entwickler von Vim geben an, dass es "sehr kompatibel mit VI" ist.[41]
Einige der Verbesserungen von VIM umfassen Fertigstellung, Vergleich und Verschmelzung von Dateien (bekannt als Vimdiff), ein umfassendes integriertes Hilfesystem, erweitert Reguläre Ausdrücke, Skriptsprachen (sowohl native als auch durch alternative Skriptinterpretspieler wie Perl, Python, Ruby, TCL usw.) einschließlich der Unterstützung für Plugins, a grafische Benutzeroberfläche (bekannt als GVIM), begrenzt integrierte Entwicklungsumgebung-ähnliche Funktionen, Maus Interaktion (sowohl mit als auch ohne GUI), FaltenBearbeitung von komprimierten oder archivierten Dateien in gzip, BZIP2, Postleitzahl, und Teer Format und Dateien über Netzwerkprotokollen wie z. Ssh, Ftp, und Http, Sitzungsstaat Erhaltung, Rechtschreibprüfung, geteilt (horizontal und vertikal) und Registerkartenfenster, Unicode und andere mehrsprachige Unterstützung, Satzstellung markieren, Trans-Sitzungsbefehl, Such- und Cursorposition Geschichten, Mehrfachebene und Verzweigungen rückgängig wiederholen Geschichte, die über Bearbeitungssitzungen und visuellen Modus bestehen kann.
Während des Ausführens speichert Vim die Änderungen des Benutzers in einer Swap -Datei mit der ".swp". Verlängerung. Die Swap -Datei kann verwendet werden, um nach einem Absturz wiederherzustellen. Wenn ein Benutzer versucht, eine Datei und eine Swap -Datei bereits zu öffnen, warnt VIM den Benutzer, und wenn der Benutzer fortgesetzt wird, verwendet VIM eine Swap -Datei mit der Erweiterung ".swo" (oder, wenn es bereits mehr als eine gibt Swap -Datei, ".swn", ".swm" usw.).[42][43] Diese Funktion kann deaktiviert werden.[44]
Vim -Skript
Vim -Skript (auch genannt Vimscript oder Viml)[45] ist der Skriptsprache in Vim eingebaut.[46] Basierend auf ex Redakteursprache des Originals vi Editor, frühe Versionen von VIM fügten Befehle für Steuerfluss und Funktionsdefinitionen hinzu. Seit Version 7 unterstützt das VIM -Skript auch erweiterte Datentypen wie z. Listen und Wörterbücher und (eine einfache Form von) Objekt orientierte Programmierung. Integrierte Funktionen wie z. Karte()
und Filter()
eine grundlegende Form von erlauben Funktionelle Programmierungund Vim Skript hat Lambda Seit Version 8.0. Vim script ist hauptsächlich in einem geschrieben imperativen Programmierstil.
Vim Makros kann eine Sequenz von enthalten normaler Modus Befehle, kann aber auch Ex -Befehle oder -funktionen aufrufen, die in VIM -Skript geschrieben wurden, um komplexere Aufgaben zu erledigen. Fast alle Erweiterungen (als Plugins oder häufiger Skripte bezeichnet) der Kern -VIM -Funktionalität werden in VIM -Skript geschrieben, aber Plugins können auch andere Sprachen wie wie Perl,[47] Python,[48] Lua,[49] Rubin,[50] Tcl,[51] oder Schläger.[52] Diese Plugins können manuell oder über einen Plugin-Manager wie Vundle, Pathogen oder VIM-Plug installiert werden.
VIM -Skriptdateien werden als einfacher Text gespeichert, ähnlich wie bei einem anderen Code, und die Dateiname -Erweiterung ist normalerweise .Vim
. Eine bemerkenswerte Ausnahme ist die Konfigurationsdatei von VIM. .vimrc
.
Beispiele
"Dies ist das Hello World -Programm in Vim Script. Echo "Hallo Welt!" "Dies ist eine einfache, während der Schleife im VIM -Skript. Lassen i = 1 während i < 5 Echo "Graf ist" i Lassen i += 1 Ende aushöre i
Verfügbarkeit
Wohingegen vi war ursprünglich nur auf verfügbar Unix Betriebssysteme, Vim war portiert zu vielen Betriebssystemen einschließlich Amigaos (die anfängliche Zielplattform), Atari Minze, Beos, DOS, Fenster ab Windows NT 3.1, OS/2, OS/390, Morphos, OpenVMS, Qnx, RISC OS, Linux, BSD, und Klassischer Mac OS.[53] Außerdem wird Vim mit jeder Kopie von versendet Apfel Mac OS.[54]
Unabhängige VIM -Häfen sind verfügbar für Android[55][56] und iOS.[57]
Neovim
![]() | |
Andere Namen | NVIM |
---|---|
Erstveröffentlichung | 1. November 2015[58] |
Stabile Version | |
Repository | https://github.com/neovim/neovim |
Geschrieben in | C, Vim -Skript, Lua |
Betriebssystem | Microsoft Windows und Unix-artig |
Lizenz | Apache-2.0 |
Webseite | Neovim |
Neovim[60] ist ein Gabel von VIM, das sich bemüht, die Erweiterbarkeit und Wartbarkeit von VIM zu verbessern.[61] Einige Merkmale der Gabel sind eingebaut Sprachserverprotokoll Unterstützung und Unterstützung für das Skripten mithilfe Lua.[62] Neovim hat die gleiche Konfigurationssyntax wie VIM (es sei denn, VIM9Script wird verwendet); So dasselbe Konfigurationsdatei Kann mit beiden Herausgebern verwendet werden, obwohl es geringfügige Unterschiede in den Details der Optionen gibt.[63] Wenn die zusätzlichen Funktionen von Neovim nicht verwendet werden, ist Neovim mit fast allen Funktionen von VIM kompatibel.[64]
Das Neovim-Projekt wurde 2014 gestartet, wobei einige Mitglieder der VIM-Community frühzeitig die hochrangigen Refactoring-Anstrengungen anbieten, um bessere Skripten, Plugins und Integration mit Modern zu bieten GUIS.[65][66] Das Projekt ist gratis Software und sein Quellcode ist auf verfügbar GitHub.[67]
Neovim hatte im März 2014 eine erfolgreiche Spendenaktion.[68] Unterstützung mindestens einen Vollzeitentwickler. Mehrere Frontenden sind in der Entwicklung und nutzen die Fähigkeiten von Neovim.[69][70][71]
Der Neovim -Editor ist in a erhältlich Persönliches Paketarchiv,[72] gehostet von Ubuntu und einige konventionellere Paketmanager,[73] Es ist möglich, es auf einer Vielzahl von Betriebssystemen zu installieren.
Siehe auch
- Lernen der VI- und VIM -Redakteure, ein Tutorial -Buch für VI und Vim, das von O'Reilly Media veröffentlicht wurde
- Herausgeberkrieg - Die Rivalität zwischen Benutzern der EMACS- und VI (VIM) Textredakteure
- Liste der Textredakteure
- Vergleich von Textredakteuren
- Vimperator
Verweise
- ^ "Vim 9.0"; Untertitel: Vim online; Abgerufen: 1. Juli 2022; Veröffentlichungsdatum: Juni 2022.
- ^ "Vim/Lizenz". github.com. 20. Oktober 2021.
- ^ "VIM -Lizenz". SPDX.org.
- ^ a b c "Vim: uganda.txt". vimhelp.org.
- ^ VIM -Dokumentation: Intro: "Vim wird als ein Wort ausgesprochen, wie Jim, nicht vi-ai-em. Es ist mit einer Hauptstadt geschrieben, da es wieder ein Name ist, wieder wie Jim."
- ^ Zapletal, Lukáš (18. April 2005), "Interview: Bram Moolenaar", Linuxexpres: 21–22, abgerufen 5. Februar 2015,
Ist das VIM -Derivat eines anderen VI -Klons oder Sie haben von vorne angefangen? Ich begann mit Stevie. Dies war ein VI -Klon für den Atari St -Computer, der auf die Amiga portierte. Es hatte ziemlich viele Probleme und konnte nicht alles tun, was VI konnte, aber da der Quellcode verfügbar war, konnte ich das selbst beheben. (englische Übersetzung)
{{}}
: Externer Link in|quote=
(Hilfe) - ^ "Linux Journal: 2003 Readers 'Choice Awards". 1. November 2003. Abgerufen 24. Mai 2006.; "Linux Journal: 2004 Readers 'Choice Awards". 1. November 2004. Abgerufen 24. Mai 2006.; "Linux Journal: 2005 Readers 'Choice Awards". 28. September 2005. Abgerufen 24. Mai 2006.
- ^ "Stack Overflow Developer Survey 2015 § IV. Texteditor". Paketüberfluss. Abgerufen 25. Juli 2016.
- ^ "Stack Overflow Developer Survey 2019 Ergebnisse". Stapelüberlauf § VII. Entwicklungsumgebungen. Abgerufen 20. Juli 2019.
- ^ a b c d Thompson, Tim (26. März 2000). "Stevie". Abgerufen 27. Dezember 2010.
- ^ a b Tim Thompson (28. Juni 1987). "Ein Mini-Vi für die ST". Newsgroup:comp.sys.atari.st. Usenet: [email protected]. Abgerufen 27. Dezember 2010.
- ^ a b Tony Andrews (6. Juni 1988). "V15I037: Stevie, ein" aufstrebender "VI -Klon für Unix, OS/2, Amiga". Newsgroup:Comp.Sources.unix. Usenet: [email protected]. Abgerufen 27. Dezember 2010.
- ^ Vim (20. Januar 2015). "Intro.txt". Vim Hilfe. Vim. Archiviert von das Original am 9. Juli 2016. Abgerufen 9. Juli 2016.
- ^ "Vim (1)". Die.net. Vim. 11. April 2006. archiviert von das Original am 9. Juli 2016. Abgerufen 9. Juli 2016.
Vim basiert auf Stevie, gearbeitet von: Tim Thompson, Tony Andrews und G.R. (Fred) Walter. Obwohl kaum der ursprüngliche Code bleibt.
- ^ "Die anhaltende Geschichte von Vim" (PDF).
- ^ "Die Geschichte von Vim - Jovica Ilic". 5. Juni 2014. Abgerufen 25. Januar 2020.
- ^ a b c "Vile (VI wie EMACs) - häufig gestellte Fragen (FAQ)". Abgerufen 7. September 2019.
- ^ a b c d e f Moolenaar, Bram (15. Januar 2002). "Vim, ein Open-Source-Texteditor". Abgerufen 24. Oktober 2005.
- ^ "Textfiles.com".
- ^ "Dateiwatcher". Archiviert von das Original am 11. Juli 2011. Abgerufen 26. Februar, 2011.
- ^ "Offizielles VIM -Handbuch, Version 4 Zusammenfassung". 12. März 2004. Abgerufen 6. August 2008.
- ^ "Offizielles VIM -Handbuch, Version 5 Zusammenfassung". 17. Januar 2004. Abgerufen 6. August 2008.
- ^ "Offizielles VIM -Handbuch, Version 6 Zusammenfassung". 12. März 2004. Abgerufen 6. August 2008.
- ^ "VIM -Referenzhandbuch, Version 7". 17. Juli 2016. Abgerufen 13. Januar 2019.
- ^ "Google -Gruppen". Groups.google.com.
- ^ Google Diskussionsegropen. Groups.google.com. Abgerufen am 2013-12-09.
- ^ Bram Moolenaar. "Vim 8.0 veröffentlicht!". Abgerufen 12. September 2016.
- ^ Bram Moolenaar. "Vim 8.1 wird veröffentlicht!". Abgerufen 18. Mai 2018.
- ^ Bram Moolenaar. "Vim 8.2 wird veröffentlicht!". Abgerufen 13. Dezember 2019.
- ^ Bram Moolenaar. "Vim 9.0 wird veröffentlicht!". Abgerufen 30. Juni 2022.
- ^ Lamm, Linda; Robbins, Arnold (1998). Lernen des VI -Editors. O'Reilly Media, Inc. p.305. ISBN 9781565924260.
- ^ Moolenaar, Bram (3. November 2010). "VIM -Dokumentation: usr_01". Abgerufen 28. August 2019.
- ^ Vim help -Dateien bei vimhelp.org
- ^ Oualline, Steve (April 2001). VI verbessert (vim) (PDF). Neue Fahrerverlage. ISBN 0-7357-1001-5.
- ^ Moolenaar, Bram (8. Dezember 2010). "VIM -Dokumentation: Intro". vimdoc.sourceforge.net. Archiviert von das Original am 27. August 2019. Abgerufen 28. August 2019.
- ^ Melendez, Steven (28. Oktober 2014). "Warum Vim, ein Texteditor der 80er Jahre, ist immer noch die Benutzeroberfläche der Wahl für Power -Benutzer". Fastcompany. Abgerufen 5. Mai 2019.
- ^ "Tipps: Vim einfach machen". Linux.com. 10. April 2007. Abgerufen 6. Mai 2019.
- ^ "VIM -Dokumentation: usr_41". vimhelp.org.
- ^ Vim help System (Typ "
:Hilfe
"Innerhalb von Vim) - ^ The Open Group (2008), "VI-Bildschirm-orientierter (visueller) Display-Editor", Single Unix-Spezifikation, Version 4 (IEEE STD 1003.1–2008), abgerufen 27. Dezember 2010
- ^ Pfeffer; Benji; Campbell, Charles (2. Januar 2004). "Vim FAQ". Abgerufen 27. Dezember 2010. (Frage 1.3)
- ^ "VIM -Dokumentation: Wiederherstellen". vimdoc.sourceforge.net. Abgerufen 17. Dezember 2020.
- ^ "Wie man Swappfiles in Vim umgeht". CSongwood.edu. Abgerufen 17. Dezember 2020.
- ^ "'SwappFile' Option ". vimhelp.org. 10. Oktober 2020. Abgerufen 18. Dezember 2020.
- ^ Klein, Benjamin. "Die VIML -Primer: Bearbeiten Sie wie ein Profi mit VIM -Plugins und Skripten von Benjamin Klein | Das pragmatische Bücherregal". Archiviert von das Original am 25. Januar 2020. Abgerufen 25. Januar 2020.
- ^ "VIM -Dokumentation: usr_41". vimhelp.org.
- ^ Verdoolaege, Sven; Gerassimof, Matt. "VIM -Dokumentation: if_perl". Abgerufen 27. August 2019.
- ^ Moore, Paul. "VIM -Dokumentation: if_pyth". Abgerufen 27. August 2019.
- ^ Carvalho, Luis. "VIM -Dokumentation: if_lua". Abgerufen 27. August 2019.
- ^ Maeda, Shugo. "VIM -Dokumentation: if_ruby". Abgerufen 27. August 2019.
- ^ Wilken, Ingo. "VIM -Dokumentation: if_tcl". Abgerufen 27. August 2019.
- ^ Khorev, Sergey. "VIM -Dokumentation: if_mzsch". Abgerufen 27. August 2019.
- ^ "
: Hilfe bei der Sys-Dateiliste
"
"Vim online: Downloads". Abgerufen 7. Januar 2007. - ^ "Mac OS X Manual Page für vim (1)". Entwickler.apple.com. Apple Inc. Abgerufen 12. Januar 2010.
- ^ "Vimtouch, die Entwicklung hat diese App ins Stocken gebracht". GitHub. Abgerufen 9. August 2015.
- ^ "Droidvim, unter aktiver Entwicklung". GitHub. Abgerufen 5. März 2017.
- ^ "Vim - Applidium, Mobile Agentur in Paris". Archiviert von das Original am 20. Januar 2012. Abgerufen 11. August 2015.
- ^ a b "Veröffentlichungen • Neovim/Neovim". GitHub. Abgerufen 15. Juli 2021.
- ^ "NVIM V0.7.0". 15. April 2022. Abgerufen 29. April 2022.
- ^ "Neovim: Vim, aus der Box".
- ^ "Neovim Vision".
- ^ "NVIM -Dokumentation: vim_diff".
- ^ "Wechsel zu Neovim".
- ^ "Wie man Neovim anstelle von Vim benutzt".
- ^ "Neovim: Vim für das 21. Jahrhundert wieder aufbauen".
- ^ "Vimcasts.org Blog -Beitrag".
- ^ "Github-Neovim/Neovim: Vim-Rforge konzentriert sich auf Erweiterbarkeit und Benutzerfreundlichkeit". GitHub. 29. August 2019.
- ^ "Neovim". BountySource. 23. März 2014. Abgerufen 20. März 2021.
- ^ "Nyaovim Frontend". GitHub. 29. August 2019.
- ^ "Mac OS X Frontend". GitHub. 29. August 2019.
- ^ "Neovim-Qt Frontend". GitHub. 21. Juli 2020.
- ^ "Neovim PPA -Informationen".
- ^ "Neovim Wiki: Installationsanweisungen". GitHub. 29. August 2019.