質問:zsh
コマンドラインを実行する前に確認するように教える簡単な方法はありますか?追加のスクリプトを使用して特定のプログラムを完全にラップできることを知っていますが、そうしたくありません。
例:gcc
タブ補完を使用すると、誤った呼び出しで入力ファイルを上書きする状況が発生しやすくなります。
gcc test.c -o test.c
変える
gcc test.c -o test
答え1
accept-line
zle
必要なすべてのチェックを実行するようにウィジェットをオーバーライドできます。たとえば、次のようになります。
accept-line() {
if [[ $BUFFER =~ '^gcc.*-o\s*\S*\.c\b' ]]; then
zle -M 'I will not do that!'
else
zle .$WIDGET "$@"
fi
}
zle -N accept-line