Artikelformat

[Vim Tipps] Zeilen sollen nicht einrücken

Bild 1829.jpg

Tipp 3:

Wenn man etwas grössere Sachen in Vim mit der Maus markiert und kopiert und dann an einer neuen Stelle wieder einfügen will, kommt es häufig und in den meisten Standardkonfigurationen (zum Beispiel bei Debian) zu einem sehr unschönen Effekt. Alle Zeilen werde mehrfach eingerückt, so dass man mühselig den Code wieder gerade rücken muss.

Vim wäre nicht Vim, wenn es nicht auch dafür eine Lösung geben würde: die Option heisst no auto-indent und kann entweder zur Laufzeit mit :set noai gesetzt oder direkt in der persönlichen Konfiguration unter Homeverzeichnis/.vimrc bzw. global in /etc/vim/vimrc fest konfiguriert werden.

Diese Tipp ist Teil einer Serie:

Tipp 1: Zahlen hochzählen und runterzählen
Tipp 2: Aus klein mach gross und umgekehrt

Ich nehme auch gerne immer noch eure Lieblingskniffe für VI bzw. VIM entgegen und erwähne sie hier. Vielleicht wird es ja irgendwann mal eine schöne Sammlung

Links
(diese Tipp stammt von Thorsten Strusch , danke dafür)

Autor: Oliver

Ich bin Oliver und habe den aptgetupdateDE Blog im Juli 2007 aus der Taufe gehoben. Man findet mich auch auf Twitter.

9 Kommentare

  1. Markieren mit der Maus?! Warum dann noch überhaupt vim nutzen?

    Naja, wer’s mag.

    Mein Tipp zur effektiveren Arbeitsweise:

    :set nu (Einschalten der Zeilennummerierung)

    dann entsprechenden Bereich mit Hilfe von vim-eigenen Mitteln kopieren

    :,y[ank] (z.B. :22,44y)

    zur Zeile springen an der eingefügt werden soll (z.B. 55gg) und einfügen (p).

    So bleibt die Einrückung erhalten und mit etwas Übung gehts auch schneller als mit der Maus. Das ganze ist noch weiter ausbaufähig, indem man Marker (:help m) verwendet, und daher sehe ich diese Methode als effizienter an.

    Man kann übrigens die bool’schen Optionen ganz einfach umschalten (toggle) indem man ein „!“ anhängt. (z.B. set ai! setzt noai, wenn vorher ai gesetzt war und umgekehrt) Dann z.B. dass Einfügen durchführen und wieder umschalten, um die ursprücngliche Einstellung wiederherzustellen. (Vorteil: nur einmal den Befehl eingeben und dann aus der History erneut ausführen, spart erneutes editieren des Befehls)

  2. @Marcus

    ja wenn der Text innerhalb eines Dokumentes bzw. einer VI-Sitzung kopiert werden soll, dann natürlich „y“, „v“ und Co. – aber Copy&Paste braucht man (ich) häufig, wenn man per remote irgendwo drauf ist und in seinem Mac/Windows was kopiert und da rüberhaben will ;)

  3. @Marcus: ja, Sven sagte es eigentlich schon: Ich habe meistens unterschiedliche Session in unterschiedlichen Terminals auf und genau um diesen Kopierprozess geht es mir. Ansonsten klar. Innerhalb eines Dokumentes in Vim tritt dieses Problem auch nie auf.

    Aber trotzdem vielen Dank für deine Hinweise.

  4. Wow, danke, nun habe ich etwas gelernt, was mich beiläufig mal gestört hat.
    Ich bin seit tagen auf der suche nach einer funktion die notepad++ besitzt, und zwar ist es das zusammenklappen zugehöriger bereiche, um übersichtlicher arbeiten zu können, oder ein schnelles debugging betreiben zu können. Wenn ich nur wüsste wie die funktion heißt, oder ob es dafür etwas unter vim gibt. ich habe mir nun extra notepad++ auf mein debian lenny installiert um diese funktion nutzen zu können, würde aber liebend gern für alles den übereditor vim nutzen.
    Wäre dankbar für einen Tip. Gern auch per Mail.

    Update: Habe gerade den Code Folding Beitrag gefunden, werde da mal schauen ob das nicht auch dafür geeignet ist.
    Tips dennoch gern gesehen.
    Habe auch den commentfeed abonniert.

    Gruß
    Alexander
    qsettemix@googlemail.com

  5. @Alex: hmmm, genau das Code Folding Feature ist doch das, was du suchst oder nicht?

    Benutzt du notepad++ unter Wine? Andere grafische Linuxeditoren zB. Kate haben doch das Feature auch. Bin da gar nicht so auf dem Laufenden.