Vim läßt sich wunderbar mit plugins erweitern1.

Längere Textwüsten durch Farbe auflockern: txtfmt

Wir wollen lernen und die zusammengesammelten Informationen auch aufschreiben. Bei längerer Recherche können hier beachtlich lange Texte entstehen, die recht unübersichtlich werden. Wenn man dann noch eine Frage reinkritzelt, um die später zu klären, findet man die kaum wieder.

Also suchten wir nach einer Möglichkeit, Texte in vim farbig hinzubekommen. Nach langer Suche lief uns txtfmt (oder über die Seite von vim http://www.vim.org/scripts/script.php?script_id=2208 über den Weg.
Mit diesem plugin können Textteile farbig gestaltet werden und als i-Tüpferl kann das Dokument auch gleich als html- Dokument ausgegeben werden.

Nach einem etwas holprigen Start (und viel Kaffee)3 bekamen wir das Plugin auch zum laufen.
Also erstmal einen kleinen Testtext eingegeben und den mit Farbe verunstalten. Laut Doku sollte eine der folgenden Varianten zu einem ersten Erfolg führen:

  • Mit dem visuellen Modus
    • mit Strg-v in den visuellen Modus gehen
    • das gewünschte Wort oder den gewünschten Textteil markieren (bis hierhin hat es geklappt)
    • dann \h eingeben, daraufhin sollte unten ein Prompt von txtfmt erscheinen
    • hier dann z.B. fbi,cb eingeben, der Text sollte dann fett, kursiv und in blau erscheinen

ODER

  • Den Cursor auf einem Wort platzieren
    • \h eingeben
    • iw eingeben, daraufhin sollte wieder der txtfmt prompt erscheinen (was er bei mir natürlich nicht macht)
    • z.B. fbu,cr eingeben, der Text sollte fett, unterstrichen und in rot erscheinen

Hier wollte erst mal gar nix gehen!

Nach einiger Spielerei klappte dann:

  • Den Cursor an der gewünschten Stelle platzieren
  • zweimal(!) STRG-AltGr-ß drücken (also zweimal STRG-\) und der gewünschte Prompt ist da.
  • durch die Eingabe von fb,cb wurde der folgende Text dann auch schön fett und blau
  • Cursor etwas weiter rechts platziert, nochmal zweimal STRG-\ und dann f-,c- eingegeben und es bleibt links des Cursors ein Bereich mit blauer und fetter Schrift, alles rechts des Cursors und die folgenden Zeilen sind wieder “normal”.

Mit :TOhtml läßt sich das Dokument gleich als eine HTML- Datei speichern.
Das Ergebnis sieht so aus: txtfmt.html

1 Doku lesen ist allerdings teilweise echt ein Graus2, wenn man nicht so gut englisch versteht und einem dann noch das Hintergrundwissen fehlt…

2 Auch für diesen Artikel war ich ausführlich nochmal in der Doku unterwegs, natürlich gingen beim testen auf einmal vorher funktionierende Dinge nicht mehr *grummel*

3 Auf einem frisch installierten Debian hagelte es gleich beim Start von vim Fehlermeldungen, bis wir herausgefunden haben, daß die gleich mitinstallierte Version eine “kleine Version” ist, in der viele Funktionen nicht einkompiliert sind. Nach einer Reinstallation von vim (da wurde dann die “riesige Version” draus) waren alle Fehlermeldungen auf einmal weg4

4 Was das installierte vim kann, läßt sich auf zwei Arten ansehen (bei beiden kommt die gleich Ausgabe: Aufruf von “vim —version” oder in vim “:version”. Die Ausgabe sieht dann so aus:

[(28.03 21:05)florian@kartoffel:chaosgrossing/_posts]$ vim --version
VIM - Vi IMproved 7.4 (2013 Aug 10)
Inklusive der Korrekturen: 1-461
Übersetzt von 'http://www.opensuse.org/'
Riesige Version ohne GUI. Ein- (+) oder ausschließlich (-) der Eigenschaften:
+acl             +farsi           +mouse_netterm   +syntax
+arabic          +file_in_path    +mouse_sgr       +tag_binary
+autocmd         +find_in_path    -mouse_sysmouse  +tag_old_static
-balloon_eval    +float           +mouse_urxvt     -tag_any_white
-browse          +folding         +mouse_xterm     -tcl
++builtin_terms  -footer          +multi_byte      +terminfo
+byte_offset     +fork()          +multi_lang      +termresponse
+cindent         +gettext         -mzscheme        +textobjects
+clientserver    -hangul_input    +netbeans_intg   +title
+clipboard       +iconv           +path_extra      -toolbar
+cmdline_compl   +insert_expand   +perl            +user_commands
+cmdline_hist    +jumplist        +persistent_undo +vertsplit
+cmdline_info    +keymap          +postscript      +virtualedit
+comments        +langmap         +printer         +visual
+conceal         +libcall         +profile         +visualextra
+cryptv          +linebreak       +python/dyn      +viminfo
+cscope          +lispindent      +python3/dyn     +vreplace
+cursorbind      +listcmds        +quickfix        +wildignore
+cursorshape     +localmap        +reltime         +wildmenu
+dialog_con      +lua/dyn         +rightleft       +windows
+diff            +menu            +ruby/dyn        +writebackup
+digraphs        +mksession       +scrollbind      +X11
-dnd             +modify_fname    +signs           +xfontset
-ebcdic          +mouse           +smartindent     -xim
+emacs_tags      -mouseshape      +sniff           +xsmp_interact
+eval            +mouse_dec       +startuptime     +xterm_clipboard
+ex_extra        -mouse_gpm       +statusline      -xterm_save
+extra_search    -mouse_jsbterm   -sun_workshop    -xpm
          System-vimrc-Datei: "/etc/vimrc"
        Benutzer-vimrc-Datei: "$HOME/.vimrc"
 zweite Benutzer-vimrc-Datei: "~/.vim/vimrc"
         Benutzer-exrc-Datei: "$HOME/.exrc"
     Voreinstellung für $VIM: "/etc"
         und für $VIMRUNTIME: "/usr/share/vim/current"
Übersetzt: gcc -c -I. -Iproto -DHAVE_CONFIG_H     -fmessage-length=0 -grecord-gcc-switches -O2 -Wall -D_FORTIFY_SOURCE=1 -fstack-protector -funwind-tables -fasynchronous-unwind-tables -g -Wall -pipe -fno-strict-aliasing      
Linken: gcc   -L. -fstack-protector -rdynamic -Wl,-export-dynamic -Wl,-E -Wl,-rpath,/usr/lib/perl5/5.20.1/x86_64-linux-thread-multi/CORE   -L/usr/local/lib -Wl,--as-needed -o vim    -lSM -lICE -lXt -lX11 -lSM -lICE  -lm -lnsl    -ltinfo -lacl -lattr -ldl   -Wl,-E -Wl,-rpath,/usr/lib/perl5/5.20.1/x86_64-linux-thread-multi/CORE  -L/usr/local/lib64 -fstack-protector  -L/usr/lib/perl5/5.20.1/x86_64-linux-thread-multi/CORE -lperl -lm -ldl -lcrypt -lpthread