WSL開発環境: プログラミングに便利なOSSコマンドラインツールの紹介
はじめに
WSL[1] 上でのプログラミング作業の効率を上げるため、CLI
[2]で役立つコマンドラインツールを紹介します。
これらのツールは、WSL上のさまざまな Linux ディストリビューションで利用可能で、brew
[3]を通じて簡単にインストールできます。
ツール一覧
delta
: diff
をビジュアルに表示
-
パッケージ:
git-delta
-
ライセンス: MIT
-
概要:
2つのファイル間の差分を色分けしてビジュアル表示することで、変更点を直感的に把握できるようにします。 -
使用例:
git と連携することで、git diff
、git log
などの出力でも変更点をビジュアルに表示できます。
たとえば、この記事の場合のgit diff
は以下のようになります: -
備考:
delta
の設定は、gitconfig
で設定します。
上記の表示の設定は、以下のようになります:git/config[core] pager = delta [merge] conflictstyle = diff3 [diff] colorMoved = default [pager] diff = delta log = delta reflog = delta show = delta [interactive] diffFilter =delta --color-only [delta] navigate = true syntax-theme = github line-numbers = true side-by-side = true
gibo
: 効率的な.gitignore
ファイルの生成
-
パッケージ:
gibo
-
ライセンス: Unlicense
-
概要:
GitHub の.gitignore
テンプレートをもとに、gitignore
のボイラープレートを出力します。 -
使用例:
gibo dump <ツール>
で指定したツールの.gitignore
ボイラープレートを標準出力に出力します。
たとえば、vim
が生成するバックアップファイルなどを無視したい場合は:gibo dump vim >>.gitignore
のように、出力を
.gitignore
にリダイレクトします。
.gitignore
は、次のようになります:.gitignore### Generated by gibo (https://github.com/simonwhitaker/gibo) ### https://raw.github.com/github/gitignore/4488915eec0b3a45b5c63ead28f286819c0917de/Global/Vim.gitignore # Swap [._]*.s[a-v][a-z] !*.svg # comment out if you don't need vector files [._]*.sw[a-p] [._]s[a-rt-v][a-z] [._]ss[a-gi-z] [._]sw[a-p] # Session Session.vim Sessionx.vim # Temporary .netrwhist *~ # Auto-generated tag files tags # Persistent undo [._]*.un~
-
備考:
とくになし
gh
: GitHub公式CLI
-
パッケージ:
gh
-
リポジトリ: https://github.com/cli/cli
-
ライセンス: MIT
-
概要:
GitHub の操作をCLI
から行います。 -
使用例:
gh repo clone <リポジトリ>
で、リポジトリをローカルにクローンします。 -
備考:
実際に操作するには、以下のようにgh auth login
で GitHub にログインする必要があります。$ gh auth login ? What account do you want to log into? GitHub.com ? What is your preferred protocol for Git operations on this host? HTTPS ? Authenticate Git with your GitHub credentials? Yes ? How would you like to authenticate GitHub CLI? Login with a web browser ! First copy your one-time code: xxxx-xxxx Press Enter to open github.com in your browser... ! Failed opening a web browser at https://github.com/login/device exec: "xdg-open,x-www-browser,www-browser,wslview": executable file not found in $PATH Please try entering the URL in your browser manually
以下のようにブラウザーに認証画面が表示されるので、認証コードを入力してログインします:
ghq
: リモートリポジトリマネージャー
- パッケージ:
ghq
- https://github.com/x-motemen/ghq
- ライセンス: MIT
- 概要:
GitHub やその他のリポジトリホスティングサイトのリモートリポジトリを、ローカルに簡単にコピーするツールです。 - 使用例:
ghq get <リポジトリ>
- リポジトリをローカルにクローンします。
ghq list
- ローカルにクローンしたリポジトリの一覧を表示します。 - 備考:
peco
やfzf
と組み合わせることで、リポジトリ間のナビゲーションを効率的に行えます。
peco
: インタラクティブな検索&選択ツール
-
パッケージ:
peco
-
リポジトリ: https://github.com/peco/peco
-
ライセンス: MIT
-
概要:
peco
は標準出力を一覧表示し、選択するツールです。 -
使用例:
先ほどのghq
と組み合わせて、以下のように使います:cd $( ghq list -p|peco)
以下のようにリポジトリの一覧が表示されます:
ここでリポジトリを選択すると、そのリポジトリに移動します。
-
備考
とくになし
fzf
: fuzzy finder
-
パッケージ:
fzf
-
ライセンス: MIT
-
概要:
peco
と同じく、入力された一覧を一覧表示し選択するfuzzy finder
です。
ファジー検索もできます。 -
使用例:
peco
と同じように、ghq
と組み合わせてリポジトリに移動できます。
コマンド例は:cd $( ghq list -p|fzf --height 40%)
ターミナルに次のように表示されます:
リポジトリを選択すると、そのリポジトリに移動します。
-
備考
とくになし
ripgrep
: テキスト検索ツール」
-
パッケージ:
ripgrep
-
ライセンス: Unlicense & MIT
-
概要:
grep
の代替となるツールです。Rust製で非常に動作が速いです。 -
使用例:
たとえば、以下のように使います:$ sudo apt list|rg -e 'python[^.]*pip' WARNING: apt does not have a stable CLI interface. Use with caution in scripts. python3-pip-whl/stable,stable,stable 23.0.1+dfsg-1 all python3-pip/stable,stable,stable 23.0.1+dfsg-1 alld64
上記の例は、
apt
パッケージで提供されているpip
パッケージの一覧を出力しています。 -
備考:
とくになし
おわりに
この記事で紹介した OSS ツールを活用して、開発作業が効率化できます。
さらに、OSS の利用を共有することで、技術コミュニティ全体の発展に貢献できます。
この記事のように、自分が使っている OSS ツールを紹介しましょう。
そのときに、自分の場合の設定や使い方などのなどのちょっとした TIPS を付け加えれば、自分ならではのオリジナルコンテンツとなります。
使用した OSS にはスターをつけ、可能ならフィードバックを送り、作者を支援しましょう。
それでは、Happy Hacking!
Discussion