後方キルワードは空白を無視しますが、別のわかりやすいバージョンはありますか?


7

Emac backward-kill-wordは私が望む以上に削除する傾向があります。
例えば私がこれで複数回削除を押すと:

(key-chord "qf" 'helm-org-in-buffer-headings)   ;heading search. |

私は得ます:

1. (key-chord "qf" 'helm-org-in-buffer-headings)   ;heading|
2. (key-chord "qf" 'helm-org-in-buffer-headings)   ;|
3. (key-chord "qf" 'helm-org-in-buffer-|   <<< too much deletion. 

私は3番目のステップでこれを期待しました:

3. (key-chord "qf" 'helm-org-in-buffer-headings)|

知りたい:-必要以上のものを削除する背後にある哲学はありますか?
-emacの逆方向削除ワードをよりフレンドリーにすることはできますか?つまり、空白を削除しますが、あまりにも多くのことを殺しませんか?

編集 私が欲しいものは本当にわかりません。たぶん、それをgoogle-keepや他のテキスト編集アプリケーションのような他の削除機能のようにしてください。

edit2
それまでの間、ローリストはかなりうまくいく彼のカスタム関数を修正しました:ここにリンクの説明を入力してください


2
これは不明確であるとして閉じられるリスクがあります。希望する動作は指定しません。指定します。 backward-kill-word意図されていることを行います。別のコマンドを定義して、「やりたいこと」を実行し、「あまりにも多くのことをやめる」ことはできません。しかし、それについて助けが必要な場合は、実際に探している動作を指定することを検討してください。
2015

1
ここでは、あなたのニーズに合うように興味を持って修正することも私自身の削除ワード機能へのリンクは、次のとおりです。 stackoverflow.com/a/20456861/2112489は、 キル・リングに削除を格納するように設計されていないので、私はそれを呼び出します削除するのではなく削除します。それは舵やキーコードとは何の関係もありません。(私の意見では)動作は、さまざまなワードプロセッサが何年にもわたって行ったこととほぼ同じです。
法律家、2015

@lawlistええ、これは多かれ少なかれ私が探していたものですが、折り返さない関数があり、後続の空白がある場合に削除を開始しませんでした。
Leo Ufimtsev 2015

Emacsの哲学は、常にユーザーの1歩先を行くことです。
politza

@LeoUfimtsev私が提供したソリューションについて、気に入らない点はありますか?
rekado 2015

回答:


4

の動作はbackward-kill-word、現在のモードでの「単語」の定義に依存します。この定義を変更して、何かを壊す危険を冒すか、変更することができますkill-word

backward-kill-word単にkill-word負の引数があります。kill-wordあるkill-regionポイントが及ぶ領域と実行した後の位置の上に(forward-word arg)forward-word一時的に交換することでうまくいくはずです。

ここで私は一時的に置き換えforward-wordforward-same-syntax、目的の効果を達成していますbackward-kill-wordkill-word一貫性を保つことが好きなので):

(defun my/kill-word-advice (orig-fun &rest args)
  "Replace forward-word with forward-same-syntax."
  (cl-letf (((symbol-function 'forward-word) #'forward-same-syntax))
    (apply orig-fun args)))
(advice-add 'kill-word :around #'my/kill-word-advice)

今の動作はこれです:

1. (key-chord "qf" 'helm-org-in-buffer-headings)   ;heading|
2. (key-chord "qf" 'helm-org-in-buffer-headings)   ;|
3. (key-chord "qf" 'helm-org-in-buffer-headings)   |
4. (key-chord "qf" 'helm-org-in-buffer-headings)|
5. (key-chord "qf" 'helm-org-in-buffer-headings|
5. (key-chord "qf" 'helm-org-in-buffer-|

1
こんにちは、私は上記を試しましたが、後方に殺す単語を実行するとき、私はまだ古い行動をします。私は、最新のORG-modeでのEmacs 25.4によ...
レオUfimtsev

@LeoUfimtsev 25.4がどこかで言及されているのを見ました。24.5ですか?または24.4?
Kaushal Modi

うーん、私は混乱したと思います。25.0.50.4を意味しました。そして、おそらく1か月前に25.0.50.3を使用しましたが、今は更新しました。
Leo Ufimtsev 2015

@rekado 24.5.1ではこれを機能させることができません。何か案が?advice-addsexpを実行するとが返されますがnil、それは期待されたものですか?
Lenar Hoyt 2015

1
それは非常によくあなたが最初のevalの本来の定義に持っているかもしれkill-wordアドバイスが適用される前に:(つまり、なぜ私にはわからないメーリングリストでお願いします。。
rekado
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.