ウォンツテック

そでやまのーと

私がemacs、viなどを使う理由

「人生の時間の80%くらいを無駄にしている」人とは? | 日経 xTECH(クロステック)

 ちょっと開発環境について書いてみます。(プログラミング暦の浅い素人ですが)
私が今現在コードを書くときに使っている環境はemacs+screen+vi+lessです。emacsはコードを書く時に使い、viはコンフィグを書くとき、lessはちょっとしたファイルを見るときに使います。screenはそれらの切り替えに使ってます。UNIX系OS環境下で開発に必要な全ての操作を行える時にはベストな環境ではないかと考えてます。これらを使っている理由としては以下になります。

emacsを使う理由

  • バッファ機能
    • 編集ファイルの切り替えが「C-x b or C-x C-b」だけで行える。
    • バッファを切り替えるときにファイル名補完が使えるので数文字打ってtabを打つだけで良い
  • emacsのdired機能
    • 新しく編集したいファイルが近い階層にあるときに、その他のファイルを開くのが楽。一旦開けばバッファ機能でさらに切り替えが楽
  • emacsの英和、和英辞書
    • SDICというFreeの辞書を入れればinfo, man等でわからない単語が出てきても「C-c w (emacs.elで登録しておけば)」ですぐに引ける。
  • emacsの編集機能
    • viには負けますがキー操作だけで全て行えるのでマウスを使うようなエディタに比べて楽です。
  • compile
    • M-x compileにてemacs内でコンパイル出来、エラー箇所へ簡単にジャンプ出来る。

※M-x shellは使ってません(使いこなせてません)。screenを使ったほうが楽だと思ってるので。

viを使う理由

  • 1ファイルの編集ならemacsより(圧倒的に)すぐれていると思うから(理由は以下)
  • 軽い
    • emacsemacs lispファイルを読み込むため多少の時間がかかり、ちょっとしたファイルを編集する時には適さない。
  • キー操作がemacsより(圧倒的に)楽
    • 私はネットワークエンジニアとしてサーバのコンフィグファイルをviでいじっていたのですが、以下の操作がemacsに比べてviの方が楽だと考えてます。
      • 範囲のコピー: emacsだとC-space 移動 C-wで領域を選択してからC-yだけどviだと5yy 移動 p(5行コピーしてペースト)などのようにControlキーを押す必要がない
      • 単語のコピー: emacsだとC-space 移動 C-wで範囲指定のコピーしか出来ないが、viだとyw 移動 pでコピー可。
      • その他コピー: viだとya p, y$ pのように細かい操作が出来るが、emacsでは出来ない
      • 削除: コピーと同様の操作がviでは可能
      • 置換: cw, c$などにより当てはまる領域を簡単に置換出来る(これをemacsでやる方法ないですかね。ものすごい便利なんで)
    • 1行下に空行を追加
      • viだとoを押すだけ。emacsだと C-e enter
  • サーバによってはviしか入ってないから

screenを使う理由

  • sshなどのコンソールを使う時、一つのターミナルソフトで複数の端末をキー操作で切り替える事が出来るから
  • 何らかの障害で接続が切れてしまっても、再度ログインした時に、screenのアタッチ機能を使う事により同じ端末環境に戻れる。
  • 障害が起きなくても、デタッチ→アタッチで同じ端末環境をすぐに復帰出来る。

lessを使う理由

  • 最も軽くファイルが読めるので。


「私が」これらを使っている理由はざっとこんな所です。他にも無意識で使っている機能もあるとは思いますが、emacsのバッファ、viのファイル編集機能は極めて洗練されて便利です。
UNIX系で操作が閉じるときはこれら以外のマウスを使うような環境で書く気は起きません。当然Windows等との混合開発環境においては他のエディタやマウスを使った方が便利な事はあると思います。


私個人的にはviの編集機能にemacsの統合環境が合わさったような物が出来ればまさに理想の環境のような気がします。(vimの統合環境は使った事が無いのですが、ひょっとしたらそれに近いかも?)