zshではkillコマンドでプロセスIDやプロセス名を補完できるので紹介する。
基本的な使い方
使い方は簡単で、特に設定しなくてもkill
の後にkillしたいコマンド名を入れてTabを押せば、プロセス名が補完される。
% kill man #<= ここでTabを押す
% kill 32102
1112 man find
23950 man less
32102 man ps
カスタマイズする
このプロセス補完の機能は少し欠点があって、今動作しているシェルから起動したプロセスしか補完できない。でも、それも次の設定を.zshrcに書いておけば解決する。
zstyle ':completion:*:processes' command "ps -u $USER"
最後のps -u $USER
というところが大事。標準ではTabで補完するときにps
コマンドを実行した結果を補完候補として使うんだけど、こうやって書いておくと代わりにps -u $USER
というコマンドを実行した結果を使うようになる。
これで、今のシェルから起動していないプロセスも補完できるようになる。
なので、tmuxを使っていて別のウィンドウで起動したプロセスとか、デスクトップのランチャーから起動したプロセスも補完できる。
最後のps -u $USER
は自由にカスタマイズしてOK。たとえば、次の例は出力フォーマットを変更して、たくさん情報が見れるようにしている。
zstyle ':completion:*:processes' command "ps -u $USER -o pid,stat,%cpu,%mem,cputime,command"
固まってしまったブラウザを停止するときとかに補完しながらkillできると便利なので、ぜひ試してみてください!