3

いくつかのファイルをクリーンアップするには、一連の手順を実行する必要があります。これらの手順の emacs コードは次のとおりです。

(query-replace "," " " nil 
  (if (and transient-mark-mode mark-active) 
    (region-beginning)) 
  (if (and transient-mark-mode mark-active) 
    (region-end)))

(query-replace "1 1/4" "1.25" nil 
  (if (and transient-mark-mode mark-active) 
    (region-beginning)) 
  (if (and transient-mark-mode mark-active) 
    (region-end)))

(query-replace-regexp "[0-9][0-9][0-9]V[0-9][0-9][0-9] " "" nil 
  (if (and transient-mark-mode mark-active) 
    (region-beginning)) 
  (if (and transient-mark-mode mark-active) 
    (region-end)))

(他にもありますが、お分かりいただけると思います) これらすべてのコマンドをファイルに入れて実行する方法はありますか? それとも、lisp ファイルでそれらに名前を割り当てて、名前で実行しますか?

4

1 に答える 1

2

マニュアルのこのセクションを参照できます。やりたいことをすべてメガファンクションに入れますfoo。それを に入れ~/bar.elます。次に、これは仕事をします:

emacs --batch -l ~/bar.el -f foo

UPD: 小さな例

に入れる~/bar.el:

(defun foo ()
  (goto-char (point-min))
  (replace-regexp "foo" "bar")
  (goto-char (point-min))
  (replace-regexp "fred" "barney")
  (save-buffer))

テスト ファイルを作成します。

echo "Fred walks into a foo" > test.txt

今それをテストします:

emacs --batch -l ~/bar.el test.txt -f foo
于 2013-10-07T20:03:06.810 に答える