`(kill-line 0)` beendet die physische Zeile sogar im globalen visuellen Zeilenmodus in Emacs

`(kill-line 0)` beendet die physische Zeile sogar im globalen visuellen Zeilenmodus in Emacs

Ich definiere backward-kill-linees so.

(defun backward-kill-line ()
  (interactive)
  (kill-line 0))

Und ich verwende global-visual-line-mode.

kill-linezerstört die visuelle Verbindung, aber die backward-kill-linephysische Verbindung. Wie kann ich backward-kill-linedas ändern, wodurch nur die visuelle Verbindung zerstört wird?

Antwort1

kill-lineunterbricht auch im Visual Line-Modus immer noch physische Leitungen. Die Taste C-kist jedoch auf zurückgesetzt kill-visual-line.

Emacs hat keinen backward-kill-lineBefehl, aber Sie haben vielleicht irgendwo einen gefunden. Wenn Sie eine Funktion möchten, die die visuelle Leitung beendet, erstellen Sie entweder eine backward-kill-visual-lineFunktion oder verwenden Sie die folgende kombinierte Funktion, die die visuelle Leitung beendet, wenn sie sich im visuellen Leitungsmodus befindet, und andernfalls die physische Leitung.

(defun backward-kill-visual-line (arg)
  "Kill ARG visual lines backward."
  (interactive "p")
  (funcall (if visual-line-mode #'kill-visual-line #'kill-line)
           (- 1 arg)))

verwandte Informationen