Korzystam z eksploratora plików terminali Ranger z poziomu terminala Linux.
Powiedzmy, że zaczynam od wiersza poleceń w katalogu domowym i uruchamiam komandosa
user@/home/user $ ranger
ranger otwiera się ..... w ramach programu rangerów eksploruję:
/media/ubuntu/sdf675d7sf5sdfs7/some_directory
Jeśli następnie naciśniesz q, aby wyjść z Rangera, nastąpi powrót do tego samego folderu, z którego uruchomiłem Rangera. to znaczy
user@/home/user $
Czy można wyjść z Rangera i pozostać w katalogu, w którym byłem z Rangerem, tj.
user@/media/ubuntu/sdf675d7sf5sdfs7/some_directory $
linux
command-line
terminal
ranger
the_velour_fog
źródło
źródło
;
a następnie podać więcej poleceń po średniku, które - Zakładam, że są uruchamiane w miejscu, w którym zamykaszranger
, dzięki!.rangerdir
zamiast tego, aby ukryć. Lub usunąć go na końcurm -d $HOME/rangerdir
.fish_config
i dodałem skrót dlaranger --choosedir="$HOME/.rangerdir"; cd (cat $HOME/.rangerdir)
S.
Jeśli naciśniesz
S
, otwiera nową powłokę w bieżącym katalogu.Jeśli trafisz
Ctrl + D
pocisk, wraca doranger
.To obejście jest często wystarczające.
źródło
Znalazłem łatwiejsze rozwiązanie. Po zainstalowaniu ranger umieści skrypt w folderze bin, który, jeśli zostanie wykonany, uruchomi program. Ale jeśli to zrobisz, z
po wyjściu uruchomi strażnika i wrzuci cię do ostatnio odwiedzanego folderu.
więc jeśli chcesz to zachowanie domyślnie, po prostu zrób
lub nawet lepiej umieścić go w pliku .bashrc.
Aby zobaczyć dokumentację i implementację tej funkcji, przeczytaj skrypt rangera w folderze bin.
źródło
. ranger
) jest wspomniana na wikiAby w skrócie odpowiedzieć na odpowiedź Gombai Sándor, sugeruję drobną korektę aliasu:
Zmieniając „$ Home / rangerdir” na „$ Home / .rangerdir”, ukrywasz plik utworzony przez alias. po prostu sprawia, że nie jest denerwująco zaśmiecający folder domowy. nie ma żadnej funkcjonalnej różnicy w tym, jak to działa.
źródło
Natknąłem się na podobne pytanie gdzie indziej z lepszą odpowiedzią w porównaniu do Gambai i jego innych proponowanych wariantów. Od tego czasu jest lepiej.
W pliku powłoki jest już funkcja w repozytorium git Rangera:
https://github.com/ranger/ranger/blob/master/examples/bash_automatic_cd.sh
Możesz umieścić tę funkcję w
~/.zshrc
pliku rc powłoki ulubionego (na przykład ) i albo utworzyć alias i / lub powiązać go z kombinacją klawiszy (znowu oba mogą przejść do pliku rc):i / lub
Wsparcie na
bindkey
powyższe prace w zsh i należy ją zmienić na podstawie preferowanego muszliźródło
Dziękuję Gombai za inspirację, ale w Ubuntu 14.04 LTS stwierdziłem, że rozwiązanie nie do końca działało. Po nieznacznym zmodyfikowaniu go i zapisaniu jako aliasu w moim
rangerdir
pliku .bashrc następujące działania działały idealnie (po utworzeniu pliku):alias ranger='ranger --choosedir=$HOME/rangerdir;cd "$(cat $HOME/rangerdir)"'
Poniższy post na askubuntu pomógł mi, gdy próbowałem dowiedzieć się, dlaczego różne rozwiązania, które próbowałem, nie działały: /ubuntu/404141/why-cant-i-pipe-into-cd
źródło
czy mogę się pojedynkować? przekazywanie innych argumentów może być przydatne, więc umieść to w swoim shellrc
źródło
Oto bardziej elegancki sposób na to, pisząc opakowanie funkcji. Wystarczy użyć polecenia
ranger
, a jeśli chcesz zsynchronizować katalog, przejdź z powrotem do głównej powłoki, porzuć komandosa z kapitałemQ
.(Poniższe kody to test z Bash i ZSH.)
Umożliwi to zsynchronizowanie zmiany katalogu na żądanie . Użyj,
:q
aby wyjść normalnie,Q
aby wyjść i zmienić katalog.źródło