1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

grep実行時に既存の*grep*バッファを残すようにする

1
Posted at

はじめに

grepコマンドを実行した時に、*grep*バッファが1つしか生成されず、既存の*grep*バッファが上書きされるのはコードリーディング時には非常に不便。
なので、バッファ名をリネームするアドバイスを.emacs.elに追加した。

.emacs.el

.emacs.el
;;; .emacs.elの末尾に追加
;; grep実施時に複数のバッファで開けるよう設定
(defadvice grep (after my-grep activate)                              ;; grep実施後に実行
  (let ((grep-buffer (get-buffer "*grep*")))                          ;; *grep*バッファをローカル変数に代入
    (set-buffer grep-buffer)                                          ;; カレントバッファを*grep*バッファに設定
    (rename-buffer (concat "*grep*" "<\"" (ad-get-arg 0) "\">" ) t)   ;; バッファ名をリネームする
  )
)

grep -nH -e "hoge" "*.el"
を実行した時の生成されるバッファ名は下記のようになる。
*grep*<"grep -nH -e "hoge" "*.el">
これで複数のgrepバッファを生成することが可能となった。

個人的につまづいたところ

久しぶりにelispを触ったので忘れていたが、letでローカル変数を定義する場合はローカル変数が1つでも()が2つ必要であった。
今後も注意したい。

*scratch*
;; ローカル変数1つの場合
(let ((hoge 1))
  (+ hoge 2)
)

;; ローカル変数2つの場合
(let ((hoge 1)
      (piyo 2))
  (+ hoge piyo)
)

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?