元WindowsユーザーのVimmerでVSCoderが、入社1週間でMacにインストール・設定したものまとめ

元々Windowsユーザーだった筆者がmacを使うことになりました。Gitやターミナル、Vim、VSCodeを用いた作業環境を整えるため、最初に入れたツールとその設定を、それぞれの参考リンクとともに紹介します。
2018.09.13

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

ジョインエントリに書いた通り、私は元々Windowsユーザーでした。とはいえ、「Git Bash」などである程度ターミナル操作は行なっていましたし、Vimも使っていたので、できるだけこれまでに近い環境を作りたいと思い、この1週間色々とツールをインストールしていました。このエントリでは、それらのツールについてまとめてみます。

  • 2018/9/21 git-featureについて追記

Git関連

Git-flow (AVH Edition)

petervanderdoes/gitflow-avh: AVH Edition of the git extensions to provide high-level repository operations for Vincent Driessen's branching model

[日本語訳]A successful Git branching modelをサポートするツールGit Flowのフォーク版です(違いはFAQを参照)。

git-flow-completion

bobthecow/git-flow-completion: Bash, Zsh and fish completion support for git-flow.

Git Flowのコマンドを各種シェルで補完するためのスクリプトです。Git Flowのコマンドは長くなるので、ぜひ入れましょう。

git-master

git-master

Mistilteinn/README.md at master · bleis-tift/Mistilteinn

トピックブランチ上で開発を行って、それをmasterブランチにマージする場合、

  1. トピックブランチをmasterブランチにリベース
  2. masterブランチをチェックアウト
  3. masterブランチを先ほどまでのトピックブランチに移動
  4. トピックブランチを削除

という一連のコマンドを実行する必要があります。 (略)この実現のために、git-masterというスクリプトを使用しています。

ということを実現するサブコマンドです。

私は@mzp氏によるオリジナル版をforkして、ちょっと手を加えて使っています。

Git Flowを使っているときはいらないのですが、もっと気軽に作ったリポジトリでの作業では、次のgit-nowと併せて便利に使えます。

git-now

git-now

tmp コミットのための独自サブコマンド git-now - アジャイルSEを目指すブログ で紹介されている、「後でsquashするけど、とりあえず版管理したい」を実現するサブコマンドです。

私はシングルファイルで構成されたオリジナル版の@mzp氏によるforkを、さらにforkして使っています。

git-feature

git-feature

軽量なフィーチャーブランチを作るためのサブコマンドです。

git feature (フィーチャー名)

のように実行すると、(カレントブランチ名)#(フィーチャー名)という名前のブランチを新たに作ってcheckoutします。

git-nowgit-mastergit-featureを組み合わせると、ローカルでのGit操作を次のようにできます。

  1. git feature (フィーチャー名)でフィーチャーブランチ作成、チェックアウト
  2. 適当に編集し、雑にgit nowを繰り返す
  3. 形になったらgit now --fixupでnowコミットをスカッシュする
  4. git masterでフィーチャーブランチを元ブランチにマージする

プロンプトにGitのブランチ名を表示

bashでgitのブランチ名を表示

そのままです。カレントディレクトリ名も表示すると長くなるので、$は改行して先頭に持ってきています(WindowsのGit Bashもこんな感じ)。

pecoを使ってgit checkout

リモートブランチの git checkout を peco で簡単にする

Git Flowによる運用では、ブランチの数が非常に多くなるため、目的のブランチにcheckoutするのも一苦労です。これを楽にするため、Go言語製のコマンドラインセレクタpecoを使って一工夫しました。

なお、私は~/.bashrcpgco(pecoを使ったgit checkoutの略)というエイリアスを設定しています。

Vim

Homebrewでインストールしました。.vimrcなどは、Windows向けに作っておいた奴をGitHubにアップしてあったので、それをちょっといじって使っています。

変更点は次の通り。

  • 文字コードを「BOMなし」のUTF-8
  • 改行コードをCR+LFからLF

本当はmacvim-kaoriyaが使いたかったのですが、諸事情によりインストールできませんでした。

後、クリップボード共有するためにこの辺りを参考にしました。

MacのVimでHomebrewを使ってクリップボード連携を有効にする

iTem2

標準設定だと行頭、行末にカーソルを移動するのが面倒だったので、次のページを参考に(Option)キー+/でできるようにしました。

Mac | iTerm2 | optionキー + 左右キーで 単語を移動できるようにする

VSCode

主にMarkdownエディターとして使うためにインストール。

追加した拡張機能は次の通り(名前順)。

このあとは?

また折を見て設定変えたり増えたツールはここに書いていこうかと思います。