Zum letzten Nicht-Leerzeichen der vorherigen / nächsten Zeile gehen?

10

Ich mag die Tasten -und den <C-M>Normalmodus, um zum ersten Nicht-Leerzeichen der vorherigen / nächsten Zeile zu gelangen.

Gibt es entsprechende Schlüssel, um zum letzten Nicht-Leerzeichen in der vorherigen / nächsten Zeile zu gelangen?

ivan
quelle

Antworten:

13

g_Bewegt den Cursor zum letzten nicht leeren Zeichen der aktuellen Zeile. Von Vim :help g_:

g_          To the last non-blank character of the line and
            [count - 1] lines downward |inclusive|. {not in Vi}

Leider denke ich, dass die einzigen Optionen, die Sie zum nicht leeren Zeichen der vorherigen / nächsten Zeile verschieben müssen, kg_oder jg_bzw. die Verwendung einer Zählung sind, um nach unten zu wechseln.

Es ist jedoch einfach, sie auf etwas Einfacheres abzubilden:

nnoremap <F3> kg_
nnoremap <F4> jg_
Akshay
quelle
1
Beachten Sie auch, dass dies 2g_auch funktioniert, wenn Sie zum letzten Nicht-Leerzeichen in der nächsten Zeile wechseln möchten. Dies kann jedoch nicht für die vorherige Zeile verwendet werden. Der Vorteil von 2g_ist, dass es mit.
EvergreenTree
1
Bewegungen (wie g_) sind mit nicht wiederholbar .. Im Allgemeinen können nur Dinge wiederholt werden, die den Status des Puffers ändern.
Tommcdo
In Kombination mit einem Operator funktioniert das Wiederholen jedoch. Vielleicht war es das, worauf Sie sich bezogen haben
tommcdo
Ah, ich wusste nicht, dass Bewegungen nicht wiederholbar sind. Ich sollte mir die Dokumente ansehen, bevor ich etwas sage.
EvergreenTree
0

Wenn Sie das nächste Nicht-Leerzeichen der vorherigen / nächsten Zeilen meinen (indem Sie vertikal gehen), versuchen Sie Folgendes:

map <C-k> :call search('\%' . virtcol('.') . 'v\S', 'bW')<CR>
map <C-j> :call search('\%' . virtcol('.') . 'v\S', 'wW')<CR>
Kenorb
quelle