ターミナルディレクトリが最後にアクセスしたVIFMディレクトリと同じになるようにVIFMを終了する

ターミナルディレクトリが最後にアクセスしたVIFMディレクトリと同じになるようにVIFMを終了する

私はタイトルに書かれていることを達成しようとしています。私は以下の指示に従いました(http://sourceforge.net/p/vifm/feature-requests/24/) を試しましたが、うまくいきませんでした。私が実行した手順は次のとおりです。

  1. vifmrc コマンドに特別なコマンドを追加します Q :execute '!echo %d > ~/.vifm/lastdir' | quit
  2. .bashrc にエイリアスを追加します。 alias vifm='source ~/bin/vf'
  3. 次のスクリプトを ~/bin/vf に保存します。 if [ -f ~/.vifm/lastdir ]; then rm ~/.vifm/lastdir fi /usr/local/bin/vifm "$@" if [ -f ~/.vifm/lastdir ]; then cd cat ~/.vifm/lastdir fi

私は (3) に最も懐疑的です。ホーム ディレクトリに「bin」フォルダを作成し、新しい「bin」内に「vf」ファイルを作成して、(3) で説明したテキストを配置する必要がありました。ここで正しく進めたのでしょうか?

答え1

ターミナルに行くだけでいいのでしょうか?vifmでこれを実行してください

:sh

vifmに再度アクセスする必要がある場合は、これを作成するだけです

exit <OR> ctrl-D

ただし、このターミナルに入力したのと同じディレクトリの vifm に入力します。

答え2

おそらく、必要なスクリプトを再フォーマットすると役立つでしょう。次のようになります。

〜/bin/vf

if [ -f ~/.vifm/lastdir ]; then
    rm ~/.vifm/lastdir
fi
/usr/local/bin/vifm "$@"
if [ -f ~/.vifm/lastdir ]; then
    cd "`cat ~/.vifm/lastdir`"
fi

特に、cat最後から 2 番目の行のコマンドの周りの逆チェック マークに注意してください。これらは、お使いのバージョンでは失われているようですが、かなり重要です。また、現在のディレクトリにスペースがある場合に備えて、"引数の周りに余分なものを追加しました。cd

これは、プログラムが通常実行できないことを実行しているように見せるための、本当にひどいハックです。しかし、それが作業の遂行に役立つのであれば、素晴らしいことです。

答え3

vifm で必要なディレクトリに移動します。 と入力します:e。 その後、 を使用するとよいでしょう:terminal

関連情報