Emacs: lösche Leerzeichen oder ein Wort

7

Wie kann ich Emacs so konfigurieren, dass sie auf die gleiche Weise wie andere moderne Editoren funktionieren, wenn Alt + D Alt + gedrückt wird Backspace Löscht entweder benachbarte Leerzeichen oder ein einzelnes Wort? Standardmäßig löscht Emacs immer ein Wort.

    
woodings 30.07.2013, 22:13
quelle

4 Antworten

9

Nachdem ich einige Zeit mit Emacs gearbeitet hatte, dachte ich mir, dass sich die Grundfunktionalität zwar ändert, sich aber in der Regel nicht viel auszahlt. In der Tat, nachdem ich es mehrmals getan habe, habe ich es bereuen und es rückgängig gemacht. Das ist nicht immer der Fall, einige Tastaturbelegungen sind wirklich unangenehm oder selten nützlich, aber ich denke nicht, dass dies der Fall ist, wenn Kill Word funktioniert. In der Tat, ich habe gerade jetzt festgestellt, dass: Ich habe versucht, die Tastatur in Eclipse, aber ich habe es mit Emacs-Stil Kebindings seit Ewigkeiten verwendet ...

Jedenfalls, wie ich gerade sagte, bevor Sie diese Funktionalität "reparieren", stellen Sie sicher, dass es wirklich kaputt ist :) Ich finde mich nie die Art von Funktion, die Sie beschreiben, und vielleicht ist hier, warum:

  1. M-SPC reduziert den Abstand zwischen Wörtern auf nur ein Leerzeichen. Dies hätte ich verwendet, wenn der Punkt zwischen den Wörtern lag und ich den zusätzlichen Abstand zwischen den Wörtern löschen wollte.

  2. M - \ entfernt den gesamten horizontalen Raum. Dadurch werden zwei durch Leerzeichen getrennte Wörter verbunden.

  3. Wenn Sie versuchen, eine "spärliche" Formatierung zu erreichen, wie in:

%Vor%

Dann gibt es M-x align-regexp , um das zu tun.

  1. Ich habe einfach nie a) lange konsequente Läufe von whitesace, es sei denn es ist die Einrückung, und in dem Fall ist es die Einrückung, TAB behandelt es normalerweise besser. b) Auch wenn es lange aufeinanderfolgende Whitespaces gibt, verschiebe ich den Punkt nur selten um ein Zeichen, so dass es schwer ist, eine Situation zu finden, in der ich den Punkt von mehreren Leerzeichen umgeben finden würde. Dinge wie der Künstlermodus oder Punktdiagramme kommen mir in den Sinn, aber das passiert nicht während der Code-Bearbeitung.

  2. Wenn Sie schließlich versuchen, eine beliebige Textdatei zu bearbeiten und den horizontalen Abstand zwischen den Wörtern hinzuzufügen oder zu entfernen, dann ... Mx align-regexp , um das zu tun, oder Sie könnten Befehle verwenden, die auf Rechtecke wirken, wenn diese zu der Zeit mehrere Zeilen sind. Nun, Emacs wird sogar die Ad-hoc-Registerkarten erkennen und versuchen, den Text so auszurichten, dass er mit der letzten Zeile vor dem Punkt übereinstimmt, wenn Sie TAB drücken.

Schließlich, wenn ich aus irgendeinem Grund nicht ergründen kann :) Ich musste wirklich genau das tun, was du beschreibst, dann würde ich es so machen: k M - \ RÜCKTASTE (es kann ein beliebiger anderer Schlüssel anstelle von "k" sein - es ist direkt unter Ihrem Finger, also ist es schnell zu tippen :) Oder, wenn ich faul bin darüber nachzudenken: < kbd> M-SPC Mf Mb Cw - klingt vielleicht nach viel, aber das sind die Befehle, die Sie alle verwenden würden von der Zeit sowieso, so behindert es Sie nicht in Bezug auf die Geschwindigkeit.

    
user797257 31.07.2013 07:22
quelle
7
  %Vor%     
lawlist 14.04.2015 02:56
quelle
4

Dies wurde wahrscheinlich schon vorher gelöst, aber anstatt nach Code zu suchen, können wir unseren eigenen schreiben. So viel Spaß!

So würde ich es machen, hoffe es hilft.

%Vor%

Dann binden Sie es an einen Schlüssel:

%Vor%     
michaelJohn 30.07.2013 23:37
quelle
1

Wenn Sie einen CC-Modus-basierten Puffer verwenden, suchen Sie wahrscheinlich nach dem Hungry Delete Mode -Minor-Modus.

Probieren Sie Cc DEL und Cc DELETE an mehreren Stellen aus, um ein Gefühl für den Unterschied zu bekommen. p>

Wenn Sie möchten, wie es funktioniert, können Sie die hungrige Löschung für die Standardschlüssel aktivieren, indem Sie M-x c-toggle-hungry-state ausführen oder die hungrigen Löschfunktionen einfach an Ihre bevorzugte Bindung binden.

Wenn Sie immer noch denken, dass Sie eine Taste drücken müssen, um das Wort oder zu löschen, dann können Sie etwas Ähnliches wie c-hungry-delete-forward tun, oder einfach nur c-delete-function erneut binden und es aufrufen.

%Vor%

Sehen Sie sich die Info-Seite (ccmode) Hungry WS Deletion für mehr an.

    
assem 31.07.2013 00:04
quelle

Tags und Links