Macで開発するときのTips集

ソフトウェア開発

ITエンジニアのしゅうさくです。
普段はローカルMacで開発することが多いのですが、今回は開発を効率化するソフトやツールをいくつかご紹介します。

zsh

まずはzshです。以前はデフォルトのbashを当然のように使っていましたが、ある日上司にzshを使っている画面を見せられてその機能に驚きました。

  • 補完
  • コマンド検索
  • ディレクトリ移動

などだけでもbashと比較して作業効率を大幅に上げてくれます。使っている人はそこまで多くないようですが、Homebrewで簡単にインストールできます。機能や使い方はいくらでも詳しく書いているページがあるので割愛しますが、シェルを変えることで世界観が変わることを実感できます。Mac OS Catalinaからはデフォルトシェルがzshに変更されたので、今後さらに発展が見込まれるはずです。

peco

フィルタリングツールのpecoです。これをzshと組み合わせることでコマンドライン作業が格段に楽になること間違いなしです。こちらもHomebrewでインストール可能です。誰もが恩恵を受けられる使い方として、「コマンド検索」と「ディレクトリ移動」があります。他にもgitやdockerでも大いに役立つようですが、今回は前者の2つをご紹介します。

まずはコマンド検索です。以下を.zshrcに追記するとctrl+rにバインドできます。

# コマンドヒストリから選択
function peco-select-history() {
  BUFFER=$(\history -n -r 1 | peco --query "$LBUFFER")
  CURSOR=$#BUFFER
  zle clear-screen
}
zle -N peco-select-history
bindkey '^r' peco-select-history

試しに「install -> ctrl + r」と実行すると、”install”を含んだ過去のコマンドがリストアップされます。コマンド冒頭だけでなく部分一致も拾えるのでコマンドが曖昧なときにも重宝できます。

次にディレクトリ移動です。こちらも以下を.zshrcに追記、ctrl+uにバインドします。

# 移動履歴があるディレクトリから選択
function peco-get-destination-from-cdr() {
  cdr -l | \
  sed -e 's/^[[:digit:]]*[[:blank:]]*//' | \
  peco --query "$LBUFFER"
}
function peco-cdr() {
  local destination="$(peco-get-destination-from-cdr)"
  if [ -n "$destination" ]; then
    BUFFER="cd $destination"
    zle accept-line
  else
    zle reset-prompt
  fi
}
zle -N peco-cdr
bindkey '^u' peco-cdr

試しに「master -> ctrl + u」と実行すると、”master”を含んだ過去に移動したディレクトリがリストアップされます。こちらも部分一致で検索できるのが便利です。

iTerm Broadcast Input

こちらはiTermの機能で、開いている複数のタブに同じコマンドを投げられるというものです。タブを使って複数のサーバに接続しているときに、同時並行でコマンドを一気に投げられるので便利です。iTermを開いて「Shell -> Broadcast Input」から設定できます。開発時はあまり使わないかもしれないですが、運用トラブルなどで複数サーバの状況などを同時に細かい調査をするときなどに使っています。

Clipy

最後はClipyというアプリです。コピーしたものは通常クリップボードに一時的にしか保存されないですが、このアプリではクリップボードを拡張してコピーした履歴を複数残すことができます。コピペを繰り返しているうちに少し前にコピーしたアイテムを再度ペーストしたくなることがありますが、そういったときに履歴を遡ることができます。少し地味かもしれないですが、結構助かる場面がありそうですよね。

また定型文をスニペットとして登録しておいて、メニューバーなどからすぐにアクセスすることもできるので、コマンドもそうですが文書ライティングなどでも使える機能になっています。

まとめ

今回は開発を少し効率化するツールやソフトをいくつかご紹介しました。これらがなくても開発作業ができないわけではないですが、時間短縮できるならそれに越したことはないですよね。

ある意味で時間は人生でもっとも大事な要素ですので、これらが少しでも役に立って楽しく業務できるようになれば幸いです。

タイトルとURLをコピーしました