Ich verwende den Ranger-Terminal-Dateiexplorer in einem Linux-Terminal.
Angenommen, ich starte über die Eingabeaufforderung im Ausgangsverzeichnis und starte Ranger
user@/home/user $ ranger
Ranger öffnet ..... und innerhalb des Ranger-Programms erkunde ich:
/media/ubuntu/sdf675d7sf5sdfs7/some_directory
Wenn ich dann q drücke, um Ranger zu beenden, werde ich wieder in denselben Ordner verschoben, aus dem ich Ranger gestartet habe. dh
user@/home/user $
Ist es möglich, Ranger zu beenden und in dem Verzeichnis zu bleiben, in dem ich mich mit Ranger befand?
user@/media/ubuntu/sdf675d7sf5sdfs7/some_directory $
linux
command-line
terminal
ranger
the_velour_fog
quelle
quelle
;
und dann nach dem Semikolon weitere Befehle angeben können. Ich gehe davon aus, dass sie an dem Punkt ausgeführt werden, an dem Sie schließenranger
. Danke!.rangerdir
stattdessen, um es auszublenden. Oder löschen Sie es am Enderm -d $HOME/rangerdir
.fish_config
ranger --choosedir="$HOME/.rangerdir"; cd (cat $HOME/.rangerdir)
S
Wenn Sie drücken
S
, wird eine neue Shell im aktuellen Verzeichnis geöffnet.Wenn Sie dann
Ctrl + D
auf die Muschel schlagen , geht es zurück zuranger
.Diese Problemumgehung ist häufig ausreichend.
quelle
Ich habe eine einfachere Lösung gefunden. Wenn Sie Ranger installieren, legt es ein Skript in Ihrem Bin-Ordner ab, das das Programm startet, wenn es ausgeführt wird. Aber wenn Sie es beschaffen, mit
Beim Beenden wird Ranger gestartet und Sie werden im zuletzt besuchten Ordner abgelegt.
Wenn Sie dieses Verhalten standardmäßig möchten, tun Sie dies einfach
oder noch besser in Ihre .bashrc-Datei einfügen.
Lesen Sie das Ranger-Skript in Ihrem bin-Ordner, um die Dokumentation und Implementierung für diese Funktion anzuzeigen.
quelle
. ranger
) im Wiki erwähntAls Ausgleich zu Gombai Sándors Antwort schlage ich vor, den Alias geringfügig anzupassen:
Indem Sie "$ Home / rangerdir" in "$ Home / .rangerdir" ändern, wird die vom Alias erstellte Datei ausgeblendet. macht es nur so, dass es den Home-Ordner nicht nervt. Es macht keinen funktionalen Unterschied, wie es funktioniert.
quelle
Ich bin auf eine ähnliche Frage gestoßen, die im Vergleich zu Gambai und den anderen vorgeschlagenen Varianten besser beantwortet werden kann . Es ist besser da.
Es gibt eine Funktion in einer Shell-Datei, die sich bereits im Git-Repo von Ranger befindet:
https://github.com/ranger/ranger/blob/master/examples/bash_automatic_cd.sh
Sie können diese Funktion in die Shell-RC-
~/.zshrc
Datei Ihres Favoriten einfügen und entweder einen Alias erstellen und / oder sie an eine Tastenkombination binden (wieder können beide in die RC-Datei aufgenommen werden):und / oder
Haftungsausschluss: Das
bindkey
oben Genannte funktioniert in ZSH und Sie sollten es basierend auf Ihrer bevorzugten Shell ändernquelle
Vielen Dank für Gombai für die Inspiration, aber auf Ubuntu 14.04 LTS fand ich, dass die Lösung nicht ganz funktioniert hat. Durch geringfügiges Ändern und Speichern als Alias in meiner .bashrc-
rangerdir
Datei funktionierte Folgendes einwandfrei (nach dem Erstellen der Datei):alias ranger='ranger --choosedir=$HOME/rangerdir;cd "$(cat $HOME/rangerdir)"'
Der folgende Beitrag auf askubuntu hat mir geholfen, als ich herauszufinden versuchte, warum andere Lösungen, die ich versuchte, nicht funktionierten: /ubuntu/404141/why-cant-i-pipe-into-cd
quelle
Darf ich Sie alle allein lassen? Das Durchgehen der anderen Argumente kann nützlich sein. Geben Sie dies in Ihre Shell ein
quelle
Hier ist eine elegantere Möglichkeit, indem Sie einen Funktionswrapper schreiben. Verwenden
ranger
Sie einfach den Befehl , und wenn Sie das Verzeichnis synchronisieren möchten, kehren Sie zur Hauptshell zurück, und beenden Sie Ranger mit GroßbuchstabenQ
.(Die folgenden Codes sind Tests mit Bash und ZSH.)
Auf diese Weise können Sie die Verzeichnisänderung bei Bedarf zurücksynchronisieren . Verwenden Sie,
:q
um das Programm normalQ
zu beenden und das Verzeichnis zu ändern.quelle