Über das Vorwärts- und Rückwärts-Verhalten eines Wortes in Emacs

8

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?

    
alexchenco 16.01.2010, 20:45
quelle

5 Antworten

7

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 Alt + f und Alt + b

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 + b

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 werden

Alt + f Strg + f

Sie können das auch in ein Makro einfügen, so wie das Ergebnis das gleiche ist.

    
Alex Combas 16.01.2010, 20:53
quelle
9

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%     
John Nienart 16.01.2010 21:19
quelle
4

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.

    
Vebjorn Ljosa 16.01.2010 20:51
quelle
4

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%     
arcanereinz 24.12.2013 13:19
quelle
0

Versuchen Sie Folgendes:

%Vor%     
Alex 02.04.2010 10:22
quelle

Tags und Links