要するに、ターミナルの単一のbashコマンドに条件を含めることができますか?もしそうなら、どのように?
現在のLaTeXドキュメントを.pdf形式で開くための次のコマンドがvimrc(システム間で共有)にあります:
map ,v :!gnome-open %<.pdf <CR> <CR>
私の質問は、OS Xマシンで家にいるときに、単に「open%<。pdf」を実行するための最良の方法は何ですか?これが私の擬似コードの推測です:
... if [$OSTYPE == "darwin*"] then open %<.pdf else gnome-open %<.pdf ...
これは、単一のBASHコマンドとして実行されます。そのような条件は可能ですか?もしそうなら、誰かが構文を手伝ってくれるでしょうか?そうでない場合、これはvimrcファイルの条件を介して実行できますか?
承認された回答:
別の方法は、OSのマップキーバインディングを正しく生成することです。例:
if executable("cmd.exe")
map ,v :!cmd.exe /C start "" "%<.pdf"<CR><CR>
elseif $OSTYPE =~ "darwin.*"
map ,v :!open '%<.pdf'<CR><CR>
elseif executable("gnome-open")
map ,v :!gnome-open '%<.pdf'<CR><CR>
endif
これはテストされ、機能しているように見えますが、私のVimスクリプトは少し不安定で、適切な引用などの詳細を見逃している可能性があるため、おそらくJanderのアプローチを採用し、執筆においてはるかに優れているシェルラッパーを使用します。 。
map ,v :!open.sh '%<.pdf'<CR><CR>
そして~/bin/open.sh
:
#!/bin/sh
if echo "$OSTYPE" | grep "^darwin" >/dev/null 2>&1; then
open "[email protected]" &
elif type gnome-open &>/dev/null; then
gnome-open "[email protected]" &
fi