2008-11-25 10 views
15

Ich möchte einen Block von Text einrücken.Einrücken einer Auswahl in gvim (win32)?

Ich bin in der Lage, dies in der Linux Build von givm zu tun.

Ich mache das ist der Zustand von gvim, wo ich nicht im Einsatz oder visuellen Modus bin. Die Leiste unten ist links leer und die Zeilennummer, der Prozentwert, wird auf der rechten Seite angezeigt.

Dann führe ich die folgenden Prozedur: Ich wähle einen Textblock durch Klicken und Ziehen. Dann drücke ich Shift +. Danach drücke ich esc und der Textblock bewegt sich über einen Tab.

Wenn ich dies in Windows aber es ersetzt nur den Block mit>.

Ich führe gerade die Aktie gewinnen RC-Datei und Version 7.1 von GVIM.

+0

http://stackoverflow.com/questions/235839/how-do-i-indent-multiple-lines-quickly-in-vi –

+0

(hoffentlich, dass das Problem löst, wenn nicht, so) –

+0

Es tut es nicht Meine Frage bezieht sich speziell auf den win32-Build von gvim. Die Lösung für die Frage, auf die Sie sich beziehen, funktioniert nicht für win32. – Fredrick

Antwort

18

Wenn Sie zuerst UMSCHALT-V eingeben und dann + die Pfeiltasten drücken, um den Text auszuwählen, wird ein Einzug eingefügt. Sie können auch SHIFT-V verwenden und 'hjkl' verwenden, um den Block auszuwählen.

Wenn Sie mit Umschalt + Pfeiltasten oder mit der Maus einen Textblock auswählen, funktioniert das nicht und die Auswahl wird durch ein '>' ersetzt. Dies kann geändert werden, wenn Sie den Auswahlmodus ändern.

set select = Maus, Schlüssel

  • Standardeinstellung nach behave mswin

set select = key

  • jetzt können Sie mit der Maus und drücken Sie wählen '>' auf Einrückung

set selectmode =

  • jetzt können Sie beide wählen mit der Maus und verschoben Pfeiltasten und drücken ‚>‘

einrücken Wenn Sie diese zu Ihrem vimrc hinzufügen, sie, nachdem sie sich verhalten mswin

+0

Wenn ich außer Modi bin, drücken Sie Shift + v, geben Sie das v frei, aber halten Sie weiter shift Ich bin in der Lage, die Maus zu verwenden, um etwas zu wählen. Danke! – Fredrick

+0

> funktioniert auch, wenn Sie mit Ihrer Maus wählen –

+0

Ich musste auch 'set keymodel = startsel, stacksel' hinzufügen, damit es wie erwartet funktioniert. – Florian

2

Esc ->Umschalt +V -> Select Lines ->>>

+0

Dies führt auch dazu, dass die Auswahl durch ein '>' ersetzt wird. – Fredrick

+0

Wenn ich dies mache, wird der Block um 5 Leerzeichen eingedrückt, aber ich möchte nur 1 oder 2 Leerzeichen einrücken. Wie kann ich das machen? (Danke) –

1

Sie müssen behave mswin-behave xterm in Ihre vimrc ändern.

+0

Ich mag etwas vom mswin Verhalten obwohl. Es scheint, als ob ich eine alternative Abkürzung oder eine Möglichkeit wäre, eine Verknüpfung zu konfigurieren, um dasselbe zu tun. – Fredrick

+0

Es scheint, dass die Antwort, die Sie suchen, von Wimmel in seiner Erklärung der Auswahlmodus-Einstellung zur Verfügung gestellt wurde. –

5

Verwandt Dazu benutze ich einen praktischen Remap für den visuellen Modus, der es ermöglicht, den Text mehrfach einzurücken, während der Text ausgewählt bleibt. Ähnlich wie in Visual Studio können Sie einen Tab (oder Shift-Tab) zum Einrücken auswählen und drücken.

Fügen Sie Ihrem.vimrc

" Pressing <or> will let you indent/unident selected lines 
vnoremap < <gv 
vnoremap > >gv 

Auch Sie können == verwenden, um Vim versuchen und die richtige Einrückung automatisch zu bestimmen. Es funktioniert auf jeder Zeile kaufen Sie einfach den Cursor dort platzieren und drücken Sie == oder Sie können fancy stuff wie die gesamte Datei auswählen und drücken Sie ==, um alle Einrückung zu beheben (wirkt Wunder auf HTML von WYSIWYG-Editoren generiert).

+0

Gut, aber ich benutze nur "." (Punkt) um zuvor eingerückte Zeilen einzurücken: Vjj>. (wiederhole Punkte wie nötig) – Zotov

1

Sie können Textobjekte verwenden, wenn Sie den visuellen Modus vollständig vermeiden möchten. Zum Beispiel >ap im normalen Modus Einzüge einen Absatz, >aB Einzüge einen geschweiften Klammer-Block, etc. Siehe :h text-objects.