Я использую Ranger Terminal Explorer изнутри терминала Linux.
Скажем, я запускаю из командной строки в домашнем каталоге и запускаю рейнджер
user@/home/user $ ranger
Рейнджер открывается ..... и в рамках программы Рейнджер я исследую:
/media/ubuntu/sdf675d7sf5sdfs7/some_directory
Если я затем нажму q, чтобы выйти из режима проверки, я попаду обратно в ту же папку, из которой я запустил программу проверки. т.е.
user@/home/user $
Можно ли выйти из рейнджера и остаться в каталоге, в котором я был с рейнджером, т.е.
user@/media/ubuntu/sdf675d7sf5sdfs7/some_directory $
linux
command-line
terminal
ranger
the_velour_fog
источник
источник
;
ввести команду для программы, завершить ее с помощью символа а, а затем указать больше команд после точки с запятой, которые ... Я предполагаю, что они выполняются в точке, которую вы закрываетеranger
, спасибо!.rangerdir
вместо этого, чтобы сделать его скрытым. Или удалите его в концеrm -d $HOME/rangerdir
.fish_config
и добавил аббревиатуру дляranger --choosedir="$HOME/.rangerdir"; cd (cat $HOME/.rangerdir)
S
Если вы нажмете
S
, откроется новая оболочка в текущем каталоге.Затем, если вы нажмете
Ctrl + D
на оболочку, он возвращается кranger
.Этот обходной путь часто достаточно хорош.
источник
Я нашел более простое решение. Когда вы устанавливаете Ranger, он помещает в папку bin скрипт, который, если он будет выполнен, запустит программу. Но если вы получите его, с
он запустит рейнджер и высадит вас в последней посещенной папке при выходе.
так что если вы хотите это поведение по умолчанию, просто сделайте
или даже лучше поместите это в свой файл .bashrc.
Чтобы увидеть документацию и реализацию этой функции, прочитайте скрипт рейнджера в папке bin.
источник
. ranger
) упоминается в викиВ дополнение к ответу Гомбая Шандора, я предлагаю немного изменить псевдоним:
Изменяя «$ Home / rangerdir» на «$ Home / .rangerdir», вы делаете файл, созданный псевдонимом, скрытым. просто делает так, чтобы не раздражать домашнюю папку. это не имеет никакого функционального значения к тому, как это работает.
источник
Я наткнулся на похожий вопрос в другом месте с лучшим ответом по сравнению с Gambai и его другими предложенными вариантами. Так лучше.
В файле оболочки уже есть функция в git-репозитории рейнджера:
https://github.com/ranger/ranger/blob/master/examples/bash_automatic_cd.sh
Вы можете поместить эту функцию в rc-
~/.zshrc
файл оболочки вашего любимого (например ) и создать псевдоним и / или связать его с комбинацией клавиш (опять-таки оба могут войти в rc-файл):и / или
Отказ от ответственности: на
bindkey
вышеуказанные работы в ZSH , и вы должны изменить его на основе предпочтительного оболочкиисточник
Спасибо за Gombai за вдохновение, но на Ubuntu 14.04 LTS я обнаружил, что решение не совсем работает. Слегка изменив его и сохранив в качестве псевдонима в моем .bashrc, отлично сработало следующее (после создания
rangerdir
файла):alias ranger='ranger --choosedir=$HOME/rangerdir;cd "$(cat $HOME/rangerdir)"'
Следующая статья на askubuntu помогла мне, когда я пытался выяснить, почему разные решения, которые я пробовал, не работали: /ubuntu/404141/why-cant-i-pipe-into-cd
источник
Могу ли я один на все? передача других аргументов может быть полезна, поэтому поместите это в свой shellrc
источник
Вот более элегантный способ написания функциональной оболочки. Просто используйте команду
ranger
, и если вы хотите синхронизировать каталог, перейдя обратно в основную оболочку, выйдите из программы «Рейнджер» с большой буквыQ
.(Коды ниже - это тесты с Bash и ZSH.)
Это позволит вам синхронизировать изменение каталога по требованию . Используйте,
:q
чтобы выйти,Q
чтобы выйти и изменить каталог.источник