LoginSignup
7
8

More than 5 years have passed since last update.

Emacs の ssh接続 を peco と組み合わせて実用的にセットアップ

Posted at

こんにちは、ゆめみ城田です。
今日は 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でこういったことをできるようにしておけば
フットワーク軽く作業できます。

以上です。

7
8
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
7
8