oh-my-zshの導入とか、zshとvimの環境をナウでヤングでシンプルな感じにした


エンジニアだった自分も含めて専門職がよくやらかすのが、俺流をこじらせてカスタマイズし過ぎて、個人のパフォーマンスは上がったけど、作業ミスのリスクが高くなってるとか、独自すぎる俺流に慣れ過ぎて、パフォーマンスの高い新しい標準的技術についていけなくて、逆にその時点からのパフォーマンスが下がるとか。


リスクについては例えばこういうケース。

担当者が長年マニュアル無視、上長も容認──ファーストサーバ障害、調査報告書を公開 - ITmedia
同社のシステムメンテナンスは通常、社内マニュアルに沿って行われるが、不具合を起こした担当者だけは約10年前からマニュアルを無視し、自ら作成した更新プログラムを利用するなど独自方式でメンテナンスを行ない、上長もそれを容認していたという。
この担当者が6月20日午後5時ごろ、メールシステムの障害対策のため、以前作成した更新プログラムを改変し、更新プログラムを作成した。その際、過去に書いていた「対象外サーバ群のファイル削除」コマンドを消し忘れたという。
複数人にレビューされていないコードとかでクリティカルな業務をやるのはよくない。自分はもう仕事でコード書くことがなくなったので、今ではあまり重要でないけど、.zshrcや.vimrcなどにもできるだけ独自のコードを書くことなく、一般的なプラグインに依存するようにしています。

多くの人にレビューされた標準的な仕組みでシンプルな形にした方が作業ミスのリスクを圧倒的に減らせるのと、他人から教えてもらったり、逆に教えたりもしやすくていい。

現在のzshとvimの環境

  • Homebrewでパッケージ管理
  • dotfilesをGitHubで管理
  • NeoBundleでvimプラグインを管理
  • oh-my-zshでzshプラグインを管理
やってることは主にこんな感じで、oh-my-zsh以外については、以前の記事「Macのvim開発環境をナウでヤングな感じにした」に詳しく書いてあります。

また、.zshrcと.vimrcはGitHubのパブリックリポジトリに置いてありますので、興味があればご参考頂ければ。新しいのを試しながら覚えたりしていて、よくわかってないまま変な設定が入ってることがありますので気をつけてください。

akihisa-higuchi / .dotfiles | GitHub
https://github.com/akihisa-higuchi/.dotfiles

最近変えた点としては、以下のとおり
  • 以前専門書からパクった独自過ぎるコードをなくした
  • NeoBundleLazyで一部遅延ロードするように
  • oh-my-zshを導入した
oh-my-zshは、もっと複雑なモノかと思ってたけど、実際のコードみたら結構シンプルな作りでした。

robbyrussell/oh-my-zsh | GitHub
https://github.com/robbyrussell/oh-my-zsh

導入方法は上記アドレスのページでも公開されてますが、一応ここでも書いときます。
  • GitHubからリポジトリをclone
    • $ git clone git://github.com/robbyrussell/oh-my-zsh.git ~/.oh-my-zsh
  • 現在の.zshrcを念のためバックアップ
    • $ cp ~/.zshrc ~/.zshrc.orig
  • oh-my-zsh用の.zshrcをテンプレートからコピー
    • $ cp ~/.oh-my-zsh/templates/zshrc.zsh-template ~/.zshrc
公式ページでこの後に指示されてるシェルの変更はオススメしません。

oh-my-zshでのプラグイン導入は、.zshrcの「plugins=()」に対象プラグイン名を追記することで行えます。また、自分の場合は、.zshrcの「Customize to your needs...」以下に下記のコードを追加しました。
  • export LANG=ja_JP.UTF-8
テーマは標準の「robbyrussell」にしました。これまでのデザインと全然違うので違和感がありますが、慣れると便利そうです。

このブログの人気の投稿

Kindleでの自炊管理に思わぬ落とし穴があったのと、実用書の相対価値が変わったという話