1
領域が選択されていない場合は現在の行をコピーするためのelisp関数を作成しますが、emacsでは機能しません24.5。 "M-w"キーストロークを押すと、ミニバッファに "Mark set"というメッセージが表示されます。私は何か見落としてますか?このelisp関数の何が問題になっていますか?
(defun copy-region-or-current-line (beg end)
"copy current if no region selected, copy the region otherwise"
(interactive "r")
(let ((cur-pos (point)))
(if (region-active-p)
(kill-ring-save beg end)
(progn
(kill-whole-line)
(yank)
(goto-char cur-pos)))))
(global-set-key (kbd "M-w") 'copy-region-or-current-line)
アカウントに、:として
FYI、
kill-ring-save
へのオプションREGION引数のために、あなたはこれを書き換えることができそのような副作用の中で - コマンドが対話的な文脈で有用であるが実際にはそうでないと望んでいないもの(マークを設定するなど)を行うのは一般的です。場合によっては、コマンドのdocstringが代わりに使用すべきものを指摘するので、それを知っておくとよいでしょう。 – phils