ファイルの種類に応じてbashrcにgvimエイリアスを作成しようとしています。
if [[ $file == *.tex ]]; then
alias vi="/home/rudra/bin/vims.py"
else
alias vi="gvim"
fi
と入力すると、~/bin/vims.py foo.tex
ファイルが実行されるvi foo.tex
と予想されます。ただし、機能せず、すべての拡張子に対してのみ実行されます。gvim bar.txt
vi bar.txt
gvim foo.{tex/txt}
また、以下の内容も表示されます。
which vi
alias vi='gvim'
/usr/bin/gvim
だから*.texなら、条件がまったく機能しないと思いました。理由をご存知ですか?
私は以下を使用しています:
bash --version
GNU bash, version 4.3.43(1)-release (x86_64-redhat-linux-gnu)
\vim --version
VIM - Vi IMproved 8.0 (2016 Sep 12, compiled Jan 26 2017 07:53:42)
返品:
vi --version
bash: syntax error near unexpected token `--version'
答え1
edit
エディタを使用してファイルを開くシェル関数です。デフォルトはthisですgvim
が、ファイルにサフィックス.tex
が含まれている場合は別のエディタを選択します。
function edit
{
typeset argc="$#"
typeset file="${!argc}"
typeset cmd="gvim"
case "$file" in
*.tex) cmd="/home/rudra/bin/vims.py" ;;
esac
command "$cmd" "$@"
}
これにより、特定のファイル名サフィックス用の追加エディタを簡単に追加できます。
この機能は~/.bashrc
ファイルに配置できます。
マニュアルにはbash
次の内容が含まれています。
ほとんどすべての目的で、エイリアスはシェル関数に置き換えられます。