Interactive cd (เบราว์เซอร์ไดเรกทอรี)


1

บางครั้งเมื่อทำงานในลำดับชั้นของไฟล์ที่ซ้อนกันอย่างลึกล้ำ (เช่นโค้ด Java) ฉันพบว่ามันน่ารำคาญในการข้ามจากลีฟหนึ่งไปอีกอันหนึ่ง cd-up ปกติของฉันดูเหมือนว่า:

$ cd ../../..
# Oops, not enough
$ cd ..
# one more
$ cd ..

หากฉันต้องการแก้ไขไฟล์ฉันสามารถvim dirและเปิดไฟล์ที่ต้องการแบบโต้ตอบได้
มียูทิลิตี้บางอย่างที่อนุญาตให้เปลี่ยนไดเรกทอรีแบบโต้ตอบหรือไม่? Explorers / commanders ( mc, vifm) หนักเกินไปสำหรับภารกิจดังกล่าว

ฉันค้นหาทางอินเทอร์เน็ตแล้ว แต่คำค้นหาของฉันดูเหมือนจะไม่เกี่ยวข้องเลย

เพิ่มเพื่อชี้แจง:

ฉันกำลังค้นหายูทิลิตี (ลองเรียกมันvcdว่า) ซึ่งแสดงแผนผังไดเรกทอรีแบบโต้ตอบซึ่งฉันสามารถสำรวจและเลือกตำแหน่งที่จะไปยังซีดี
มุมมองจากผู้ใช้vim .เรียกสมมุติซึ่งในท้ายที่สุดรันvcd vim $filenameฉันต้องการฟังก์ชั่นที่คล้ายกัน (เบราว์เซอร์ไดเรกทอรี) ในที่สุดก็จบลงด้วยการCWDเปลี่ยนเป็นไดเรกทอรีที่เลือกแบบโต้ตอบ ฉันหวังว่านี่จะทำให้ความตั้งใจของฉันชัดเจนยิ่งขึ้น


คุณหมายถึง - กดปุ่มและcd ..; lsดำเนินการเช่นเดียวกับที่คุณใช้-คำสั่งในการเรียกดูไดเรกทอรีเป็นกลุ่ม?
nitishch

กับedbrowseที่คุณสามารถทำเช่นนี้ w / dirs, google.com, อีเมล์, ไฟล์ฐานข้อมูล ... สิ่งที่อาจจะอื่น ๆ ?
mikeserv

ลองดูที่กวางและ / หรือblscd พวกเขาใช้คอลัมน์มิลเลอร์และมีวัตถุประสงค์เพื่อให้การนำทางหนึ่งสำหรับทุบตีและหนึ่งสำหรับ zsh
xaizek

คำตอบ:


1

บางสิ่งที่เหมือนกับนิตยสาร PC DMย้อนหลังไปในสมัย ​​DOS ... ฉันไม่รู้โปรแกรมที่คล้ายกันบน Linux แต่ฉันชอบxdการนำทางไปทั่วไดเรกทอรี ด้วยฟังก์ชั่นที่กำหนดไว้เป็น

xd() {
    cd "$(/usr/bin/xd "$@")"
}

คุณสามารถพิมพ์เช่น

xd /ulb

ซึ่งจะพิมพ์รายการไดเรกทอรีทั้งหมดที่ตรงกับ/u*/l*/b*( /usr/lib/binfmt.d, /usr/local/bin... ) ขอให้คุณเลือกหนึ่งรายการและเปลี่ยนเป็น


อืมxd V3.22.09ไม่เข้าใจการตั้งค่าภาษาของฉันและไม่รองรับ UTF-8 ดังนั้นxd фการพิมพ์no solutionsสำหรับфแต่xd $'\xd1'พิมพ์1: /home/.../ф
Evgeny Vereshchagin

1
คุณจะแจ้งข้อผิดพลาด ( reportbug xd) ไหม? ผู้ดูแล Debian เป็นxdผู้เขียนดังนั้นคุณจะคุยกับคนที่ใช่ :-) โดยตรง
สตีเฟ่น Kitt

ขอบคุณสำหรับคำเตือน ฉันควรตรวจสอบเวอร์ชันล่าสุดxdก่อนที่จะส่งรายงานข้อผิดพลาด :)
Evgeny Vereshchagin

1

ลองfzf-FS

ติดตั้งfzf :

git clone --depth 1 https://github.com/junegunn/fzf.git ~/.fzf
~/.fzf/install

ระบุแหล่งที่มาของคุณอีกครั้ง~/.bashrc:. ~/.bashrc

โคลนfzf-fs:git clone https://github.com/D630/fzf-fs ~/fzf-fs

เพิ่ม~/fzf-fsลงในของคุณPATH: PATH=$PATH:~/fzf-fs
เรียกใช้fzf-fs --init
กำหนดนามแฝง: alias vcd='. fzf-fs'
เรียกใช้vcd ~
คุณควรเห็นสิ่งนี้: ป้อนคำอธิบายรูปภาพที่นี่

เลือกไดเรกทอรีที่มีEnterใช้การค้นหาฟัซซี่พิมพ์[q]เพื่อออก

ดูเพิ่มเติมที่: fzf-fs การใช้งานfzf-fs ไม่รองรับการขึ้นบรรทัดใหม่ในชื่อไฟล์คงที่สำหรับcd!


นั่นเป็นยูทิลิตี้ที่ดีจริงๆขอบคุณสำหรับคำแนะนำ!
Fire-Dragon-DoL

0

แม้ว่าฉันจะไม่รู้จักเครื่องมือที่เหมาะกับคำอธิบายของคุณบางทียูทิลิตี้ขนาดเล็กบางตัวที่กล่าวถึงด้านล่างอาจมีประโยชน์หรือไม่

pushdและpopd, อธิบายไว้ที่นี่พร้อมกับเครื่องมืออื่น ๆ ที่สามารถเพิ่มการผลิตในขณะที่การนำรอบ

fasd - ให้การเข้าถึงไฟล์และไดเรกทอรีอย่างรวดเร็วสำหรับ POSIX เชลล์

autojump - a cdที่เรียนรู้

z - การเปลี่ยนแปลงข้างต้น

v - zสำหรับกลุ่ม

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.