Ich benutze vim seit einigen Jahren als sekundärer Editor, aber aus verschiedenen Gründen benutze ich es immer häufiger, selbst wenn mein primärer Editor verfügbar ist. Ein Problem, das mich immer gestört hat vim
und das mich davon abhält, es häufiger zu verwenden, ist die Art und Weise, wie es mit der Cursorplatzierung umgeht. Der Cursor kann sich nur auf einem Zeichen befinden und nicht zwischen Zeichen, wie dies bei jedem seit 1984 erstellten Editor der Fall wäre.
Um nur ein Beispiel dafür zu nennen, warum dies ein Problem ist: Wenn ich das letzte Wort in einer Zeile löschen möchte, drücke ich $
, um zum Ende der Zeile zu gelangen und dann db
rückwärts zu löschen. Dadurch bleibt ein Zeichen zum Löschen übrig, da $
es nicht wirklich bis zum Ende der Zeile ging, sondern bis zum letzten Zeichen der Zeile und db
nur das, was vor dem aktuellen Zeichen war. Das Problem ist nicht, dass ich einen zusätzlichen Charakter eingeben muss, sondern der zusätzliche Gedanke, der erforderlich ist, um das zu tun, was einfach sein sollte, was meine Aufmerksamkeit von dem ablenkt, was ich tatsächlich erreichen möchte.
Es scheint mir, dass die modernere Platzierung des Ideencursors in jeder Hinsicht überlegen ist, und ich würde gerne zu vim
diesem Ansatz wechseln . Ich bin mir sicher, dass einige Hardcore- vim
Fans meiner Ansicht nicht zustimmen werden, aber da eines der Standardargumente für vim
seine Überlegenheit die unendliche Konfigurierbarkeit ist:
- kann es in diesem Fall liefern?
- Kann
vim
der Cursor zwischen Zeichen gesetzt werden?
Insert
Modus suchen oder den Moduspunkt verpassennormal
. Ich würde das letzte Wort in einer Zeile im normalen Modus löschen$daw
oder$bdw
löschen. ImInsert
Modus würde ich tunA<Ctrl-w>
.$bD
Antworten:
Sie können
:set virtualedit+=onemore
, wodurch Sie direkt über das letzte Zeichen hinausgehen können. Leider geht für Sie$
noch zum letzten Charakter; Sie müssen den Mauszeiger bewegen, um daran vorbei zu kommen. Auf der anderen Seite können Sie verwendeng$
, was normalerweise zum letzten Zeichen der Bildschirmzeile in einer Zeile führt, die umbrochen wird. Imonemore
Modus geht es auch direkt über das letzte Zeichen einer nicht umbrochenen Zeile (oder die letzte Bildschirmzeile einer umbrochenen Zeile) hinaus.:h 'virtualedit'
sagt, dass diese Option Skripte durcheinander bringen kann, aber ich weiß nicht, wie groß das Risiko in der Realität ist.quelle