開発のワークフローと使っているツールを紹介する 2022年7月
最近Neovimユーザーになったこともあり、開発のworkflowが変わってきました。個人的な棚卸しも兼ねて、自分の開発に欠かせないツールを紹介してみたいと思います。
「これもおすすめ」などありましたらコメント等いただけますと幸いです。
前提
- macユーザーです。Windows, Linuxユーザーの方は適宜つまみ食いしてお読みください。
- Neovimユーザーのため、ターミナル操作が中心です。
モチベーション
使っているツールをカテゴライズして書くのが面倒大変なので、普段のworkflowに沿ってよく使っているツールを紹介したいと思います。
アプリ(ターミナル)を開く
アプリの起動・切り替えはRaycastで行っています。
ターミナルはweztermを利用しています。
開かれたアプリはyabaiによって自動的に整列されます。
参考:
ディレクトリを移動する
terminal内の移動はzoxideを利用して移動することが多いです。z <ディレクトリ名の部分文字列>
で直近で移動したディレクトリにサクッと移動できます。
例えば、zenn-articles
というプロジェクトに移動する場合には
-
zenn-articles
というディレクトリにz zenn
で移動する -
v
でカレントディレクトリをNeovimで開く(alias v="nvim ."
)
という風に運用しています。
ファイルを開く
Vim内でのファイルの検索、OPENはtelescopeで行っています。
builtin.git_files
builtin.git_status
builtin.live_grep
を多用しています。
git_status
で差分があるファイルを一発で開けるので重宝しています。
Git操作
Git操作はlazygitで行っています。これは別記事に書いたので興味ある方は見てみてください。
gitコマンドで操作する場合は、次のようなaliasを .gitcofig
に設定して運用しています。git sync
はよく使います。
[alias]
st = status
cm = commit
cme = commit --allow-empty
co = checkout
br = branch
dc = diff --cached -U2
rh = reset --soft HEAD .
p = !git push origin `git rev-parse --abbrev-ref HEAD`
d = diff
go = "switch -c"
dm = "!git branch --merged | grep -v main | grep -v master | grep -v '*' | xargs -n 1 git branch -d"
please = push --force-with-lease
uncommit = reset --mixed HEAD~
refresh = fetch --prune
sync = !git checkout $(git remote show origin | grep 'HEAD branch' | awk '{print $NF}') && git pull
lg = log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit --date=relative
複数プロジェクトを開く
tmuxやvimのタブ機能など色々模索したのですが、最近はweztermのタブ機能で済ませるようになりました。今のところしっくり来ています。
option + 矢印キーでWeztermのpaneを作成できるようにして、プロジェクトごとにwindowを細かく分割しては用途が終わったら閉じるといった使い方をしています。
その他
力尽きたのでよく使っているありがたいツール・サービスたちをリンクだけ紹介します。
- zimfw: ミニマルなZshフレームワーク。起動速度がウリ。個人的には必要十分でした。
- ripgrep: 爆速grepツールです。
- starship: プロンプトのカスタマイズツールです。簡単におしゃれにできてありがたい。
- ghq: リポジトリの管理ツールです。リポジトリの管理場所も定まるので個人的にはmustで入れたいツールです。
- fzf: fuzzy finter。上記のghqと組み合わせて検索したrepositoryに移動できるようにしています。
-
pet: CLIでのスニペット管理ツール。READMEに書いてある
prev
functionでサクサクと登録できて体験が良いです。 - delta: diffを良い感じにシンタックスハイライトしてくれるツールで、lazygitにも組み込んでいます。
- grep.app: 公開リポジトリのコードを爆速で検索できます。ひたすら叩きまくっていろんなコードを見て学ばせてもらっています。
- TablePlus: お気に入りのDBクライアントです。
- GitHub CLI: GitHub公式のCLI。ラベルの作成など意外と使わないけど知っていると便利なコマンドも多いです。
- displayplacer: macOSのディスプレイの解像度を操作するCLI。画面共有用に解像度を下げるみたいなのがコマンド一発で出来ます。
Discussion