2010-12-14 24 views
4

最初の空白まで削除(前方または後方)するEmacs関数はありますか?例えば、私は次の行を持っている、とカーソルがキャレットでマークされていますEmacsの空白まで削除する

someword ?(&)!* morewords 
      ^

私は、英数字以外の文字の後方列ではなく、単語somewordを削除したいです。 backward-delete-wordを使用すると、単語も消去されます。奇妙な文字の前のカーソルと同じでkill-wordです。

+0

あなたが知っている、あなたはほぼすべてのテキスト領域に起こって同じことを持って、例えばここではスタック上の検索フィールドを試してみてください... – Patrick

+1

真実ですが、検索フィールドに何千ものコードや散文を書きません。 –

+0

@リトル:いいえ、私はそれを指摘したいと思います。私はそれが面白い質問だと思う。しかし、問題は、emacsが "他の人がやっていること"に準拠しておらず、論理的な "kill-word"機能を提供していない場合です。 :) – Patrick

答えて

3

私は任意の機能を知りませんが、それはものを作るのに十分な簡単です:

(defun my-delete-backward-to-ws() 
    (interactive) 
    (delete-region (point) (save-excursion (skip-syntax-backward "^ ") (point)))) 
+0

私がこのコメントを書いている時点では、空白にはならず、空白にのみ行きます。 –

+0

@ブライアンオークリー:うーん、私のために働く。タブと改行には空白の構文があるはずです...なぜ特定のモードではないのかわかりません。 – scottfrazer

+0

私の間違い。あなたは正しいです。私は構文クラスではなく正規表現を考えていました。 –

19

emacsには、特定の文字までのすべてを削除する機能zap-to-charがあります。だから、これはすべての空白では機能しませんが、あなたの特定の問題がスペースまでのすべてであれば、この関数を使うことができます。関数を負の引数にして、逆方向に移動します。

+11

デフォルトで 'M-z'にバインドされています。 – Gilles