Help us understand the problem. What is going on with this article?

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

More than 3 years have passed since last update.

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

以上です。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした