今日はこのへんで

Webエンジニア。プログラミング、スタートアップについて。もしくはただの雑記。

最近のシェル環境

最近周りの開発者に刺激されたこともあって、シェル/macの環境をちょこちょこ整備したので、道半ばではあるものの現状をメモがてら残しておく。

Githubの差分

シェル環境

Fishにした

ZshからFishにした。Zshのときは sorin-ionescu/prezto を使っていたので、デフォルトで使い物になる、というFishの謳い文句も響いてはいなかったのだけど、友人にそそのかされた。補完が少し重かったり、configの記法がbash/zshと違いすぎたりと、使えはするもののあまり気に入りはしなかったのでそのうちきっとzshに戻すと思う。

ちなみにプラグインマネージャーは fisherman/fisherman を使ったが、特に問題はなかった。oh-my-fishのプラグインも使えて便利だった。

ショートカットエイリアス

今さら馬鹿みたいなんだけど git ** のエイリアスを登録したら捗った。これまで gitg だったし各種サブコマンドはgitconfigで省略形をエイリアスにしていたのだけれど、結局スペースを押すのがボトルネックになっていることに気づいた。

あまり固有のコマンドをエイリアス化するの好きではなかったんだけれど、ポリシーを変えて積極的に登録したいという気分になった。

エイリアス一例

alias ga  'git add'
alias gb  'git branch'
alias gba 'git branch -a'
alias gbl 'git blame'
alias gc  'git commit -v'
alias gca 'git commit -v --amend --no-edit'
alias gco 'git checkout'
alias gcl 'git clone --recursive'
alias gd  'git diff'
alias gdc 'git diff --cached'
alias gdh 'git diff "@{u}..HEAD"'

alias rs  'bundle exec rails s'
alias rc  'bundle exec rails c'
alias rg  'bundle exec rails g'
alias rd  'bundle exec rails d'
alias rr  'bundle exec rails r'
alias rk  'bundle exec rake'

Tmuxを復活させた

Tmuxは、スクロールやコピペもマウスのほうがスムーズだし、画面分割もなくてもそれほど困らないし、他人とのセッション共有もしないし、と思ってしばらく使用をやめていた。

最近他の開発者の画面を見せてもらったら、一番懸念だったスクロール/コピペの問題は nhdaly/tmux-better-mouse-mode で解決できることを知ったので、改めて使うことにした。そもそも以前は tmux-plugins/tpm でプラグイン管理さえしていなかったので、Tmuxが悪かったのではなく単に自分の tmux.conf が弱いだけだった。

手が昔の動きを覚えていたので、リハビリに時間がかからなかったことは幸い。

その他便利コマンド系ツール

  • Ctrl-r の履歴検索を junegunn/fzf でやることにした。が、ヒットがちょっとfizzyすぎて若干使いづらい
  • リポジトリ管理は motemen/ghq でやることにした。自分なりに構成していたプロジェクトディレクトリを崩すので躊躇していたが、使ってみると便利だった
  • direnv/direnv は以前から知っていたが、今のプロジェクトではローカルの開発環境で環境変数をいくつも設定するので、やっと真価を発揮してきたという感じがある
  • github/hub はPull Requestをコマンドラインでやるツールだと思っていてスルーしていたけど、 hub browse を引数なしで実行するとリポジトリのページをすぐ開けるということに気付き、今ではこれだけ多用している
  • peco/peco でブランチ切り替えとSSH Hostの指定をできるようにしたいと思いつつ設定書いたけど気に入らなかったのでちゃんと設定したい
  • PhrozenByte/rmtrash (または dankogai/osx-mv2trash)、結構便利だと思うんだけど意外と使っている人少ないということに気づいた
  • Unarchiverの unar がWindowsの圧縮ファイルを文字化けせずにコマンドラインから解凍できてOSXでは便利だった

Atomエディタ

パッケージ関連

  • atom-alignment をいれつつなんか上手く動かないな、と思っていたけど、複数カーソルを揃えたい場所の先頭に持ってこればちゃんと動くことに今さら気づいた

bの行頭にカーソルを合わせてalignする例 f:id:Kechol:20170618144112g:plain

  • Vimバインディングにvim-modeの改良版の vim-mode-plus を使うことにした。良い感じ
  • 家と会社のPCで、Atomの設定を共有することにしたが、 sync-settings が便利だった。Atomだけなら dotfiles いらない
  • 複数のリポジトリを行き来することが増えたので project-manager を導入した。cson は自分で編集しないとだけどとても便利
  • open-on-github というコアパッケージが存在することを知らなかったのだけど、編集中のファイルをGithubでパッと開けるのでめちゃ便利だということに気づいた。SSH configとか使っているとRemote URLの引当がうまくされず、動かないことがあるので注意
  • Atom 1.18.0 から使える GitHub Integration 、まだそんなにちゃんと使ってないけど特にGit Viewが便利っぽかった

keymap関連

大した設定はしていないけど捗ったもの。ちなみにkeymapいじるときは keybinding-resolver を使って競合しているショートカットを確認するのが良い。

  • Tab / Shift-Tab でウィンドウ(Pane)を行き来する
'body':
  'ctrl-tab ^ctrl': 'unset!'
  'ctrl-tab': 'pane:show-next-item'
  'ctrl-shift-tab ^ctrl': 'unset!'
  'ctrl-shift-tab': 'pane:show-previous-item'
  • 検索結果/Paretteで Ctrl-j/k で移動する
'body':
  'ctrl-j': 'core:move-down'
  'ctrl-k': 'core:move-up'
'atom-text-editor':
  'ctrl-j': 'core:move-down'
  'ctrl-k': 'core:move-up'

find-and-replace

Atomにはバッファ(ファイル)内の文字列を検索し、複数カーソルで置換する便利機能(デフォルトのショートカットは Ctrl-d)があるのだけど、vim bindingで潰れていることに先日気づいた。

僕程度のvim力だとやりにくい操作がシンプルにできて便利なので改めてショートカットを設定し直した。便利。

一部のctrlを除いてctrlをshiftに置換する例

f:id:Kechol:20170618144124g:plain

アプリ関連

改めてiTerm2にした

なんとなく前のアイコンが古臭くて好きではなく、Terminal.appを使っていた時期があったけれど、アップデートされてアイコンがシュッとしたのと、Terminal.appの描画は遅いんじゃないかという記事をどこかで見た気がしたのでiTerm2にもう一度チャレンジした。

正直iTerm2の機能はほとんど使っていないけれど、Dropbox経由でカラースキーム設定を共有できるのは役立っている。カラースキームは mbadolato/iTerm2-Color-Schemes から選んだ。

ショートカットでターミナルを起動するのは誰しもやるものだと思うけれど、iTerm2のショートカット機能使うよりもTerminal.appの時から使っているAlfred PowerpackのWorkflowで設定するほうがマシだったのでそちらをいまだに使っている。Workflowはターミナルが起動していなくてもショートカットが効く点で優れている。

f:id:Kechol:20170618144213p:plain

こんな感じで、Launch Appsの設定に Toggle Visibility for Apps のチェックをいれておけばターミナルの表示もよしなに切り替わる。

その他のツール系アプリ

  • Magnet :職場の先輩に教えてもらい、いれてみたらウィンドウの整頓や最大化にとても便利だった
  • Gifox :実装した機能やデモをGifで見せることがよくあり、Gifアニメツールのなかでも出来がよさそうだった
  • Amphetamine :アイコンやカスタマイズ性が Caffeine より良かったので乗り換えた
  • Gyazo :サクッとスクショを共有するのに使い始めた
  • Airmail 3 :職場のメールがGoogle Appsになったので、Officeの代わりのメーラーに採用した。複数アカウントをまとめられるし、Gmailのブラウザと同じショートカットが使えて便利だけど実はメール自体をあまり使っていない
  • Wunderlist が開発終了するらしいけど手に馴染みすぎているのでいまだに使っている。悩ましい

これからもちゃんと道具は整備していきたい。