Wenn es Ihnen nichts ausmacht, eine andere Kombination als zu drücken cw
, können Sie meiner Meinung nach leicht das bekommen, was Sie wollen, indem Sie eine Verknüpfung definieren. Was Sie tun können, ist Folgendes zu platzieren
nmap <leader>a "1yiw:let @/=@1^Mciw
in Ihrer .vimrc
Datei. Beachten Sie, dass dies ^M
eine Erfassung der Eingabetaste ist und nicht der Zeichen ^
und M
. Sie erhalten es, indem Sie im Einfügemodus Ctrl+ drücken V, gefolgt von Enter. Wenn dies definiert ist, <leader>a
wird das Drücken genauso ausgeführt wie cw
, aber jetzt befindet sich das Wort (vor der Änderung) in Ihrem "letzten Suchregister" (dh dem /
Register). Drücken nSie also, nachdem Sie die Änderung vorgenommen und zurückgegeben haben Im normalen Modus gelangen Sie zum nächsten Ereignis. Ebenso Ngelangen Sie durch Drücken von zum vorherigen Vorkommen.
Die Verknüpfung Sie können natürlich eine andere Verknüpfung als wählen <leader>a
, aber ich finde nur, dass dies eine sehr leicht zugängliche Verknüpfung ist. Persönlich habe ich mich so eingestellt <leader>
, ,
dass ich nur drücken muss, ,gefolgt von a, aber das liegt daran, dass ich keine amerikanische Tastatur benutze, so dass meine \etwas versteckt ist (ich glaube, das \ist die Standardeinstellung <leader>
).
Erklärung Die Idee ist wirklich einfach. Ziehen Sie das Wort unter dem Cursor in das Suchregister /
und tun Sie es dann cw
. Das nmap <leader>a "/yciw
war mein Ziel, aber ich glaube leider nicht, dass Sie in das Suchregister ziehen können. Die Problemumgehung besteht darin, das Wort unter dem Cursor in das 1
Register zu ziehen, dann das /
Register gleich zu setzen und dann zu tun cw
. So "1yiw
ist der Teil, der das innere Wort unter dem Cursor in das Register zerrt 1
. Wenn Sie nichts über innere Wörter wissen, können Sie auschecken :help iw
. Anschließend :let @/=@1
folgt eine Erfassung von Entersetzt den Inhalt des 1
Registers in die /
. An diesem Punkt nundNfunktioniert als nächstes und vorheriges Vorkommen des Wortes unter dem Cursor, und dann ciw
wird a ausgeführt, so dass das Wort unter dem Cursor gelöscht und Vim in den Einfügemodus versetzt wird.
Wort gegen inneres Wort Mir wurde gerade klar, dass ich davon ausgegangen bin, dass Sie das gesamte Wort unter dem Cursor haben wollten, und nicht nur vom Standpunkt des Cursors und weiter. Deshalb habe ich iw
statt w
überall verwendet. Wenn dies nicht der Fall ist, sollten Sie verwenden
nmap <leader>a "1yw:let @/=@1^Mcw
stattdessen. Befindet sich der Cursor auf dem ersten Buchstaben des Wortes, gibt es keinen Unterschied.
Haftungsausschluss Diese Lösung wird wahrscheinlich auch nicht, wenn Sie versuchen , es zu verwenden , um auf etwas , das Zeug unterscheidet sich von Buchstaben enthält, zum Beispiel , indem Sie auf ein den Cursor Stand mit \
oder durch Ersetzen iw
von iW
, ib
, is
oder ip
oder etwas (obwohl ich weiß nicht , warum würden Sie möchte diese Funktion mit ganzen Sätzen)
*
Suche. Insbesondere wird*
das aktuelle Wort visuell ausgewählt, ohne den Cursor zu bewegen. Sobald es installiert ist, können Sie*ciw
das alte Wort in das Suchregister einfügen und das Wort ändern. Dann können Sien
und verwenden.
.