コマンドラインから.lispファイルを自動インデントしようとしています。vim+slimvを使用してインデントを実行しています。
スクリプトを作成してみました:
vi -c 'call SlimvConnectSwank()' -c 'normal gg=G' -c 'wq' -c 'q!' temp.lisp
ただし、swankサーバーはインデントを実行するように照会されないため、ファイルを.lisp vimのデフォルトにインデントするだけです(slimvとサーバーが実行されていない場合)。
swankサーバーに接続するための呼び出しの後に、ある種のdelay / wait -cコマンドを配置する必要がありますか?viプロセス全体が非常に速く終了しているようで、swankに接続する機会を与えていません。スワンク接続が別のスレッドで発生する場合は、これが当てはまる可能性があると思います。
考え/コメント/提案をいただければ幸いです。
ありがとう!
タマスはそれを手に入れました。それは(そして私はこれをチェックしました、両方とも実際に必要です;本当に:))それを機能させるのはsleepコマンドとswankコマンドでした。
これを.bashrcに追加し、「ai」にエイリアスを設定して、コマンドラインから.lispファイルを簡単にインデントできるようにしました。
alias ai="vi \
-c 'call SlimvConnectSwank()' \
-c 'sleep 1' \
-c 'call SlimvEval(['0'])' \
-c 'normal gg=G' \
-c 'wq' \
-c 'q!'"
これで、「ai temp.lisp」は、temp.lispをslimv + vim+swankなどの標準に自動インデントします。
1つのファイルに対してbashコマンドを実行すると、lispファイルのリポジトリを自動インデントするためにこれをスクリプト化するさまざまな方法があります。