新人プログラマ応援タグができたということで開発環境について少し書いてみました。
対象者
新人Web系の開発者
なぜVimを勧めるのか
どのエディタを使ったらいいかと聞かれるとVimと即答します。
最近だとAtomやSublime Textを使っている人も多いと思いますが、Vimをおすすめします。
どのエディタが使いやすいかというのは、宗教問題という比喩があるように闇が深い問題になっており人それぞれだと思います。私はVimを使いやすいから勧めるわけではありません。
Vimを勧める理由は、サーバで作業するようになったときにスムーズに作業が進めれるためです。
インフラエンジニアでない限り、始めの方(1年目)はサーバに入って作業することはほとんどないと思います。しかし、早い人では開発がなんとなくできるようになったぐらいからサーバで作業することが出てくると思います。サーバでファイルを編集する際に使うのは、ほとんどの場合vi(Vim)です。その際に普段から使っていないと操作が独特なため、四苦八苦してしまいます。
サーバで作業する際に四苦八苦しないように日頃からVimを使っておくことをおすすめします。
※ただ、開発環境でVimを使うときは自分好みにカスタマイズして使うので、サーバで作業するときに使う初期設定のままのviは使いずらいとは思ってしまいます。
なぜ開発環境でtmuxを使うのか
結論から言うとこちらも
サーバで作業するようになったときにスムーズに作業が進められるためです。
tmuxとは、仮想端末ソフトです。1つの端末から複数の端末を起動できます。また、attach、detach機能があり、端末の状態を保存できます。例えば、通常、SSH接続している際にネットワークが切れてしまうと作業内容が消えてしまいます。しかし、tmuxを使っていれば、接続が切れた際に状態を保存しておいてくれるため、ネットワークが復旧したあとにattachをすると元の状態に戻ってくれます。また、実行に一晩中かかるよう処理を実行する際、端末を閉じると処理が終了されてしまいますが、detachを使うと状態を保存したまま端末を閉じることができます。
そのためサーバで作業をする際、仮想端末ソフトはほぼ必須だと思います。
同じようなソフトでscreenがあります。機能自体はほとんど変わりませんが、tmuxの方が活発に開発されており、使っている人が多い印象です。そのため、tmuxをおすすめします。
その他に仮想端末ソフトを使うと端末の切り替えがスムーズにできます。最近の端末はタブ機能があるので、端末の切り替えをスムーズにできますが、タブ機能の切り替えより仮想端末ソフト使って切り替えた方が早く、ホームポジションから手離さなくてもよくなります。また、画面の分割も簡単にできます。
まとめ
サーバに入ったときと同じような環境で開発するとなにかと役立ちます!!
しかし、2つともにキーバインドを覚えるのが少し大変なため頑張って!!