こんにちは、ゆめみ城田です。
今日は Emacs と peco を組み合わせた作業環境構築のことについて書きます。
やりたいこと
覚えきれない数の接続先を設定した.ssh/configからホスト名を選択するだけで、
Emacsを起動させ、選択したホストにtramp接続(ssh接続)して、接続先で sudo su - を行って Diredit を開いておく
上記をMacのローカル環境ターミナルから実現します。
前提となる環境
Mac環境
homebrew環境
Emacs環境
pecoのインストール
目次
1)pecoのセットアップ
2)Emacsのセットアップ
3)シェル環境のセットアップ
1)pecoのセットアップ
pecoはゆめみF氏の紹介で知り、普段のssh接続でもお世話になりっぱなしです。
導入はhomebrewコマンドで簡単にできます
brew install peco
参考:http://qiita.com/d6rkaiz/items/46e9c61c412c89e84c38
2)Emacsのセットアップ
Emacs設定画面にて下記を設定
(add-to-list 'tramp-default-proxies-alist
'(nil "\\`root\\'" "/ssh:%h:"))
(add-to-list 'tramp-default-proxies-alist
'("localhost" nil nil))
(add-to-list 'tramp-default-proxies-alist
'((regexp-quote (system-name)) nil nil))
これで C+X C+F /sudo:hostname:/
で tramp接続 後 sudo su -
をしてくれるようになります
参考ページ:http://qiita.com/miyakou1982/items/d05e1ce07ad632c94720
3)シェル環境設定
vi ~/.bashrc
などで下記aliasを設定
alias sudoemacs='emacs /sudo:$(grep -iE "^host[[:space:]]+[^*]" ~/.ssh/config|peco|awk "{print \$2}"):/'
今回はこのコマンドに sudoemacs
という名前を付けました。
これにて、
Macローカル環境で sudoemacs
と打つと、pecoが起動して下記のような画面になります。
QUERY>
Host server001.jp
Host server002.jp
Host server003.jp
Host test01.yumemi.jp
Host test02.yumemi.jp
Host test03.yumemi.jp
上記にて例えば yumemi
と打つと、ホスト名に yumemi
が入るホスト名だけ表示されますので、
今回は test01.yumemi.jp
を選択してEnterするだけで
QUERY> yumemi
Host test01.yumemi.jp
Host test02.yumemi.jp
Host test03.yumemi.jp
Emacsが起動し test01.yumemi.jp
にtramp接続後 sudo su -
されました。
設定した背景
プロジェクトによっては、
- 自分専用の開発環境が無い
- 自分専用の開発環境をローカルに作成している時間がない
ということがあるかと思います。
そういった場合の共有開発環境でソースコードを触る際、
suして他のユーザになって、さらにEmacs派にとってvimで作業するのは
苦行以外の何者でもありません。
SublimeText や Atom、各IDEなどにもやり方はあると思いますが、
使い慣れたEmacsでこういったことをできるようにしておけば
フットワーク軽く作業できます。
以上です。