มีการรวมกันที่ดีของเบราว์เซอร์บรรทัดคำสั่งและไฟล์กราฟิก?


15

มีวิธีแก้ปัญหาที่เป็นไปได้มากกว่าการรวมข้อดีของ command-line และเบราว์เซอร์ไฟล์กราฟิกหรือไม่?

ตัวอย่างเช่นบรรทัดคำสั่งเป็นสิ่งที่ดีในการเปลี่ยนไดเรกทอรีและเรียกใช้คำสั่ง แต่ไม่สามารถแสดงภาพขนาดย่อและไฟล์เบราว์เซอร์นั้นใช้งานง่ายให้ภาพรวมที่ดีว่าคุณอยู่ที่ไหนในต้นไม้ แต่คุณไม่สามารถ "คุย" กับ คอมพิวเตอร์เหมือนในบรรทัดคำสั่ง

แก้ไข: สำหรับฉันในฐานะผู้ใช้บรรทัดคำสั่งมันต้องการมากกว่าบรรทัดคำสั่งที่มีความสามารถของเบราว์เซอร์ไฟล์เพิ่มเติมมากกว่าการมีเบราว์เซอร์ไฟล์ที่มีคุณสมบัติบรรทัดคำสั่งบางอย่าง

คำตอบ:


9

ปลาโลมาดูเหมือนว่าคุณกำลังมองหา:

แต่เทอร์มินัลเป็นทาสของการนำทางไดเรกทอรี (ถ้าคุณเปลี่ยนไดเรกทอรีใน GUI จะเปลี่ยนในเทอร์มินัล แต่ไม่ใช่วิธีอื่น ๆ )

ในการเปลี่ยนไดเรกทอรีแอปพลิเคชันเมื่อคุณเปลี่ยนไดเรกทอรีปัจจุบันในเทอร์มินัลคุณสามารถทำให้เชลล์ส่งข้อความไปยัง Dolphin เพื่ออัปเดตมุมมอง เพิ่มไฟล์นี้ลงในไฟล์ shell rc ของคุณ ( คำเตือน:ไม่ผ่านการทดสอบอย่างละเอียด แต่ทำงานได้ที่นี่สำหรับสถานการณ์ที่พบบ่อยที่สุดให้ใช้ความเสี่ยงของคุณเอง):

ทุบตี:

if [ -n "$KONSOLE_DBUS_SERVICE" ]; then
  if qdbus "$KONSOLE_DBUS_SERVICE" /dolphin >/dev/null 2>&1; then
    cd() {
      builtin cd "$@"
      qdbus "$KONSOLE_DBUS_SERVICE" /dolphin/MainWindow0 org.kde.dolphin.MainWindow.changeUrl "$PWD" >/dev/null
    }
  fi
fi

zsh:

if [ -n "$KONSOLE_DBUS_SERVICE" ]; then
  if qdbus "$KONSOLE_DBUS_SERVICE" /dolphin >/dev/null 2>&1; then
    chpwd() {
      qdbus "$KONSOLE_DBUS_SERVICE" /dolphin/MainWindow0 org.kde.dolphin.MainWindow.changeUrl "$PWD" >/dev/null
    }
  fi
fi

มีปัญหากับสิ่งนี้ เมื่อหน้าต่างโลมาเปลี่ยนไดเรกทอรีปัจจุบันเทอร์มินัลจะสูญเสียโฟกัส คุณอาจต้องการขอให้แก้ไขข้อบกพร่อง (หรือแม้กระทั่งการสนับสนุนพื้นเมืองสำหรับคุณสมบัตินี้) ให้กับนักพัฒนาหากคุณต้องการ


น่าเสียดายที่การเปลี่ยนไดเรกทอรีจากบรรทัดคำสั่งเป็นหนึ่งในคุณสมบัติที่สำคัญสำหรับฉัน
dStulle

@dStulle: หากคุณต้องการใช้แป้นพิมพ์เพื่อเปลี่ยนไดเรกทอรีคุณสามารถพิมพ์Ctrl-Lใน Dolphin เพื่อให้เคอร์เซอร์ข้ามไปยังแถบที่อยู่ซึ่งคุณสามารถพิมพ์ที่อยู่ของไดเรกทอรีใหม่และกดEnterเพื่อนำทาง หากคุณต้องการพิมพ์cdในบรรทัดคำสั่งคุณควรทำการแฮ็คที่ดำเนินการqdbusเพื่อส่งข้อความorg.kde.dolphin.MainWindow.changeUrl($PWD)กลับไปยังโลมา แต่ฉันคิดว่าคุณควรลองดูส่วนใหญ่จะคุ้นเคยกับกระบวนทัศน์ใหม่ของการรวม GUI-Terminal
Juliano

มันไม่เกี่ยวกับการ "พิมพ์" สถานที่ แต่จะ "เป็น" ในบรรทัดคำสั่ง qdbus นั้นดีมากและใช้งานได้ แต่ไม่สามารถหาวิธีเชื่อมโยงเทอร์มินัลกับอินสแตนซ์ของโลมาได้ หากมีหน้าต่างโลมาเปิดมากกว่าหนึ่งแห่งดูเหมือนว่าคุณไม่สามารถกำหนดว่าจะเปลี่ยน UUU ใดและฉันไม่สามารถหาวิธีนามแฝงสคริปต์หรือฟังก์ชันเพื่อเปลี่ยนไดเรกทอรีบรรทัดคำสั่งปัจจุบันได้ แก้ไข: ดูเหมือนว่าคนอื่นทำในขณะที่ฉันพยายาม ...
dStulle

บริการ Dolphin สามารถเห็นได้ในสถานีจากตัวแปร $ KONSOLE_DBUS_SERVICE env มันเป็นปัญหาที่แท้จริงถ้าคุณมีสองหน้าต่างที่เปิดจากอินสแตนซ์เดียวกันของโลมา ฉันไม่รู้วิธีแยกแยะระหว่างพวกเขาจริงๆ มี $ KONSOLE_DBUS_SESSION แต่เชื่อมโยงกับเซสชัน konsole เท่านั้นไม่ใช่หน้าต่างปลาโลมา อย่างไรก็ตามคุณควรแนะนำคุณลักษณะนี้แก่นักพัฒนาโลมาซึ่งครึ่งหนึ่งได้นำไปใช้งานด้านบน
Juliano

ในการชี้แจง: สิ่งที่ปลาโลมาขาดคือ: (1) ไม่ได้รับโฟกัสจากวิดเจ็ตเทอร์มินัลเมื่อมีการเรียกใช้ changeUrl () และ (2) ตัวแปรสภาพแวดล้อมที่บอกว่าหน้าต่างใดที่เทอร์มินัลติดอยู่ ข้อความถึงหน้าต่างที่ถูกต้อง
Juliano

4

Gnome Commanderเป็นโปรแกรมจัดการไฟล์ที่มีบรรทัดคำสั่งเชลล์ที่ด้านล่าง Midnight Commander (mc)คล้ายกัน แต่ในโหมดข้อความ (ทั้งคู่ได้รับแรงบันดาลใจจากNorton Commander )


โชคไม่ดีที่ดูเหมือนว่าจะขาด [tab] -auto-complete function สำหรับ command-line และ file-thumbnail-preview
dStulle

Ctrl-O จะนำคุณไปยังเชลล์ใน Midnight Commander และ Ctrl-Enter จะวางชื่อของรายการที่เลือกไว้ในบรรทัดคำสั่ง ไม่เหมือนกันกับ [แท็บ] เติมข้อความอัตโนมัติ แต่ใกล้เคียงกัน

3

เทอร์มินัล Nautilusเป็นปลั๊กอินสำหรับ Nautilus (โปรแกรมจัดการไฟล์ของ Gnome)

ไดเรกทอรีที่ไม่ปฏิบัติตามคำสั่ง แต่ก็สมควรที่จะทำอย่างรวดเร็วpwd | xclip, <Ctrl> +<l>,<Ctrl>+<v>


ยังดี แต่ดังที่กล่าวไว้ไฟล์เบราว์เซอร์ยังไม่ทำตามบรรทัดคำสั่ง ดูเหมือนว่าจะไม่ "cd" ในไดเรกทอรีใหม่ แต่เริ่มอินสแตนซ์ bash ใหม่ที่สมบูรณ์ และทางลัดบางอย่างเช่น "ctrl-a" ไม่มีผลกับบรรทัดคำสั่ง แต่เป็นไฟล์เบราว์เซอร์
dStulle

1

Konqueror http://www.konqueror.org/มีวิธีง่าย ๆ ในการย้อนกลับไปมาระหว่างเทอร์มินัล windows และตัวจัดการไฟล์ ดูการอภิปรายในฟอรัมได้ที่: http://www.knoppix.net/forum/threads/3838-How-to-Open-Konqueror-in-the-Directory-as-Your-Current-Shell ใน konqueror การพิมพ์ ctrl-t ได้รับ คุณเทอร์มินัลในไดเรกทอรีปัจจุบันและในเชลล์ kfmclient exec เปิด konqueror ที่ไดเรกทอรีปัจจุบัน


0

ด้านล่างนี้เป็นรูปแบบของคำตอบโดย @Juliano โดยใช้ dolphin + qdbus + เทอร์มินัล (เพิ่มที่นี่เป็นคำตอบแทนความคิดเห็นเพื่อจัดรูปแบบโค้ดขนาดสั้น) รูปแบบนี้มีข้อ จำกัด และเป็นแฮ็คอย่างแน่นอน

สิ่งนี้ยังถือว่า "ปลาโลมา" กำลังเรียกใช้เทอร์มินัลที่ต่ออยู่ (ดู> พาเนล> เทอร์มินัลหรือกด "F4") เช่นเดียวกับข้อเสนออื่น ๆ มันส่งคำสั่งไปยังปลาโลมาเพื่ออัพเดทเส้นทางในกุยเพื่อให้ตรงกับ PWD ในคอนโซล เพื่อบังคับให้เครื่องรักษาโฟกัสไว้มันจะส่งปิด / เปิด (f4 + f4) ไปที่หน้าต่างเทอร์มินัลโดยใช้ xte (xautomation): เช่นปิดอัตโนมัติและเปิดสถานีใหม่ทันทีเพื่อให้ได้โฟกัส

if [ -n "$KONSOLE_DBUS_SERVICE" ]; then
  if qdbus "$KONSOLE_DBUS_SERVICE" /dolphin >/dev/null 2>&1; then
    cd() {
      [ "$1" != "$PWD" ] && do_send=true || do_send=false;
      builtin cd "$@"
      if $do_send ; then
        qdbus "$KONSOLE_DBUS_SERVICE" /dolphin/MainWindow0 org.kde.dolphin.MainWindow.changeUrl "$PWD" >/dev/null 2>&1
        xte 'key F4' >/dev/null > /dev/null 2>&1 
        xte 'key F4' >/dev/null > /dev/null 2>&1 
      fi
    }
  fi
fi

ปัญหาหลัก (นอกเหนือจากการสั่นไหวเล็กน้อยเมื่อเทอร์มินัลปิด / เปิดใหม่) คือโลมา (ด้วยเหตุผลบางอย่าง) แทรก "control + c" บวก "cd {dir}" (โดยที่ "dir" เป็นเส้นทางของไฟล์ manager) เข้าสู่เทอร์มินัลทุกครั้งที่เทอร์มินัลเปิดขึ้นอีกครั้งรบกวนคำสั่งอื่น ๆ ที่กำลังพิมพ์ (แก้ไข: เพื่อเพิ่มแฮ็คเมื่อแฮ็คเป็นวิธีแก้ปัญหาอื่นสำหรับสิ่งนี้: alias ccd=cd เนื่องจากตัวอักษร "c" ของการควบคุมนี้ + c ดูเหมือนว่าจะถูกแทรกต่อหน้าcd {path}...)

แน่นอนว่ามันจะดีกว่าถ้ามีการแก้ไขที่เหมาะสมในโลมาเพื่อให้เทอร์มินัลคงโฟกัสและ / หรือมีฟีเจอร์ทั้งหมดนี้ในโลมา

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