Ich weiß nicht, ob etwas mit meinen Einstellungen nicht stimmt, aber wenn ich M-f drücke (ein Wort weiterleiten) Es spielt keine Rolle, wo ich bin, es setzt den Cursor niemals in das nächste Wort (nur zwischen Wörtern). Dies passiert nicht mit M-b, die den Cursor an den Anfang des vorherigen Wortes setzen.
Ist das ein normales Verhalten? Wie platziere ich den Cursor am Anfang des folgenden Wortes?
Ok, nur damit wir klar sind, ich gehe davon aus, dass Sie über die Befehle forward-word und rückwärts-word sprechen, die standardmäßig an zB string: "Hallo Dolly, ich bin hier" Wenn sich der Cursor auf dem "H" von "Hello" befindet und Sie forward-word drücken, bewegt sich der Cursor in den Abstand zwischen "Hello" und "dolly", aber es klingt wie Sie möchten, dass der Cursor auf dem Buchstaben "d" von "dolly" steht und nicht davor. Also, führe das Wort zweimal, dann das Wort rückwärts. Das wird den Cursor auf das "d" von "dolly" setzen. Dies kann mit einem Makro automatisiert werden. ;; = Kommentare, tippe sie nicht Strg + x ( ;; Startmakro Alt + f Alt + f Alt
Strg + x ) ; Ende-Makro
Um das zuletzt definierte Makro auszuführen, machen Sie folgendes:
Strg + x e
EDIT: wie in einem Kommentar pascal erwähnt, kann dies auch einfach mit
gemacht werdenAlt + f Strg + f
Sie können das auch in ein Makro einfügen, so wie das Ergebnis das gleiche ist.
Die beschriebene Makro-Lösung ist eine großartige Möglichkeit, dieses Verhalten in einer Sitzung zu erreichen, aber es ist ein wenig unpraktisch, wenn dies das Standardverhalten ist, das Sie wollen, da Sie es bei jedem Start von emacs definieren müssen. Wenn Sie möchten, dass M-f immer so funktioniert, können Sie eine elisp-Funktion definieren und an den Schlüssel binden. Fügen Sie dies in Ihre .emacs-Datei ein:
%Vor%Das ist richtiges Verhalten. Laut dem Emacs-Handbuch stoppt "[f] orward motion direkt nach dem letzter Buchstabe des Wortes, während die Rückwärtsbewegung genau vor dem ersten Buchstaben aufhört. "
Warum ist es so? Vielleicht um mit Tötungswort (M-d) übereinzustimmen.
Es ist in Ordnung, zweimal vorwärts und einmal nach vorne zu gehen, es sei denn, Sie befinden sich am Anfang einer Zeile mit Leerzeichen auf der Vorderseite. Wenn Sie dann zweimal vorwärts und einmal zurückgehen, gelangen Sie zum nächsten Wort, nicht zum ersten Wort. Der folgende Code wird den Befehl "w" von vi perfekt nachahmen. Ich habe das ziemlich schnell geschrieben, damit dieser Code weiter aufgeräumt werden kann.
%Vor%