Czy istnieje dobre połączenie wiersza polecenia i graficznej przeglądarki plików?

15

Czy jest możliwe rozwiązanie, które łączy zalety wiersza polecenia i graficznej przeglądarki plików?

Na przykład, wiersz poleceń jest dobry do zmiany katalogu i wykonywania poleceń, ale nie może wyświetlać miniatur, a przeglądarka plików jest intuicyjna, daje dobry przegląd tego, gdzie jesteś w drzewie, ale nie możesz „rozmawiać” z komputer jak w wierszu poleceń.

EDYCJA: dla mnie, jako użytkownika wiersza poleceń, to bardziej jak potrzeba wiersza polecenia z dodatkowymi funkcjami przeglądarki plików niż przeglądarka plików z niektórymi funkcjami wiersza polecenia.

dStulle
źródło

Odpowiedzi:

9

Delfin wygląda jak to, czego szukasz:

Ale terminal jest niewolnikiem nawigacji po katalogach (jeśli zmienisz katalog w GUI, zmieni się on w terminalu, ale nie na odwrót).

Aby zmienić katalog aplikacji po zmianie bieżącego katalogu w terminalu, możesz sprawić, że powłoka wyśle ​​wiadomość do Dolphin, aby zaktualizować jego widok. Dodaj to do swoich plików rc powłoki ( Ostrzeżenie: nie zostało dokładnie przetestowane, ale działa tutaj w najczęstszych sytuacjach, użyj na własne ryzyko):

Grzmotnąć:

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

Jest z tym problem. Gdy okno Dolphin zmienia bieżący katalog, terminal traci fokus. Możesz poprosić programistów o poprawkę błędu (lub nawet pełną natywną obsługę tej funkcji), jeśli ci się spodoba.

Juliano
źródło
Niestety zmiana katalogów z wiersza poleceń jest dla mnie jedną z ważnych funkcji.
dStulle,
@dStulle: Jeśli chcesz tylko zmienić katalog za pomocą klawiatury, możesz wpisać Ctrl-LDolphin, aby kursor przeskoczył do paska adresu, gdzie możesz wpisać adres nowego katalogu i nacisnąć, Enteraby przejść do niego. Jeśli naprawdę chcesz wpisać cdw wierszu polecenia, powinieneś być w stanie zrobić hack, który wykona się, qdbusaby wysłać wiadomość z org.kde.dolphin.MainWindow.changeUrl($PWD)powrotem do Dolphin. Ale myślę, że powinieneś spróbować, najczęściej przyzwyczaja się do nowego paradygmatu integracji GUI-Terminal.
Juliano,
nie ma zamiaru „wpisywać” lokalizacji, ale „być” w wierszu poleceń. qdbus jest bardzo fajny i może na to zadziałać, ale nie mógł znaleźć sposobu połączenia terminalu z jego instancją delfina. jeśli otwartych jest więcej niż jedno okno Dolphin, wydaje się, że nie można określić, na które należy zmienićUrl, a także nie mogę znaleźć sposobu, w którym alias, skrypt lub funkcja mogłyby zmienić bieżący katalog wiersza poleceń. EDYCJA: wygląda jak ktoś inny, kiedy próbowałem…
dStulle,
Usługa Dolphin można zobaczyć w terminalu ze zmiennej env $ KONSOLE_DBUS_SERVICE. To prawdziwy problem, jeśli masz dwa okna tego samego wystąpienia Dolphin. Naprawdę nie wiem, jak je rozróżnić. Istnieje $ KONSOLE_DBUS_SESSION, ale łączy tylko z sesją konsoli, a nie z oknem delfina. W każdym razie powinieneś zasugerować tę funkcję programistom Dolphin, z czego połowa została zaimplementowana powyżej.
Juliano,
Aby wyjaśnić: brakuje Dolphin: (1) nie należy skupiać się na widżecie terminalu, gdy wywoływana jest zmienna changeUrl (), oraz (2) zmienna środowiskowa, która informuje, które okno jest podłączone, aby powyższy skrypt mógł wysłać wiadomość do właściwego okna.
Juliano,
4

Gnome Commander to menedżer plików z wierszem poleceń powłoki na dole. Midnight Commander (mc) jest podobny, ale w trybie tekstowym. (Oboje czerpią inspirację z Norton Commander .)

Gilles „SO- przestań być zły”
źródło
niestety wydaje się, że brakuje ważnej funkcji [tab] -auto-complete dla wiersza poleceń i prawdziwego podglądu miniatur plików.
dStulle,
Ctrl-O przeniesie cię do powłoki w Midnight Commander, a Ctrl-Enter umieści nazwę dowolnego elementu wybranego w wierszu poleceń. Niezupełnie to samo jak automatyczne uzupełnianie [tab], ale dość blisko.
3

Nautilus Terminal to wtyczka do Nautilus (menedżer plików Gnome).

Katalogi nie są zgodne z wiersza polecenia, ale jest to dość szybkie do zrobienia pwd | xclip, <Ctrl> +<l>,<Ctrl>+<v>

Shawn J. Goff
źródło
Również miło, ale jak wspomniano, przeglądarka plików również nie podąża za wierszem poleceń. Wydaje się również, że nie „cd” do nowego katalogu, ale uruchamia kompletną nową instancję bash. Niektóre skróty, takie jak „ctrl-a”, nie działają w wierszu poleceń, ale w przeglądarce plików.
dStulle,
0

Poniżej znajduje się odmiana odpowiedzi @Juliano przy użyciu terminala dolphin + qdbus + (dodana tutaj jako odpowiedź zamiast komentarza w celu sformatowania fragmentu kodu). Ta odmiana ma również ograniczenia i jest zdecydowanie włamaniem.

Zakłada to również, że „delfin” obsługuje podłączony terminal (widok> panele> terminal; lub naciśnij „F4”). Podobnie jak inna propozycja, wysyła polecenie do delfina, aby zaktualizować ścieżkę w GUI, aby pasowała do PWD w konsoli. Aby zmusić terminal do zachowania ostrości, wysyła zamknięcie / otwarcie (f4 + f4) do okna terminala za pomocą xte (xautomation): tj. Automatycznie zamyka i natychmiast ponownie otwiera terminal, aby odzyskał ostrość.

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

Głównym problemem (oprócz lekkiego migotania, gdy terminal zamyka się / otwiera ponownie) jest to, że delfin (z jakiegoś powodu) wstawia „control + c” plus „cd {dir}” (gdzie „dir” to ścieżka do pliku menadżera) do terminala za każdym razem, gdy terminal otwiera się ponownie, zakłócając inne wpisywane polecenia. (Edycja: aby dodać hack za hackiem, jako kolejne obejście tego problemu: właśnie alias ccd=cd dlatego, że znak „c” tej kontrolki + c zawsze wydaje się być wstawiony przed a cd {path}...)

Oczywiście lepiej byłoby mieć właściwą poprawkę w delfinie, aby terminal zachował ostrość i / lub miał całą tę funkcję wbudowaną w delfina.

Michael
źródło