Saya menggunakan file explorer terminal Ranger dari dalam terminal linux.
Katakanlah saya mulai dari command prompt di direktori home dan meluncurkan ranger
user@/home/user $ ranger
ranger terbuka ..... dan dalam program ranger saya menjelajah ke:
/media/ubuntu/sdf675d7sf5sdfs7/some_directory
Jika saya menekan q untuk keluar dari ranger, saya kembali ke folder yang sama dengan tempat saya meluncurkan ranger. yaitu
user@/home/user $
Apakah mungkin untuk keluar dari ranger, dan tetap berada di direktori tempat saya bersama ranger, i.
user@/media/ubuntu/sdf675d7sf5sdfs7/some_directory $
linux
command-line
terminal
ranger
the_velour_fog
sumber
sumber
;
dan kemudian menentukan lebih banyak perintah setelah titik koma yang - Saya anggap dijalankan pada titik yang Anda tutupranger
, terima kasih!.rangerdir
saja untuk membuatnya tersembunyi. Atau hapus di bagian akhirrm -d $HOME/rangerdir
,.fish_config
dan menambahkan singkatan untukranger --choosedir="$HOME/.rangerdir"; cd (cat $HOME/.rangerdir)
S
Jika Anda menekan
S
, itu membuka shell baru pada direktori saat ini.Lalu jika Anda menekan
Ctrl + D
shell, itu kembali keranger
.Solusi ini seringkali cukup baik.
sumber
Saya menemukan solusi yang lebih mudah. Ketika Anda menginstal ranger, itu akan menempatkan skrip di folder bin Anda yang, jika dijalankan, akan memulai program. Tetapi jika Anda sumbernya, dengan
itu akan meluncurkan ranger dan menjatuhkan Anda di folder yang terakhir dikunjungi ketika Anda keluar.
jadi jika Anda ingin perilaku ini secara default, lakukan saja
atau bahkan lebih baik memasukkannya ke file .bashrc Anda.
Untuk melihat dokumentasi dan implementasi untuk fitur ini, baca skrip ranger di folder bin Anda.
sumber
. ranger
) disebutkan dalam wikiUntuk mendukung jawaban Gombai Sándor, saya sarankan untuk melakukan sedikit penyesuaian pada alias:
Dengan mengubah "$ Home / rangerdir" menjadi "$ Home / .rangerdir" Anda membuat file yang dibuat oleh alias disembunyikan. hanya membuatnya jadi tidak mengganggu mengacaukan folder rumah. tidak ada bedanya fungsional dengan cara kerjanya.
sumber
Saya menemukan pertanyaan serupa di tempat lain dengan jawaban yang lebih baik dibandingkan dengan Gambai dan varian yang diusulkan lainnya. Lebih baik sejak itu.
Ada fungsi di file shell yang sudah ada di git repo ranger:
https://github.com/ranger/ranger/blob/master/examples/bash_automatic_cd.sh
Anda dapat meletakkan fungsi ini di
~/.zshrc
file shell rc (misalnya ) favorit Anda dan membuat alias dan / atau mengikatnya ke kombinasi tombol (sekali lagi keduanya bisa masuk dalam file rc):dan / atau
Disclaimer: yang
bindkey
bekerja di atas dalam zsh dan Anda harus mengubahnya berdasarkan shell pilihan Andasumber
Terima kasih untuk Gombai untuk inspirasinya, tetapi pada Ubuntu 14.04 LTS saya menemukan solusinya tidak bekerja. Memodifikasinya sedikit dan menyimpan sebagai alias di .bashrc saya, berikut ini berfungsi dengan baik (setelah membuat
rangerdir
file):alias ranger='ranger --choosedir=$HOME/rangerdir;cd "$(cat $HOME/rangerdir)"'
Posting berikut di askubuntu membantu saya ketika saya mencoba mencari tahu mengapa berbagai solusi yang saya coba tidak berfungsi: /ubuntu/404141/why-cant-i-pipe-into-cd
sumber
bolehkah saya satu-up semua? melewati argumen lain mungkin berguna, jadi letakkan ini di shellrc Anda
sumber
Berikut cara yang lebih elegan dengan menulis pembungkus fungsi. Cukup gunakan perintah
ranger
, dan jika Anda ingin menyinkronkan direktori ubah kembali ke shell utama, berhenti ranger dengan modalQ
.(Kode di bawah ini adalah tes dengan Bash dan ZSH.)
Ini akan memungkinkan Anda menyinkronkan kembali perubahan direktori sesuai permintaan . Gunakan
:q
untuk keluar secara normal,Q
untuk keluar dan mengubah direktori Anda.sumber