前回の記事 Cmderでオシャレにcmd.exeを使う -前編-の続きです。

Table of Contents

はじめに

前回の記事を読んでいると前提で話を進めます。
もし前回記事をご覧になっていない方は必要に応じてご覧下さい。

今回の記事は見た目よりも実用性が中心となります。

Owl Cmder Tools

今回紹介するコマンドや設定の大部分は以下のリポジトリに含まれています。
手元にcloneされている前提で進めます。

Powerlineの更なる強化

前回の記事で Gitリポジトリの情報を更に詳しく表示する というセクションがありました。

Owl Cmder Toolsではより高機能に..簡単にインストールできるようにしました。
ブログから変更点を確認して直接ソースコードをいじる必要はありません。当然ですね 😘

前提

インストール方法

Owl Cmder Toolsconfig/powerline_git.lua%cmder_root%/config/配下にコピーするだけです。

読み方

Gitに関する表示についてのみ説明します。

ブランチマークの隣には現在のブランチ名が表示されます。

alt

ワークスペースに変更がある場合は色が変わり、変更内容によってマークが変わります。

alt

  • *は変更
  • -は削除
  • ?は未管理

ステージングエリアにaddされたエントリ数はカメラマークと一緒に表示されます。

alt

ハロウィンマークはファイル名変更です。

alt

pushされていないコミット数はクラウドマークと一緒にで表示されます。

alt

逆にfetch済みだがmergeしていないコミット数はで表示されます。

alt

左側がファイルシステムであり、右に行くにつれてリモートリポジトリに近い…とイメージできるようにしました。

競合した場合は...
専用の表現が用意されています… が2018/11/26時点ではちゃんと実装していません。
競合した場合の判断は各自でお願いします。

便利なコマンド群

できるだけ思考と行動を一体化するためにオリジナルコマンドをいくつか用意しています。

コマンドは全てbatファイルとなっており、PATHが通っていればどこからでも実行できます。
また全てのコマンドはfzfのIFを使用しています。

必要な準備

Owl Cmder Toolsbinを環境変数PATHに追加してください。

コマンドごとに必要なツールや準備があります。

コマンド名 必要なツール 準備
cdg fzf, gowl
cdr fzf, fd
cdz fzf config/cdz.lua%cmder_root%/config/配下にコピー
gc fzf
gcr fzf
r fzf
vimd fzf, fd
vimf fzf, fd

各コマンドの説明はイメージ画像を交えて紹介します。

前回の記事に沿って準備をしている場合はgowl以外のツールがインストール済みだと思います。

cdg

fzfの対話IFを使ってローカルのGitリポジトリへ移動します。

第1引数に正規表現を指定すると、大文字小文字を区別せずに部分一致で初期候補を絞り込めます。

Windowsでコマンドの実行結果をfzfに渡す方法

Bashだとcdgは以下の様に書けます。

cd $(gowl list | fzf)

Windowsではfor /f "usebackq"構文によって、これを実現しています。

for /f "usebackq" %t in (`gowl list ^| fzf`) do cd %t

cdr

fzfの対話IFを使ってカレントディレクトリ配下のディレクトリへ移動します。

第1引数に正規表現を指定すると、大文字小文字を区別せずに部分一致で初期候補を絞り込めます。

cdz

fzfの対話IFを使って最近移動したディレクトリへ移動します。

移動履歴は%home%/.cdzファイルに記録されるため、cmderを起動しなおしても候補は保持されます。

第1引数に正規表現を指定すると、大文字小文字を区別せずに部分一致で初期候補を絞り込めます。

gc

fzfの対話IFを使ってローカルのブランチをチェックアウトします。

gcr

gcのリモートブランチ版です。

リモート名はorigin固定です。つまりgit checkout -b <branch> origin/<branch>が実行されます。

r

fzfの対話IFを使ってコマンド履歴を検索します。
コマンドを選択すると内容がクリップボードにコピーされます。

シングルクォーテーションを含むコマンドに注意
シングルクォーテーションを含むコマンドは正しくコピーされません。

vimd

fzfの対話IFを使ってカレントディレクトリ配下のディレクトリをvimで開きます。

vimf

fzfの対話IFを使ってカレントディレクトリ配下のファイルをvimで開きます。

総括

全2回にわたり、Cmderを使ってWindowsのcmd.exeをオシャレで快適に使う方法を紹介しました。

ターミナル環境は世界を変えますので皆さんも是非チャレンジしてみてください。