Вопрос Как выйти из Ranger файла Explorer обратно в командной строке, но сохранить текущий каталог?


я использую Исследователь файлов терминалов Ranger из терминала linux.
Скажем, я начинаю с командной строки в домашнем каталоге и запускает рейнджер

user@/home/user $ ranger

рейнджер открывается ..... и в рамках программы рейнджеров я исследую:

/media/ubuntu/sdf675d7sf5sdfs7/some_directory

Если я тогда нажму q, чтобы выйти из рейнджера, я вернусь в ту же папку, в которой я запускал рейнджера. то есть

user@/home/user $

Можно ли бросить рейнджера и остаться в директории, в которой я был с рейнджером, т.е.

user@/media/ubuntu/sdf675d7sf5sdfs7/some_directory $  

14
2018-02-22 01:36


происхождения




ответы:


Согласно его руководству

--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 вашей любимой оболочки рекомендуется.


17
2018-02-22 03:15



wow thats довольно умный, мне никогда не приходило в голову, что вы можете выдать команду программе, прекратить ее с помощью ; и затем укажите больше команд после полутотвы, которые - Im предполагается, выполняются в точке, которую вы закрываете ranger , благодаря! - the_velour_fog
Рассмотрите возможность использования .rangerdir вместо этого сделать это скрытым. Или удалите его в конце, rm -d $HOME/rangerdir, - Mateen Ulhaq
Это здорово, но если я правильно понимаю, это будет означать, что вы постоянно это поведение. Если было бы неплохо, если бы существовал способ выхода в текущий каталог рейнджера или каталог, в котором вы были, когда вы начали рейнджер. - neverfox
neverfox Как только вы создаете псевдоним, это зависит от вас, если вы предложите выбор каталога для приземления внутри этого псевдонима. Выбор может быть сделан до того, как вызывается двоичный файл или после его завершения. - Gombai Sándor


S

Если вы нажмете S, он открывает новую оболочку в текущем каталоге.

Тогда, если вы нажмете Ctrl + D на оболочке он возвращается к ranger,

Это обходное решение часто бывает достаточно хорошим.


13
2017-08-26 06:24





Чтобы ответить на вопрос Гомбая Сандора, я предлагаю внести незначительную корректировку в псевдоним:

alias ranger='ranger --choosedir=$HOME/.rangerdir; LASTDIR=`cat $HOME/.rangerdir`; cd "$LASTDIR"'

Изменив «$ Home / rangerdir» на «$ Home / .rangerdir», вы делаете файл, созданный скрытым псевдонимом. просто делает это так, что это не раздражающе загромождает домашнюю папку. он не имеет функциональных отличий от того, как он работает.


3
2017-07-19 14:30





Я нашел более легкое решение. Когда вы установите рейнджер, он поместит скрипт в вашу папку bin, который, если будет выполнен, запустит программу. Но если вы его используете,

$ source ranger

он запустит рейнджера и бросит вас в последнюю посещенную папку, когда вы выйдете.

поэтому, если вы хотите, чтобы это поведение по умолчанию, просто выполните

$ alias ranger = 'источник-рейнджер'

или даже лучше поместить его в ваш .bashrc-файл.

Чтобы просмотреть документацию и реализацию этой функции, прочитайте скрипт ranger в папке bin.


2
2018-06-08 13:45





Спасибо за Гомбай за вдохновение, но на Ubuntu 14.04 LTS я нашел, что решение не совсем сработало. Немного изменив его и сохранив в качестве псевдонима в моем .bashrc, работала отлично (после создания rangerdir файл):

alias ranger='ranger --choosedir=$HOME/rangerdir;cd "$(cat $HOME/rangerdir)"'

Следующий пост на askubuntu помог мне, когда я пытался понять, почему разные решения, которые я пытался, не работали: https://askubuntu.com/questions/404141/why-cant-i-pipe-into-cd


1
2018-03-11 18:32