Có sự kết hợp tốt giữa trình duyệt tệp dòng lệnh và đồ họa không?


15

Có giải pháp khả thi nào hơn là kết hợp các lợi thế của dòng lệnh và trình duyệt tệp đồ họa không?

Ví dụ: dòng lệnh rất tốt để thay đổi thư mục và thực thi các lệnh nhưng không thể hiển thị hình thu nhỏ và trình duyệt tệp trực quan, cung cấp một cái nhìn tổng quan tốt về nơi bạn ở trên cây nhưng bạn không thể "nói chuyện" với máy tính như trong một dòng lệnh.

EDIT: đối với tôi, với tư cách là người dùng dòng lệnh, nó giống như cần một dòng lệnh với các khả năng trình duyệt tệp bổ sung hơn là có trình duyệt tệp với một số tính năng dòng lệnh.

Câu trả lời:


9

Cá heo trông giống như những gì bạn đang tìm kiếm:

Nhưng thiết bị đầu cuối là một nô lệ của điều hướng thư mục của nó (nếu bạn thay đổi thư mục trong GUI, nó sẽ thay đổi trong thiết bị đầu cuối, nhưng không phải là cách khác).

Để thay đổi thư mục ứng dụng khi bạn thay đổi thư mục hiện tại trong thiết bị đầu cuối, bạn có thể làm cho trình bao của mình gửi tin nhắn đến Cá heo để cập nhật chế độ xem. Thêm phần này vào các tệp RC shell của bạn ( Cảnh báo: chưa được kiểm tra kỹ lưỡng, nhưng hoạt động ở đây cho các tình huống phổ biến nhất, sử dụng có nguy cơ của riêng bạn):

Bash:

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

Có một vấn đề với điều này. Khi cửa sổ Cá heo thay đổi thư mục hiện tại, thiết bị đầu cuối sẽ mất tiêu điểm. Bạn có thể muốn yêu cầu một lỗi (hoặc thậm chí hoàn thành hỗ trợ riêng cho tính năng này) cho các nhà phát triển, nếu bạn thích nó.


Thật không may thay đổi thư mục từ dòng lệnh là một trong những tính năng quan trọng đối với tôi.
dStulle

@dStulle: Nếu bạn chỉ muốn sử dụng bàn phím để thay đổi thư mục, bạn có thể nhập Ctrl-Lvào Cá heo để khiến con trỏ nhảy đến thanh địa chỉ, nơi bạn có thể nhập địa chỉ của thư mục mới và nhấn Enterđể điều hướng đến nó. Nếu bạn thực sự muốn gõ cddòng lệnh, bạn sẽ có thể thực hiện một bản hack thực thi qdbusđể gửi tin nhắn org.kde.dolphin.MainWindow.changeUrl($PWD)lại cho cá heo. Nhưng tôi nghĩ bạn nên dùng thử, nó chủ yếu làm quen với mô hình mới về tích hợp GUI-Terminal.
Juliano

nó không phải là "gõ" vị trí mà là "được" trong dòng lệnh. qdbus rất hay và có thể hoạt động cho việc này, nhưng không thể tìm thấy cách liên kết Terminal với cá thể cá heo của nó. nếu có nhiều hơn một cửa sổ Cá heo mở, có vẻ như bạn không thể xác định được cái nào sẽ thay đổiUrl và tôi cũng không thể tìm ra cách nào bí danh, tập lệnh hoặc chức năng để thay đổi thư mục dòng lệnh hiện tại. EDIT: có vẻ như ai đó đã làm trong khi tôi đang thử độ
dStulle

Dịch vụ cá heo có thể được nhìn thấy trong thiết bị đầu cuối từ biến env $ KONSOLE_DBUS_SERVICE. Đây là một vấn đề thực sự nếu bạn mở hai cửa sổ cùng một ví dụ của Cá heo. Tôi thực sự không biết làm thế nào để phân biệt giữa chúng. Có một $ KONSOLE_DBUS_SESSION, nhưng nó chỉ liên kết với phiên konsole, không phải cửa sổ cá heo. Dù sao, bạn nên đề xuất tính năng này cho các nhà phát triển cá heo, một nửa trong số đó được triển khai ở trên.
Juliano

Để làm rõ: điều mà Cá heo thiếu là: (1) không lấy tiêu điểm từ tiện ích đầu cuối khi thay đổiUrl () được gọi và (2) một biến môi trường cho biết cửa sổ nào được gắn vào, để tập lệnh ở trên có thể gửi tin nhắn đến đúng cửa sổ
Juliano

4

Gnome Commander là một trình quản lý tệp có dòng lệnh shell ở phía dưới. Midnight Commander (mc) tương tự, nhưng ở chế độ văn bản. (Cả hai đều lấy cảm hứng từ Norton Commander .)


thật không may, nó dường như thiếu chức năng [tab] -auto-hoàn chỉnh quan trọng cho dòng lệnh và xem trước tập tin hình thu nhỏ thực sự.
dStulle

Ctrl-O sẽ thả bạn vào trình bao trong Midnight Commander và Ctrl-Enter sẽ đặt tên của bất kỳ mục nào được chọn vào dòng lệnh. Không hoàn toàn giống như [tab] tự động hoàn thành nhưng khá gần.

3

Nautilus Terminal là một plugin cho Nautilus (trình quản lý tệp của Gnome).

Các thư mục không tuân theo các dòng lệnh, nhưng đó là một cách hợp lý nhanh chóng để làm pwd | xclip, <Ctrl> +<l>,<Ctrl>+<v>


Cũng hay nhưng như đã đề cập, trình duyệt tệp cũng không tuân theo dòng lệnh. Nó dường như cũng không "cd" vào thư mục mới nhưng bắt đầu một thể hiện bash hoàn toàn mới. Và một số phím tắt như "ctrl-a" không ảnh hưởng đến dòng lệnh mà là trình duyệt tệp.
dStulle

1

Konqueror http://www.konqueror.org/ có những cách dễ dàng qua lại giữa các cửa sổ đầu cuối và trình quản lý tệp. Xem các cuộc thảo luận diễn đàn tại: http://www.knoppix.net/forum/threads/3838-How-to-Open-Konqueror-in-the-Directory-as-Your-Cản-Shell Trong konqueror gõ ctrl-t được bạn là một thiết bị đầu cuối trong thư mục hiện tại và trong shell exec kfmclient. mở konqueror tại thư mục hiện tại.


0

Dưới đây là một biến thể của câu trả lời của @Juliano bằng cách sử dụng thiết bị đầu cuối dolphin + qdbus + (được thêm vào đây dưới dạng câu trả lời thay vì định dạng đoạn mã.) Biến thể này cũng có những hạn chế và chắc chắn là một hack.

Điều này cũng giả sử "cá heo" đang chạy một thiết bị đầu cuối đính kèm (xem> bảng> thiết bị đầu cuối; hoặc, nhấn "F4"). Cũng giống như đề xuất khác, nó gửi lệnh cho cá heo để cập nhật đường dẫn trong gui để khớp với PWD trong bảng điều khiển. Để buộc thiết bị đầu cuối giữ lại tiêu điểm, nó sẽ gửi đóng / mở (f4 + f4) đến cửa sổ thiết bị đầu cuối bằng xte (xautomation): nghĩa là tự động đóng và mở lại ngay thiết bị đầu cuối để lấy lại tiêu điểm.

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

Vấn đề chính (ngoài việc nhấp nháy nhẹ khi thiết bị đầu cuối đóng / mở lại) là cá heo (vì một lý do nào đó) chèn "control + c" cộng với "cd {dir}" (trong đó "dir" là đường dẫn của tệp quản lý) vào thiết bị đầu cuối mỗi khi thiết bị đầu cuối mở lại, can thiệp vào các lệnh khác đang được gõ. (Chỉnh sửa: để thêm hack khi hack, như một cách giải quyết khác cho việc này: ngay alias ccd=cd từ khi ký tự "c" của điều khiển này + c dường như luôn được chèn vào trước a cd {path}...)

Tất nhiên sẽ tốt hơn nếu có một sửa chữa thích hợp ở cá heo, để thiết bị đầu cuối giữ được trọng tâm và / hoặc có toàn bộ tính năng này được tích hợp vào cá heo.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.