2010-04-04 21 views
26

Ein frustrierendes Verhalten in vim ist, dass wenn ich den Cursor nach rechts oder links (bzw. "l" oder "h)" bewege und ich am Ende oder am Anfang der Zeile bin, den Cursor bewegt sich nicht in die erste Spalte der nächsten Zeile oder die letzte Spalte der vorherigen Zeile.Automatisch zur nächsten Zeile in vim gehen

Gibt es eine Möglichkeit, dieses Verhalten zu ändern?

+1

Dies ist nicht gerade eine Programmierung Frage, aber ... –

+0

... aber es ist eine Frage, „Software-Tool in Bezug auf von häufig verwendeten Programmierer ". :) (Es ist zugegebenermaßen kein "Problem, das für die Softwareentwicklung einzigartig ist"). – lindhe

+1

'set nocompatible' hatte diese Funktion in meiner' vim' Konfiguration deaktiviert – Paschalis

Antwort

24

Sie die whichwrap Einstellung können h und l Wrap-around-Anfang und Ende der einzelnen Linien machen:

set whichwrap+=h,l 

jedoch Vims Die Dokumentation empfiehlt dagegen, wahrscheinlich weil sie unerwartete Nebenwirkungen haben könnte (wie das Brechen von Plugins oder das Ändern der Funktionsweise von allgemeinen Schlüsselzuordnungen).

Als Alternative können Sie das tun, was was Matti Virkkunen empfohlen:

set whichwrap+=<,>,[,] 

Dies lässt h und l mit ihrem Standardverhalten, sondern ermöglicht es den linken und rechten Pfeiltasten Linien umwickeln. (Dies ist, was ich tue, und es funktioniert gut.)

Sie können auch einen Blick auf die backspace Einstellung, um zu steuern, wie Backspace, Löschen, Control + W und Control + U im Einfügen-Modus arbeiten. Ich setze meins so:

set backspace=indent,eol,start 

Das erlaubt mir, über so ziemlich alles zurückzugehen.

Für mehr Informationen, diese Themen in der Vim-Hilfe:

:help 'whichwrap 
:help 'backspace 
+0

Können Sie erklären, was diese tun? (Was bedeuten '<', '>', '[' und ']'?) –

+0

Hier ist eine browserfreundliche Version von ': help 'whichwrap': https://vimhelp.appspot.com/options.txt. html #% 27whichwrap% 27 –

8

folgendes in Ihre .vimrc Put:

set whichwrap+=<,>,[,] 
+0

Kannst du erklären was das ist? –

+0

@QPaysTaxes: Die Whichwrap-Einstellung legt fest, welche Tasten beim Drücken auf die nächste/vorherige Zeile springen, und das Zeichen bezieht sich danach auf die Cursortasten im normalen Modus bzw. im Einfügemodus. Sie können z.B. 'h, l ', um auch die vim-Bewegungstasten zu haben, wenn du willst. –

Verwandte Themen