Die gJ
Kombination macht das; von :help gJ
:
Verbinden Sie [count] Zeilen mit mindestens zwei Zeilen. Fügen Sie keine Leerzeichen ein oder entfernen Sie sie nicht.
Sie können es erneut binden J
, wenn Sie einen Tastendruck speichern möchten:
:nnoremap J gJ
Beachten Sie, dass dies nicht entfernen Sie alle Leerzeichen, so dass , wenn entweder die aktuelle Zeile mit einem Leerzeichen endet oder nächste Zeile beginnt mit einem oder mehreren Leerzeichen, werden sie bleiben wie .
Damit:
Hello
world
Wird:
Hello world
Wir konnten verwenden Jx
in diesem Fall, dann wird es sein Helloworld
, aber das wird nicht in allen Fällen arbeiten; aus der hilfe:
Verbinden Sie die hervorgehobenen Linien mit mindestens zwei Linien. Entfernen Sie den Einzug und fügen Sie bis zu zwei Leerzeichen ein
[...]
Diese Befehle, mit Ausnahme von "gJ", fügen anstelle des Leerzeichens ein Leerzeichen ein, es sei denn, es wird ein Leerzeichen nachgestellt oder die nächste Zeile beginnt mit einem ')'.
In einigen Fällen wird also mehr als ein Leerzeichen oder kein Leerzeichen eingefügt. Soweit ich sehen kann, gibt es keine einfache Möglichkeit, dieses Verhalten zu ändern. Ich habe eine Funktion zum Ändern erstellt, um gJ
immer ohne Leerzeichen zu verbinden:
" Like gJ, but always remove spaces
fun! JoinSpaceless()
execute 'normal gJ'
" Character under cursor is whitespace?
if matchstr(getline('.'), '\%' . col('.') . 'c.') =~ '\s'
" When remove it!
execute 'normal dw'
endif
endfun
" Map it to a key
nnoremap <Leader>J :call JoinSpaceless()<CR>
Siehe auch: :help J
,:help 'joinspaces'