107
115

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

dotfilesAdvent Calendar 2019

Day 10

dotfilesの作成・拡張の参考になりそうなリソース集

Last updated at Posted at 2019-12-10

はじめに

ウダウダしているうちにdotfilesアドベントカレンダー10日目ギリギリです。
この記事は、私の独断と偏見でdotfiles作成・拡張の上で参考になりそうなものをピックアップしたものです。ディープなものは拾えていません。古くならないように1年に1回ぐらい見直しに来たいと思います(思うだけならタダ)。これおすすめというものがあれば、ぜひコメントや記事でご教示ください。

私の属性とdotfiles歴

dotfilesの用途は人それぞれだと思うので、あまりにも私と属性が異なる人には、この記事はあまり参考にならないかもしれません。

属性

  • まだ経験5年そこらのWebアプリケーションのサーバサイド開発者
  • OS: 主にmacOS。サブにUbuntuを持っている。
  • シェル: Bash, Zsh
  • エディタ: Vim (1年) -> Sublime Text 2/3 (Vim binding) (3.5年) -> VSCode (Vim binding) (0.5年)
  • 言語: 主にRuby, Typescript, Rust, その他色々

ただ、ときどき起こるVSCodeVimの祭り(昨日)を見ると、やはりおとなしくVimを使って、VS CodeはMDやUML書くときのサブかなという気もしています。

dotfiles歴

  • 最初はなんとなく環境構築やアプリ構築用の一部のスクリプトをGistで書いてみたりしていた
  • 2015年はじめに Qiita - 最強の dotfiles 駆動開発と GitHub で管理する運用方法 を読んで、開発者はみんなdotfilesというたまごっちの飼育や、タレの熟成に励んでいることを知り、自分でもZsh+Prezto・Vim・Sublimeあたりを中心に一から育て始めた
  • 2019年中頃、開発環境を全て見直そうと思い、ツールやデバイスを選び直しつつ、 Github - paulirish/dotfilesGithub - atomantic/dotfiles をベースに新しいdotfilesを育て始めた

背景

dotfilesは一から作らなくてもいいんだよ

一から作る人もいると思いますが、 Zach Holman - Dotfiles Are Meant to Be Forked というタイトルの通り、dotfilesは一から作らなくてもいいんです。何を当たり前のことを思うかもしれませんが、意外にも、dotfilesを使っていない人や開発経験の浅い人の中には、自分でリポ作るところからはじめるという考えを持ってる人もいたりします。実際には、

  • 他の人のdotfilesをそっくりそのまま使っている人
  • 他の人のをフォークして好きなように拡張する人
  • 色んなdotfilesの良いとこ取りをする人

という人も多いので気楽に試してみてほしいです。

最終的には生産性をあげることがdotfilesを利用する目的なので、気が乗らなくていつまでも入門できなかったり、dotfiles作成に多大な労力をかけてしまったりするぐらいなら、お気に入りのdotfilesを見つけてそのまま利用し、不便を感じたら都度拡張していく作戦でいくと良いと思います。

色々なdotfilesの情報がまとまっていたらうれしいかもしれない

そうすると、このdotfilesはこの環境で使えて、こんな特徴がある、こうやって使う、これが便利、というのが見つけやすいといいのですが、Githubで"dotfiles"と検索するだけで13万件近くヒットするし(もちろん絞り込むことはできるんですが)、あちこち個人のブログで俺のdotfilesはこんな感じ、ということが語られていて、あまり情報がまとまっていない気がします。そこで、少しまとめて始めてみようと思い、この記事を書きました。

dotfiles作成・拡張に役立ちそうなリソース

全体像やbetter practicesを知るのに良いもの

  • Qiita - ようこそdotfilesの世界へ
    今回のアドベントカレンダーのオーナーyutakatayさんによる記事です。dotfilesとはどんなもので、どうやって始めたらよいか、何をどう管理したら良いか、優しくわかりやすくdotfilesの福音をもたらしてくださいます。すでにdotfilesを使っている方も取り入れようと思うようなテクニックもあってとても良いです。
  • Grant Ammons - How to efficiently manage your dotfiles

    英語で書かれた記事には、一から最後まで浅くダラダラ説明する記事が多い中、大事なことが短くまとまっていてオリジナリティのある良記事だと思います。thoughtbotのdotfiles(後述)をおすすめしています。
  • Qiita - 最強の dotfiles 駆動開発と GitHub で管理する運用方法
  • Qiita - 優れた dotfiles を設計して、最速で環境構築する話

    ファイル構成や展開とセットアップに関する知見がまとめられています。Github上で公開されているdotfilesには、ファイルの展開はsymlinkやrsyncを利用したものが多く、makeを利用したものはたまに見るぐらいの印象ですが、makeコマンドを使う利点や具体的な方法も書かれています。

コレクション

  • Github - webpro/awesome-dotfiles

    よくあるawesome系のものです。導入記事から実際のdotfiles、dotfiles関連ツールまで良質のものがよくまとまっています。ただ、評判が良くても選に漏れているものや、awesome系によくあるのですが、情報が追加されたのはいいけど、古くなっても更新されなかったり削除されなかったりするようなところはあります。
  • Github does dotfiles

    ネット上おそらく最大規模でdotfiles関連のリポが集まっているページです。Github - dotfiles/dotfiles.github.comで管理されているページですが、PRがあればそのまま追加していく感じのようなので、掲載されているdotfilesも玉石混淆です。効率は良くないと思いますが、比較的新しいdotfilesがたくさん載っているので、掘り出し物(?)が見つかるかもしれません。

Github上でスターがたくさんついているdotfiles

ここに書いているOSは主に使用が想定されているもので、紹介するほとんどのdotfilesのスクリプトはPOSIX実装なら動くよう書かれています。

  • Github - mathiasbynens/dotfiles
    環境

    • OS: macOS
    • シェル: Bash, Zsh
    • エディタ: Vim
    • ターミナル: iTerm2 + tmux

    最も多くスターがついているdotfilesリポです。設定・ツールに比較的クセがなく、きれいに分割されていて拡張しやすいです。スター数TOP10のdotfilesのうち、少なくとも2つはこのリポからフォークされたもので、その他のリポでも参考にされています。多少古いスクリプトもありますが、ちょこちょこいじればそのまま使えます。macOSの設定スクリプトが評価されてます。

  • Github - skwp/dotfiles
    環境

    • OS: macOS
    • シェル: Zsh
    • エディタ: Vim
    • ターミナル: iTerm2 + tmux

    人気のあるいろいろなdotfilesから良いとこどりして作られているdotfilesです。細部までがっつり設定されているので、拡張して育てていくよりも、何も考えずにツールに従って開発したい人にとても良いと思います。

  • Github - thoughtbot/dotfiles
    環境

    • OS: macOS
    • シェル: Zsh
    • エディタ: Vim
    • ターミナル: Terminal + tmux

    名Gemを多数開発していることで有名なThoughtbot社が公開しているdotfilesです。やはりRubyやRailsのVimプラグインが入っています。最低限みんなが使っている共通のものが入っているという印象を受けます。後述するrcmというdotfilesマネジャーを使って利用します。

その他、気になるdotfiles

  • Github - elenapan/dotfiles
    環境

    • OS: Ubuntu
    • シェル: Zsh
    • エディタ: Vim
    • ターミナル: Kitty + tmux

    2017年に作成された比較的新しいリポですが、人気を集めているようです。これを拡張して、UbuntuでMacレベルに使いやすくておしゃれな環境構築も参考にしつつ、サブのUbuntuに入れていますが、無駄におしゃれで素敵です。

  • Github - atomantic/dotfiles
    環境

    • OS: macOS
    • シェル: Zsh
    • エディタ: Vim
    • ターミナル: iTerm2 + tmux

    macOSの設定(defaultsコマンドに限らず)がとにかく詳しくドキュメント化されていて、参考になるところが多いです。

  • Github - b4b4r07/dotfiles
    環境

    • OS: macOS
    • シェル: Zsh, Bash
    • エディタ: Vim
    • ターミナル: Terminal + tmux

    この記事にも参考記事としても出てきているb4b4r07さんのdotfilesです。環境依存性、アプリケーションやプラグインへの依存性が小さいので安心感があり、ミニマルリズムを行くかっこよさがあります。

dotfiles管理ツール

書く気力が溜まったら一言添えます。

Bash

Zsh

プラグインマネジャー入れて、プラグインを入れて、とやっているうちに重くなりがちなZshですが、最近はパフォーマンスが意識されたものがたくさんあるので、それを使いつつ、本当に大事なプラグインに絞って入れる作戦が良いのではないかと思います。

Fish

まだです

macOS関連

  • Github - mathiasbynens/dotfiles(再掲)

    macOSの設定スクリプトについては、一度に全部走らせると挙動がおかしくなったり、好みに合わないものになり、しかもそれがどのコマンドによって設定されたものなのかわからなくなるので、何をするコマンドなのかちゃんと確認して数行ずつ試すのが良いかなと思います。
  • defaults-write.com

    macOS・OSXの設定に関するブログです。一覧性はありませんが、基本的に1テクニック1記事になっていて、とても短いのでちょっとした時間にチェックできます。不定期で今も更新されています。
  • Qiita - iMac/MacBook購入後に必ず設定したい設定項目

    上記2つを参考に書かれたもののようです。
  • Github - atomantic/dotfiles(再掲)

    defaultsコマンドだけでなく、macOSのさまざまな便利設定について網羅されてます。もうこのdotfiles使ってればいいんじゃねという気もしてきます。
  • jaywcjlove/awesome-mac

    macOS対応の便利なアプリケーションをキュレーションしてくれてます。

Vim関連

エディタ難民になっているので、またVimに戻ることも考えて色々チェックしようと思います。というか、上で紹介したdotfilesのメインエディタは全てVimなので、そちらを見れば良いと思います。他のエディタでVimバインディング使っている人も参考になるはずです。

VSCode関連

ペイン操作周りで少し不満があったり、Vimバインディングで使っているとときどき不具合(スニペット機能との連携とか)があったりしますがお手軽です。

その他

センシティブなデータの取り扱い

特にこれからdotfilesに入門しようかなと思っている方へ。

感想

色々なdotfilesリポを眺めていて、ドキュメントがしっかりしたものが人気に出るわけではないが、人気が出るものはだいたいドキュメントがしっかりしているな、という当たり前の教訓を得ました。

おわり

dotfilesライフを楽しみましょう!(勢い)

107
115
4

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
107
115

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?