2020-06-26 Fri. 22:32:54 JST
linux
by kiyozzy
emacsを使っていると grep-find を頻繁に使う場合がある。
その都度、
コマンドラインから emacsclient を立ち上げて grep-find させるには次のように行う。
vi ~/bin/emacs_grep_cmd.sh
#!/bin/bash
ARG="$1"
if [ "$ARG" == "" ];then
exit
fi
emacsclient -a "" -c --eval "(sleep-for 0.1)" "(set-frame-width nil 200)" "(grep-find \"find . -type f -exec grep -nH --null \\\"$ARG\\\" \\\{\\\} \\\;\")" &
chmod a+x ~/bin/emacs_grep_cmd.sh しておく。Nautilus(caja)(- Windowsで言うエクスプローラみたいなアプリ) の右クリックから
emacs の grep-find をできるようになれば、
ディレクトリ以下からgrepして内容を確認するのが快適になる。
Nautilus(caja)のscriptは端末から引数を指定するわけにはいかないので、
上記スクリプトの、検索ワードを引数から取っている所を
GUIのダイアログにて代用する。
スクリプトの置き場所は使っている環境で異なるので調べてください。
Ubuntu MATE の caja だと ~/.config/caja/scripts/ です。chmod a+x してください。
#!/bin/bash
ARG=`zenity --entry`
if [ "$ARG" == "" ];then
exit
fi
emacsclient -a "" -c --eval "(sleep-for 0.1)" "(set-frame-width nil 200)" "(grep-find \"find . -type f -exec grep -nH --null \\\"$ARG\\\" \\\{\\\} \\\;\")" &
Nautilus(caja)で右クリック
検索ワード入力
emacsが立ち上がる
これで emacs の grep-find が 快適になる...といいな。
find コマンドも、 emacsの find-name-dired でする場合は以下。
#!/bin/bash
ARG=`zenity --entry`
if [ "$ARG" == "" ];then
exit
fi
emacsclient -a "" -c --eval "(sleep-for 0.1)" "(set-frame-width nil 200)" "(find-name-dired \".\" \"$ARG\")" &