2

bash で Cw を押すと、カーソルの前の単語が削除されます。emacs では、リージョンをヤンクしますが、アクティブなリージョンがない場合は、前方にキルします。Cwを bash シェルのように動作させるにはどうすればよいですか? アクティブな領域をチェックする関数を作成してから、(backwards-kill-word)または(kill-region)のいずれかを強制終了することを決定する必要がありますか、それとも別の方法がありますか?

4

2 に答える 2

3

私のdefuns.elから(おそらく他の場所からリッピングされた):

(defun kill-region-or-backward-word ()
  "If the region is active and non-empty, call `kill-region'.
Otherwise, call `backward-kill-word'."
  (interactive)
  (call-interactively
   (if (use-region-p) 'kill-region 'backward-kill-word)))

編集: #emacs の tali713 には、call-interactively を備えたこのより優れたバージョンがありました。

于 2012-12-26T23:10:25.783 に答える
1

あなたはすでにあなた自身の質問に答えています。これまたはそれを行うには、いくつかの行の elisp を書くだけです。

(if mark-active 
于 2012-12-12T17:11:14.987 に答える