[uplug] Re: Vim - aktuellen absatz einruecken - >ip

Sven Guckes guckes at math.fu-berlin.de
Do Mär 20 15:05:03 CET 2003


*  Manuel Dräger <manuel.draeger at gmx.de> [2003-03-20 08:50]:
> ich werde diesmal nicht kommen. Mich würde das zwar sehr interessieren,
> aber 4 Stunden Fahrzeit will ich dann doch nicht haben.

*vier* stunden fahrzeit?  kommst du mit dem
ICE aus frankfurt/main?   oder aus bernau?

> Wie kann man Text Blockweise nach rechts bzw. links
> verschieben (so wie im Editor Proton mit TAB / Shift-TAB)

Shift-Tab kannste auf dem terminal schonmal vergessen.
das ginge vielleicht beim GUI - also beim GVim.
aber du kannst ja anderen tasten dafuer belegen...

> Bsp1:
> int main(void) {
>   return 0
> }
>
> danach alles markieren und dann mit irgendwelchen
> Tasten z.B. nach rechts schieben: ...  wenn der
> Text nach links verschoben wird und vor
> irgendeiner Zeile kein Leerzeichen mehr existiert,
> dann sollen die Zeilen wo noch ein Leerzeichen
> existiert jeweils ein Leerzeichen davor gelöscht
> werden. Aus Bsp1 würde dann folgendes werden:
>
> Bsp3:
> int main(void) {
>  return 0
> }

ok.. here we go:
schritt eins:  aktuellen absatz visuell markieren;

  vip   (_vi_sual-select of _i_nner _p_aragraph)

dann mit '>' einruecken - und zwar um 'shiftwidth" zeichen.

wenn du jeweils nur um ein (leer)zeichen aendern willst,
dann setze vorher ":set shiftwidth=1" oder kuerzer ":se sw=1".

das "ruecken nach links" geht analog mit dem operator '<'.
dabei gibt es genau jenen effekt, den du haben willst,
naemlich zeilen ohne whitespace indent bleiben fest - und
jene *mit* whitespace indentation werden um 'sw' verringert.

die aktuelle zeile kann man mit >> einruecken bzw mit <<
un-einruecken - und diese kommadnos verstehen natuerlich
auch das zahl-praefix, dh 5>> rueckt fuenf zeilen ein -
also die aktuelle zeile und die folgenden vier zeilen.

und dann kann man noch '>' als kommando auf ein
textobjekt wie den aktuellen absatz anweden,
also >ip macht ein einruecken bzw <ip "das gegenteil".

diese kommandos kann man dann auf funktionstasten legen:

  map <f7> >ip
  map <f8> <ip

"na, das war ja einfach!"  ;-)

viel spass damit!

Sven



Mehr Informationen über die Mailingliste upLUG