Выход из 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 ]; затем rm ~/.vifm/lastdir fi /usr/local/bin/vifm "$@" if [ -f ~/.vifm/lastdir ]; затем cd cat ~/.vifm/lastdir fi

Я очень скептически отношусь к (3). Мне пришлось создать папку "bin" в моем домашнем каталоге, а затем создать файл "vf" в новом "bin", чтобы затем поместить текст, описанный в (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команды в предпоследней строке, они, похоже, пропали из вашей версии и довольно важны. Я также добавил дополнительные "вокруг аргумента на cdслучай, если в вашем текущем каталоге есть пробелы.

Это действительно ужасный хак, чтобы заставить вашу программу выглядеть так, будто она делает что-то, что программы обычно не могут делать. Но если это помогает вам выполнять работу, отлично.

решение3

Перейдите в нужную вам директорию в vifm. И введите :e. Затем вы можете использовать :terminal.

Связанный контент