Emacsclientを利用してターミナルからCarbonEmacsを便利に使う
~/.emacsの最後に
(server-start)
と書き,~/.zshrcに
function e() { emacsclient -e '(elscreen-create)' 2>/dev/null && emacsclient -n $* 2>/dev/null || open -a /Applications/Emacs.app $* }
と書く.
こうするとターミナルで
$ e path/to/file/or/dir
と打てばそのファイルもしくはディレクトリをemacsの新規elscreenタブで開く.
既にemacsを開いているなら,そのEmacsで開いてくれる.便利.
追記
引数が1つしか取れないのを戻した.でもこれだとelscreenタブを開いてもあまり嬉しくない…
追記2
Re: Emacsclientを利用してターミナルからCarbonEmacsを便利に使う - hitode909のダイアリーを受けて,修正.
これならファイルが存在しないときでも開いてくれる.
function e() { emacsclient -n ${*:-.} 2>/dev/null && return 0 if [ -e $1 ] || touch $1; then open -a /Applications/Emacs.app ${*:-.} fi }
ディレクトリがないときはどうしようもないけど,まあそれはないだろうと.やるなら
touch $1; → touch $1 2>/dev/null || mkdir $1 とかかな.
無いファイルを開くときはせいぜい1つだろうという想定.
touch $*とするとアクセス時間が変わるのでちょっと嫌.forでやるという方法もあるけど,まあこれで満足.