シェルスクリプトで自作コマンドを作る

konnyaku

背景

narazuke の日記を書くのがめんどい

<- vscode 開くのが面倒だから

-> コマンドを作ってショートカットしたい

何をしたか

  • 自作コマンド
  • 自作コマンドでの補完

自作コマンドの作り方

zshrc
export PATH="$HOME/.command:$PATH"
.command/mycommand
#!/bin/sh
if [ "$1" = "" ]; then
    cd ~/narazuke && code .
else
    cd ~/narazuke/"$1" && code .
fi
ターミナル
$ mycommand

自作コマンドに対する補完

zshrc
autoload -Uz compinit
compinit
FPATH="$HOME/.completion:$FPATH"
autoload -Uz _mycommand
compdef _mycommand mycommand
HOME/.completion/_mycommand
#compdef mycommand
function _mycommand {
    _values : 'foo' 'bar'
}
ターミナル
$ mycommand [TAB]
# 'foo'と'bar'が補完できる
~/.completion/_mycommand
#compdef mycommand
function _mycommand {
    local -a var
    var=($(ls ~/hogehoge))
    _values : ${var[@]}
}
ターミナル
$ mycommand [TAB]
# hogehoge 以下の dir 名または file 名で補完できる

結果

とても楽になりました