--choosedir=targetfile Allows you to pick a directory with ranger. When you exit ranger, it will write the last visited directory into targetfile.
Так что все, что вам нужно сделать, это создать псевдоним:
alias ranger='ranger --choosedir=$HOME/.rangerdir; LASTDIR=`cat $HOME/.rangerdir`; cd "$LASTDIR"'
И рекомендуется записать этот псевдоним в rc вашей любимой оболочки.
wow thats довольно умно, мне никогда не приходило в голову, что вы можете ввести команду для программы, завершить ее с помощью `;` и затем указать больше команд после точки с запятой, которые - я предполагаю, выполняются в точке, где вы закрываете `ranger` , Спасибо!
the_velour_fog 8 лет назад
2
Попробуйте вместо этого использовать `.rangerdir`, чтобы скрыть его. Или удалите его в конце, `rm -d $ HOME / rangerdir`.
Mateen Ulhaq 6 лет назад
0
Это здорово, но если я правильно понимаю, это будет означать, что у вас такое поведение постоянно. Было бы неплохо, если бы был способ иметь возможность выхода в текущий каталог рейнджеров ИЛИ каталог, в котором вы находились, когда запускали рейнджер.
neverfox 6 лет назад
0
neverfox После того, как вы создадите псевдоним, вы можете выбрать каталог, в который вы попадете. Выбор может быть сделан до вызова двоичного файла или после его завершения.
Gombai Sándor 6 лет назад
0
Спасибо за это потрясающее решение! Я использую оболочку fish, поэтому для установки псевдонима я использовал `fish_config` и добавил аббревиатуру для` ranger --choposedir = "$ HOME / .rangerdir"; cd (cat $ HOME / .rangerdir) `
rockzombie2 5 лет назад
0
15
Ciro Santilli 新疆改造中心 六四事件 法轮功
S
Если вы нажмете S, откроется новая оболочка в текущем каталоге.
Затем, если вы нажмете Ctrl + Dна снаряд, он возвращается к ranger.
Этот обходной путь часто достаточно хорош.
3
dduxx
В дополнение к ответу Гомбая Шандора, я предлагаю немного изменить псевдоним:
alias ranger='ranger --choosedir=$HOME/.rangerdir; LASTDIR=`cat $HOME/.rangerdir`; cd "$LASTDIR"'
Изменив "$ Home / rangerdir" на "$ Home / .rangerdir", вы сделаете файл, созданный псевдонимом, скрытым. просто делает так, чтобы не раздражать домашнюю папку. это не имеет никакого функционального значения к тому, как это работает.
3
Ogino Knaus
Я нашел более простое решение. Когда вы устанавливаете Ranger, он помещает скрипт в папку bin, который, если он будет выполнен, запустит программу. Но если вы получите его, с
$ source ranger
он запустит средство проверки и поместит вас в последнюю посещенную папку при выходе.
так что если вы хотите это поведение по умолчанию, просто сделайте
$ alias ranger = 'источник рейнджер'
или даже лучше поместите это в свой файл .bashrc.
Чтобы увидеть документацию и реализацию этой функции, прочитайте скрипт рейнджера в папке bin.
1
garzai
Спасибо за Gombai за вдохновение, но на Ubuntu 14.04 LTS я обнаружил, что решение не совсем работает. Слегка изменив его и сохранив в качестве псевдонима в моем .bashrc, отлично сработало следующее (после создания rangerdirфайла):
alias ranger='ranger --choosedir=$HOME/rangerdir;cd "$(cat $HOME/rangerdir)"'
Сейчас это немного устарело, но я оказался здесь с той же проблемой. Сиро Сантилли сказал выше, что если вы нажмете «S» в рейнджере, он откроется в новой оболочке. В моей системе, нажав «S» в каталоге, откроется каталог в текущей оболочке, именно то, что я хотел. Надеюсь, что это помогает другим людям.