我只想C-瓦特和M-瓦特修改殺環,與該系統的剪貼板[C-C(副本),C-X(切口)]沿。Emacs的 - 如何改變殺刪除?
我用M-d和M-DEL時候,但我不希望通過每一次M-Ÿ猛拉,然後循環。
我看着the emacs manual但它並沒有回答我的問題。
例如:我想將M-d「kill-word」綁定到「delete-word」,但「delete-word」不存在。我如何會這樣呢?任何幫助,將不勝感激。
我只想C-瓦特和M-瓦特修改殺環,與該系統的剪貼板[C-C(副本),C-X(切口)]沿。Emacs的 - 如何改變殺刪除?
我用M-d和M-DEL時候,但我不希望通過每一次M-Ÿ猛拉,然後循環。
我看着the emacs manual但它並沒有回答我的問題。
例如:我想將M-d「kill-word」綁定到「delete-word」,但「delete-word」不存在。我如何會這樣呢?任何幫助,將不勝感激。
從EmacsWiki https://www.emacswiki.org/emacs/BackwardDeleteWord
(defun delete-word (arg)
"Delete characters forward until encountering the end of a word.
With argument, do this that many times."
(interactive "p")
(if (use-region-p)
(delete-region (region-beginning) (region-end))
(delete-region (point) (progn (forward-word arg) (point)))))
(defun backward-delete-word (arg)
"Delete characters backward until encountering the end of a word.
With argument, do this that many times."
(interactive "p")
(delete-word (- arg)))
(global-set-key (read-kbd-macro "<M-DEL>") 'backward-delete-word)
我想你想使用delete-region
而不是kill-region
,所以文本沒有保存在kill-ring中,例如。沿線的東西
(defun my-delete-word (start)
(interactive "d")
(backward-word)
(delete-region (point) start))
我做了一個宏,將任何kill命令更改爲刪除命令。
(defmacro delete-instead-of-kill (&rest body)
"Replaces `kill-region' with `delete-region' in BODY."
`(cl-letf (((symbol-function 'kill-region)
(lambda (beg end &optional region)
;; FIXME: account for region arg
(delete-region beg end))))
,@body))
(defun delete-word (&optional arg)
"Like `kill-word', but deletes instead of killing."
(interactive "p")
(delete-instead-of-kill (kill-word arg)))
我使用了類似的宏複製。
(defmacro copy-instead-of-kill (&rest body)
"Replaces `kill-region' with `kill-ring-save' in BODY."
`(cl-letf (((symbol-function 'kill-region)
(lambda (beg end &optional region)
(kill-ring-save beg end region)
(setq this-command 'kill-region))))
,@body))
見的Emacs維基,頁面[BackwardDeleteWord](https://www.emacswiki.org/emacs/BackwardDeleteWord)。 – Drew