2011-10-12 2 views
10

は、私は次のように末尾のスペースをで埋め長さの線を固定しているテキストファイル、持っている:emacsでtrailngの空白を削除するにはどうしたらいいですか?

hello world     ↩ 
this is some other line  ↩ 
x       ↩ 

をして

hello world↩ 
this is some other line↩ 
x↩ 

がそれをているように見えるので、私はそれぞれの行に末尾のスペースを削除したいですこれを解決できるemacsマクロを書くことが可能ですか?

編集:行がそう

hi  world    ↩ 

は、このファイル内の有効な行することができ、末尾にスペースの前にスペースの任意の番号を持つことができます。一つだけのスペースに複数のスペースを縮小

答えて

1

Emacsが内蔵されていfixup-whitespaceM-space)、:最初

  • :だから

    hello  world   ↩ 
            ^
            cursor 
    
    M-x fixup-whitespace 
    
    hello world ↩ 
         ^
         cursor 
    

    、あなたは、単にそのマクロを定義することができますが

  • fixup-whitespaceは、最後の空白を削除する呼び出す

もう1つはM-x replace-regexp RET [ ]+' RET ' RETで、これは正規表現を使用して問題を解決します。

+1

本当に正しい質問は、アポストロフィが実際の一部ではないこと... vhallacから、次の –

+0

注意です彼の問題、正規表現についてのあなたのアドバイスは技術的に間違っています。 s/'/ $ /それは正しいです。 – jrockway

+0

元の質問にアポストロフィが含まれています。 – phimuemue

31

最後の文字の後の空白を取り除くemacsコマンドdelete-trailing-whitespaceがあります。領域を指定せずに実行すると、バッファ全体がクリーンアップされます。アクティブ領域がある場合は、領域内のラインのみがクリーニングされます。

多くの人々、彼らは、ファイルを保存するたびに、すべての後続の空白がクリーンアップされるように、彼らの.emacsに次のコードを追加します。

(add-hook 'before-save-hook 
      'delete-trailing-whitespace) 
1

私はあなたが答えをすでに持って知っているが、中fixup-whitespaceに加えて、delete-horizontal-whitespaceもあり、ポイントの周りのすべての空白を削除します。さまざまな状況で役に立つ他の関連コマンドがいくつかあります。あなたはM-: (info "(elisp) User-Level Deletion")でそれらを見ることができます。

関連する問題