{{{#!vorlage Wissen [:Pakete_installieren: Installation von Programmen] [:Terminal: Ein Terminal öffnen] }}} [[Inhaltsverzeichnis()]] [[Bild(./vim.png, 48, align=left)]] In diesem Artikel werden praktische Tipps rund um den Editor [:VIM:] gesammelt. Für weitere Informationen zur allgemeinen Bedienung sollte man den genannten Hauptartikel zu Rate ziehen. {{{#!vorlage Hinweis Die gesammelten Tipps müssen nicht für alle vim-Versionen Gültigkeit haben. Sollte ein Tipp nicht (mehr) funktionieren, bitte gerne in der [topic:baustelle-vim-tipps-2: Diskussion zum Artikel] melden. }}} = Eingabe von Sonderzeichen = Sonderzeichen können neben der direkten Eingabe auch im Eingabemodus mit der Tastenkombination [[Vorlage(Tasten, Strg+K)]] und einer weiteren Taste erzeugt werden. Beispielsweise wird aus [[Vorlage(Tasten, Strg+K+o+<)]] ein "ǒ". Eine Übersicht über alle Tastenkombinationen kann man sich im Kommandozeilenmodus mit `:digraphs` anzeigen lassen, unter `:help digraphs` gibt es weitere Hilfe. = Rechtschreibprüfung = == Intern == Um die interne VIM-Rechtschreibprüfung zu nutzen, wird `spell` aktiviert und `spelllang` gesetzt (für persistente Änderungen die Datei '''~/.vimrc''' verwenden): {{{#!code vim set spell set spelllang=de }}} {{{#!vorlage Hinweis Siehe `:help spell-german` für verschiedene Rechtschreibprüfungen im deutschsprachigen Raum. }}} Nun stehen im [:VIM#Normalmodus:Normalmodus] folgende Navigations- und Korrekturmöglichkeiten zur Verfügung: {{{#!vorlage Tabelle <-4 rowclass="titel"> Rechtschreibprüfung +++ Befehl Beschreibung Befehl Beschreibung +++ `[s` Sucht vorwärts nach weiteren falsch geschriebenen Wörtern oder Ausdrücken. `]s` Sucht rückwärts nach weiteren falsch geschriebenen Wörtern oder Ausdrücken. +++ `zg` Fügt Wort unter Cursor als korrektes Wort in die lokale Rechtschreibungsdatei ein. `zw` Fügt Wort unter Cursor als falsches Wort in die lokale Rechtschreibungsdatei ein. +++ `zug` Macht Aktion `zg` rückgängig. `zuw` Macht Aktion `zw` rückgängig. +++ `z=` Listet Korrekturvorschläge auf. }}} Dokumentation unter `:help spell-quickstart`. Möchte man die Rechtschreibprüfung deaktivieren, gibt man im [:VIM#Kommandozeilenmodus:Kommandozeilenmodus] `:set nospell` ein. Es ist auch möglich, die Rechtschreibprüfung in Abhängigkeit des Dateityps zu aktivieren oder deaktivieren. Siehe hierzu `:h autcmd`. Beispiel zur Deaktivierung der Rechtschreibprüfung für Dateien mit [:Python:]-Quelltexten: {{{#!code vim autocmd FileType python setlocal nospell }}} == Hunspell == Möchte man die auch von Open Office benutzten [:Hunspell:]-Wörterbücher verwenden, geht man folgendermaßen vor: 1. Wörterbuch installieren, diese geschieht über das Paket '''hunspell-de-de'''[2] (bzw. die entsprechenden Pakete für andere Sprachen). 1. Benötigten Ordner anlegen[1]. [[Vorlage (Befehl, "mkdir -p ~/.vim/spell")]] 1. VIM starten und im [:VIM#Normalmodus:Normalmodus] den folgenden Befehl ausführen, um das Wörterbuch nutzen zu können: [[Vorlage (Befehl, ":mkspell ~/.vim/spell/de /usr/share/myspell/dicts/de-DE")]] 1. In VIM den Befehl [[Vorlage (Befehl, ":set spelllang=de spell")]] ausführen, um die Rechtschreibprüfung zu aktivieren. Soll die Rechtschreibprüfung bereits beim Programmstart aktiv sein, ist der 4. Befehl in die Datei '''~/.vimrc''' einzutragen. = Python IDE = Wer VIM in eine kleine IDE verwandeln will, benötigt dazu nur '''vim-python-jedi''', das aus den Paketquellen installiert werden kann. {{{#!vorlage Paketinstallation vim-python-jedi }}} Danach aktiviert man das Plugin: {{{#!vorlage Befehl vim-addons install python-jedi }}} Nun kann man bei Python-Skripten die Autovervollständigung mit [[Vorlage(Tasten, ctrl+space)]] nutzen. = LaTeX = Wer mit VIM [:LaTeX:]-Dokumente erstellen möchte, findet mit der [sourceforge2:vim-latex:vim-latexsuite] {en} eine Vielzahl an zusätzlichen Funktionen speziell zum Arbeiten mit LaTeX-Dokumenten. Von Syntaxhighlighting über Templates bis hin zu Code-Vervollständigung bleibt eigentlich kein Wunsch offen. == Einrichtung == Die Suite kann über das folgende Paket installiert werden[1]: {{{#!vorlage Paketinstallation vim-latexsuite, universe vim-addon-manager, universe }}} Die Installation der vim-latexsuite aktiviert diese noch nicht. Diese VIM-Erweiterung muss explizit aktiviert werden. {{{#!vorlage Befehl vim-addons install latex-suite vim-addons status # zur Kontrolle }}} Zusätzlich sind folgende Einträge in der '''~/.vimrc''' notwendig, damit die entsprechende Oberfläche (für GVim) und die dazugehörigen Befehle bzw. Schaltflächen der vim-latexsuite, beim Öffnen einer '''tex-Datei''' aktiviert werden: {{{#!code vim filetype plugin on if has('gui_running') set grepprg=grep\ -nH\ $* filetype indent on let g:tex_flavor='latex' endif }}} == Springen ins DVI-Dokument == Damit der DVI-Viewer nach Ausführen von `\ls` im Normalmodus gleich die Stelle in der '''.dvi'''-Datei anzeigt, die gerade bearbeitet wird, kann man in die Datei '''~/.vim/ftplugin/tex.vim''' die Zeilen {{{#!code vim let g:Tex_CompileRule_dvi = 'latex -src-specials -interaction=nonstopmode $*' g:TCTarget dvi }}} einfügen. Unter Umständen kann das jedoch zu Fehlern führen. == Springen vom DVI-Dokument in den TeX-Text == Möchte man an eine gewünschte Stelle einer '''.tex'''-Datei gelangen, indem man mit [[Vorlage (Tasten ,strg+lmt)]] diejenige Stelle in der (mittels xdvi ausgegebenen) '''.dvi'''-Datei auswählt, muss man die Zeilen: {{{#!code vim let g:Tex_ViewRule_dvi = 'xdvi -editor "gvim --servername xdvi --remote +\%l \%f" $* &' let g:Tex_ViewRuleComplete_dvi = 'xdvi -editor "gvim --servername xdvi --remote +\%l \%f" $* &' }}} zu '''~/.vimrc''' hinzufügen und GVim von nun an mit {{{#!vorlage Befehl gvim --servername xdvi }}} starten. == pdflatex == === PDF-Datei per default erzeugen === Möchte man die '''.tex'''-Datei gleich zu einer '''.pdf'''-Datei mittels pdflatex kompilieren, dann sollte Folgendes in der '''~/.vimrc''' stehen: {{{#!code vim filetype plugin on filetype indent on au BufEnter *.tex set autowrite let g:Tex_DefaultTargetFormat = 'pdf' let g:Tex_MultipleCompileFormats = 'pdf' let g:Tex_CompileRule_pdf = 'pdflatex -interaction=nonstopmode $*' let g:Tex_GotoError = 0 let g:Tex_ViewRule_pdf = 'evince' }}} Drückt man nun `\ll` im Normalmodus, wird die geöffnete '''.tex'''-Datei gespeichert und (bei Bedarf mehrmals) '''pdflatex''' ausgeführt. Mit `\lv` öffnet [:Evince:] die '''.pdf'''-Datei. === Ausgabedateien in Unterordner bündeln === Möchte man die Ausgabedateien, mit Ausnahme des PDF, in einem Unterverzeichnis gebündelt haben sollte die obige `g:TexCompileRule_pdf` durch folgende ersetzt werden. {{{#!code vim let g:Tex_CompileRule_pdf = 'mkdir -p out && pdflatex -output-directory=out -interaction=nonstopmode $* && mv out/$*.pdf .' }}} === Springen von Text zu Ausgabe und umgekehrt === Auch mit pdflatex kann man das Suchen in beiden Richtungen verwenden. Mit dem GNOME-Standardprogramm [:Evince:] ist das zwar etwas umständlich, geht aber z.B. mit [:Okular:] recht schnell. Wie es geht, ist in der Anleitung [https://groeper-berlin.de/blog/posts/forward___38___inverse_search_mit_vim-latexsuite_und_okular_-_synctex_sein_Dank/ forward & inverse search mit vim-latexsuite und okular - synctex sein Dank] {de} kurz beschrieben. = Umgang mit Windows-/Mac-/Unix-Zeilenenden = Mit der Option `fileformat` kann das Dateiformat bestimmt werden. Zur Auswahl stehen `dos`, `mac` und `unix`. Sieht man z.B. "^M" am Zeilenende, kann man das Dateiformat auf `dos` umstellen. Möchte man Windows-Zeilenenden in solche von Unix/Linux umwandeln, gibt man folgenden Befehl ein: `:%s/\r//` = Links = ==Intern== * [:VIM:] ==Extern== * [https://hoepfl.de/articles/2007/01/vimderbar.html VIMderbare Kodierungen] {de} - Einfache Beschreibung von VIM im Umgang mit Zeichencodierung (charset) wie UTF-8 * [https://vim.wikia.com/wiki/Change_end-of-line_format_for_dos-mac-unix Change end-of-line format for dos-mac-unix] {en} - Umgang mit MS-Dos-, Unix- und Mac-Textdateien #tag: Editor, Shell