Vim
Vim (Vi improved) ist ein Texteditor welcher auf dem vi Textverarbeiter basiert. Vim kann über die Kommandozeile oder als eine eigenständige Anwendung über eine Benutzeroberfläche verwendet werden.
Vim sollte nicht mit Neovim verwechselt werden, ein ähnliches Programm welches den selben Anwendungszweck erfüllt.
Der Artikel Vi bietet allgemeine Informationen über vi-ähnliche Editoren. Siehe den Vim Guide Artikel für allgemeine Informationen zur Installation und Konfiguration von Texteditoren in Gentoo.
Installation
USE-Flags
USE flags for app-editors/vim Vim, an improved vi-style text editor
X
|
Link console vim against X11 libraries to enable title and clipboard features in xterm |
acl
|
Add support for Access Control Lists |
crypt
|
Use dev-libs/libsodium for crypto support |
cscope
|
Enable cscope interface |
debug
|
Enable extra debug codepaths, like asserts and extra output. If you want to get meaningful backtraces see https://wiki.gentoo.org/wiki/Project:Quality_Assurance/Backtraces |
gpm
|
Add support for sys-libs/gpm (Console-based mouse driver) |
lua
|
Enable Lua scripting support |
minimal
|
Install a very minimal build (disables, for example, plugins, fonts, most drivers, non-critical features) |
nls
|
Add Native Language Support (using gettext - GNU locale utilities) |
perl
|
Add optional support/bindings for the Perl language |
python
|
Add optional support/bindings for the Python language |
racket
|
Enable support for Scheme using dev-scheme/racket |
ruby
|
Add support/bindings for the Ruby language |
selinux
|
!!internal use only!! Security Enhanced Linux support, this must be set by the selinux profile or breakage will occur |
sound
|
Enable sound support |
tcl
|
Add support the Tcl language |
terminal
|
Enable terminal emulation support |
vim-pager
|
Install vimpager and vimmanpager links |
Emerge
Wenn Unterstützung für das X Fenstersystem nicht notwendig ist, kann app-editors/vim installiert werden:
root #
emerge --ask app-editors/vim
Zusätzliche Software
Gvim
Um Vim mit der Ncurses basierten Schnittstelle (/usr/bin/vim) und der grafischen Schnittstelle (für das X Fenster System - /usr/bin/gvim) zu installieren, installiere das app-editors/gvim Paket:
root #
emerge --ask app-editors/gvim
Pakete
Vim unterstützt Pakete, welche einen nativen Mechanismus zur Verfügung stellen, um die Funktionalität zu erweitern. Lese die Dokumentation über eingebaute Pakete, um mehr zu erfahren: :help packages
Plugins
Die Kategorie app-vim enthält viele zusätzliche Syntax Definitionen, Plugins und anderes Vim Zugehöriges.
Nutze emerge oder eix um einen Überblick über verfügbare Pakete in der app-vim Kategorie zu erhalten:
user $
emerge --search "%@^app-vim"
user $
eix -cC app-vim
Nicht alle Vim Plugins werden im Gentoo Repository verfügbar sein. Vim enthält jetzt native Pakete, als Möglichkeit Vim Plugins zu installieren. Zusätzlich gibt es mehrere Plugin Verwalterungsprogramme für Vim.
Konfiguration
Dateien
Vim kann für jeden Nutzer einzeln oder über eine systemweiten Konfigurationsdatei konfiguriert werden:
- /etc/vim/vimrc - Die globale Konfigurationsdatei
- ~/.vimrc - Die Konfigurationsdatei des Nutzers. Das Tilde (~) ist eine Verkürzung für das Home Verzeichnis des Nutzers.
- ~/.vim/pack/foo - Ort, wo Vim Plugins installiert sind.[1] Ersätze foo durch den Namen jedes Plugins.
Farb-Themen
Etwa ein Dutzend Farbschemata werden mit dem Vim-Kernpaket ausgeliefert. Sie können im Last-Line-Modus aufgelistet werden, indem Sie colorscheme eingeben (gefolgt von einem Leerzeichen) und dann entweder Ctrl+d oder die Tab-Taste zweimal drücken:
:
colorscheme
blue darkblue default delek desert elflord evening industry koehler morning murphy pablo peachpuff ron shine slate torte zellner
Sie können in Vim mit dem Befehl colorscheme (alternativ: colo) geändert werden, wenn Sie sich im Last-Line-Modus befinden:
:
colorscheme peachpuff
Farbschemata können in der Datei .vimrc dauerhaft angewendet werden. Beachten Sie, dass die syntax on
Zeile auch für die Aktivierung benötigt wird:
colorscheme peachpuff
syntax on
Die erste Zeile legt das Standardfarbschema fest, während die letzte Zeile das Farbschema aktiviert.
Auswahl des vi-Editors und des System-Standardeditors
Wenn Vim - und nur Vim - installiert ist, sollte der Befehl vi Vim starten. Falls andere Vi-ähnliche Editoren installiert sind, kann eselect verwendet werden, um auszuwählen welcher Editor durch den vi Befehl ausgeführt wird.
Der Texteditor Artikel kann auch für das Setzen eines Systemstandardeditors von Interesse sein, falls Vim als Standardeditor gesetzt werden soll.
Gentoo-Syntax
Um die Unterstützung für das Gentoo-Syntax-Plugin app-vim/gentoo-syntax in vim zu aktivieren, fügen Sie die folgenden Zeilen in die Datei ~/.vimrc des Benutzers ein:
filetype plugin on
filetype indent on
leave_my_textwidth_alone
By default, Vim and Neovim do not hard-wrap lines[2], i.e., typing on a line longer than a certain length does not create a new line. However, Gentoo installs config files for Vim[3] and Neovim[4] that cause lines longer than 78 characters in .txt files to be hard-wrapped. To override this behavior, the following should be specified in the user's ~/.vimrc file:
let g:leave_my_textwidth_alone=1
bug #559800 contains some discussion around this issue.
Bedienung
Aufruf
Von der Befehlszeile:
user $
vim --help
vim --help VIM - Vi IMproved 8.2 (2019 Dec 12, compiled Nov 26 2021 11:56:27) Usage: vim [arguments] [file ..] edit specified file(s) or: vim [arguments] - read text from stdin or: vim [arguments] -t tag edit file where tag is defined or: vim [arguments] -q [errorfile] edit file with first error Arguments: -- Only file names after this -v Vi mode (like "vi") -e Ex mode (like "ex") -E Improved Ex mode -s Silent (batch) mode (only for "ex") -d Diff mode (like "vimdiff") -y Easy mode (like "evim", modeless) -R Readonly mode (like "view") -Z Restricted mode (like "rvim") -m Modifications (writing files) not allowed -M Modifications in text not allowed -b Binary mode -l Lisp mode -C Compatible with Vi: 'compatible' -N Not fully Vi compatible: 'nocompatible' -V[N][fname] Be verbose [level N] [log messages to fname] -D Debugging mode -n No swap file, use memory only -r List swap files and exit -r (with file name) Recover crashed session -L Same as -r -A Start in Arabic mode -H Start in Hebrew mode -T <terminal> Set terminal type to <terminal> --not-a-term Skip warning for input/output not being a terminal --ttyfail Exit if input or output is not a terminal -u <vimrc> Use <vimrc> instead of any .vimrc --noplugin Don't load plugin scripts -p[N] Open N tab pages (default: one for each file) -o[N] Open N windows (default: one for each file) -O[N] Like -o but split vertically + Start at end of file +<lnum> Start at line <lnum> --cmd <command> Execute <command> before loading any vimrc file -c <command> Execute <command> after loading the first file -S <session> Source file <session> after loading the first file -s <scriptin> Read Normal mode commands from file <scriptin> -w <scriptout> Append all typed commands to file <scriptout> -W <scriptout> Write all typed commands to file <scriptout> -x Edit encrypted files --startuptime <file> Write startup timing messages to <file> -i <viminfo> Use <viminfo> instead of .viminfo --clean 'nocompatible', Vim defaults, no plugins, no viminfo -h or --help Print Help (this message) and exit --version Print version information and exit
Der vi Befehl kann auch verwendet werden um Vim zu starten, wenn es so konfiguriert wurde.
Geben Sie einen Namen an, um eine vorhandene Datei zu öffnen oder eine neue Datei zu erstellen:
user $
vim <dateiname>
Anleitung
Vim hat ein eingebautes Tutorium, für das man etwa 30 Minuten brauchen sollte, um es durchzuarbeiten. Starten Sie es mit dem Befehl vimtutor:
user $
vimtutor
Tipps und Tricks
Vim wie ex oder ed von der Befehlszeile aus benutzen
Es ist möglich, Vim für Einzeiler zu verwenden - Befehle, die in Skripten oder auf der Befehlszeile verwendet werden können, um Änderungen unbeaufsichtigt durchzuführen.
Der folgende Befehl fügt zum Beispiel #
an den Anfang jeder Zeile in der Datei file.txt an:
user $
vim -c ":%s/^/#/g" -c ":x" file.txt
Was passiert, ist, dass Vim die weitergegebenen Befehle interpretiert (durch die -c
Option). Der erste Befehl ist Vims Ersetzungsbefehl (der dem von sed sehr ähnlich ist), der zweite ist Vims Anweisung zum Speichern und Beenden des Editors.
Ändern der Dateikodierung
Um die Dateikodierung einer Datei auf UTF-8 zu ändern, verwenden Sie den folgenden Befehl (im Last-Line-Modus):
:
e ++enc=utf8
Wie im vorherigen Trick gezeigt, ist es auch möglich, dies über die Befehlszeile zu tun:
user $
vim -c ":wq! ++enc=utf8" file.txt
Fehlersuche
Ich bin in vim gefangen!
Für jemanden, der in Vim einsteigt, ohne die Benutzung vorher gelernt zu haben, ist es vielleicht nicht offensichtlich, wie man das Program schließt.
Drücken Sie mehrmals esc, dann :, q, enter. Um zu beenden ohne zu speichern, drücken Sie mehrmals esc, dann :, q, !, enter.
Wenn mehrere Dateien geöffnet sind, drücken Sie mehrmals Esc, dann :, q, a, Enter. Zum Beenden ohne zu speichern, drücken Sie mehrmals Esc, dann :, q, a, !, Enter.
Wenn dies nicht hilft und verzweifelte Maßnahmen erforderlich sind, kann etwas wie killall vim eine letzte Lösung sein (von einem anderen Terminal aus). Beachten Sie, dass dies alle Vim-Sitzungen eines Benutzers beendet, ohne zu speichern. Wenn er als root ausgeführt wird, beendet ein solcher Befehl alle Vim-Sitzungen für alle Benutzer auf dem System.
Eingefügtes wird mit Tabs versehen
Angenommen, der folgende Text soll in einem Vim-Puffer eingefügt werden:
'"`UNIQ--pre-00000011-QINU`"'
Vim interpretiert dies möglicherweise mit Autotabbing und brich das Einfügen ab:
'"`UNIQ--pre-00000014-QINU`"'
Um dies zu korrigieren, führen Sie den folgenden Befehl aus: :set paste, um den Einfügemodus von Vim zu aktivieren. Sobald der Einfügevorgang abgeschlossen ist, kann :set nopaste benutzt werden, um zu den vorherigen Einstellungen zurückzukehren.
E1187
user $
vim foobar
E1187: Failed to source defaults.vim Press ENTER or type command to continue
Scheint durch destabilize 8.2.4328 gelöst zu sein.
Siehe auch
- Knowledge Base:Edit a configuration file
- Neovim — a hyperextensible Vim-based text editor.
- Text editor — a program to create and edit text files.
- Nützlicher Plugin: app-vim/gentoo-syntax
- Vi — a powerful "modal" text-based editor with a long history in the Unix(like) operating system.
- Vim/Guide — explain basic usage for users new to vi-like text editors in general, and vim in particular.
Externe Ressourcen
- Vim Documentation Enthält Handbücher (auch bekannt als ":help" und das kostenlose VIM OPL Buch), FAQs, HOWTOs, Tutorials, in HTML, PDF und PS Formaten.
- A vim Tutorial and Primer - Ein ausgezeichnetes Vim-Tutorial/Primer. Lesen Sie dies zuerst.
- VIM Skripts/Plugins
- Vim for Humans (kostenloses E-book) - Klonen und cd in das Quellenverzeichnis, mkdir dist, ändern Sie
sphinx2-build
zusphinx-build
für SPHINXBUILD in rst/en/Makefile. Führen Sie ./makedist.sh aus. Lesen Sie die PDF in ./dist/vimpourleshumains/. - Learning the vi and Vim Editors, 7th Edition O'Reilly Gedruckt ISBN: 978-0-596-52983-3, E-book ISBN: 978-0-596-15935-1
- Vim anti-patterns - Ein Blogeintrag über die Aufrechterhaltung des Flusses mit Vim.
- Vim Tips Wiki - Früher bekannt als Wikia, ist Vim Tipps Wiki jetzt auf Fandom.com.
- Vim: Seven habits of effective text editing - Ein Leitfaden aus dem Jahr 2000, der auch heute noch aktuell ist!
- vimcolorschemes.com - Eine Website, die viel mehr Optionen für Farschemata bietet.
Referenzen
- ↑ https://vimhelp.org/repeat.txt.html#packages
- ↑ https://vimhelp.org/options.txt.html#%27textwidth%27
- ↑ https://github.com/gentoo/gentoo/blob/e1a7e5da58ec33213c680337f4240e75c5e300a4/app-editors/vim-core/files/vimrc-r6#L158
- ↑ https://github.com/gentoo/gentoo/blob/e1a7e5da58ec33213c680337f4240e75c5e300a4/app-editors/neovim/files/sysinit.vim#L58