Wie entferne ich intelligente Anführungszeichen beim Kopieren / Einfügen?


13

Ich kopiere Text aus Google Chrome oder PDFs und füge ihn in Emacs ein.

Der Originaltext enthält intelligente Anführungszeichen. Ich möchte keine intelligenten Anführungszeichen in der Ausgabe.

Gibt es eine Möglichkeit, entweder auf der Kopierseite oder auf der Einfügeseite die intelligenten Anführungszeichen automatisch zu entfernen?



Dasselbe Problem tritt beim Kopieren aus verschiedenen Texteditoren unter OS X auf, wenn die Systemeinstellung "Intelligente Anführungszeichen verwenden" aktiviert ist. Dies ist insbesondere beim Kopieren von Evernote in ein Webformular aufgetreten, bei dem alle "intelligenten" Anführungszeichen und Apostrophe vollständig entfernt wurden. Die akzeptierte Antwort lieferte einen ordentlichen Zwischenschritt, um dies zu lösen.
TheBamf

Antworten:


14

Wie wäre es mit:

(defun replace-smart-quotes (beg end)
  "Replace 'smart quotes' in buffer or region with ascii quotes."
  (interactive "r")
  (format-replace-strings '(("\x201C" . "\"")
                            ("\x201D" . "\"")
                            ("\x2018" . "'")
                            ("\x2019" . "'"))
                          nil beg end))

Geben Sie das in Ihr ~/.emacsund Sie sollten in der Lage sein, M-x replace-smart-quotesalle Anführungszeichen im aktuellen Puffer oder in der ausgewählten Region zu korrigieren.

Um zu vermeiden, dass Emacs neu gestartet wird, damit die ~/.emacsÄnderung wirksam wird, bewegen Sie den Cursor an das Ende von defunmit M-C-eund werten Sie es aus C-x C-e.

Update re Kommentar:

Um dies beim Einfügen automatisch zu tun, können Sie Folgendes tun:

(defun yank-and-replace-smart-quotes ()
  "Yank (paste) and replace smart quotes from the source with ascii quotes."
  (interactive)
  (yank)
  (replace-smart-quotes (mark) (point)))

Wenn Sie das dann tun möchten, wenn Sie schlagen C-y, können Sie es mit binden:

(global-set-key (kbd "C-y") 'yank-and-replace-smart-quotes)

Es ist wahrscheinlich eine bessere Idee, jedoch (möglicherweise C-c y) einen anderen Schlüssel zu verwenden, da hierdurch einige der Standardfunktionen verwendet yankwerden.


Vielen Dank. Aber was ist mit einer Funktion, die die Anführungszeichen beim Kopieren / Einfügen entfernt? Ein bisschen wie "Einfügen und Formatieren anpassen" mit einfachen Anführungszeichen.
weißglühender

2
Das kannst du auch, ich habe ein Beispiel hinzugefügt. Vergessen Sie nicht, die Antwort zu akzeptieren, wenn dies Ihr Problem löst.
Tom
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.