Чи є гарне поєднання браузера командного рядка та графічного файлу?


15

Чи можливе рішення, ніж поєднує переваги командного рядка та графічного браузера файлів?

Наприклад, командний рядок добре змінювати каталог та виконувати команди, але не може показувати ескізи, а браузер файлів - інтуїтивно зрозумілий, дає хороший огляд того, де ви знаходитесь у дереві, але ви не можете "поговорити" з комп'ютер, як у командному рядку.

EDIT: для мене, як користувача командного рядка, це більше нагадує необхідність використання командного рядка з додатковими можливостями файлового браузера, ніж наявності файлового браузера з деякими функціями командного рядка.

Відповіді:


9

Дельфін виглядає як те, що ви шукаєте:

Але термінал є рабом своєї навігації по каталогу (якщо ви змінюєте каталог в графічному інтерфейсі, він змінюється в терміналі, але не навпаки).

Щоб змінити каталог додатків при зміні поточного каталогу в терміналі, ви можете змусити свою оболонку надіслати повідомлення Dolphin, щоб оновити її перегляд. Додайте це до своїх оболонок rc-файлів ( попередження: не ретельно перевірено, але працює тут для найпоширеніших ситуацій, використовуйте на свій страх і ризик):

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

З цим виникає проблема. Коли вікно Dolphin змінює поточний каталог, термінал втрачає фокус. Ви можете попросити розробник помилки (або навіть повну підтримку цієї функції), якщо вам це подобається.


На жаль, зміна каталогів з командного рядка - одна з важливих особливостей для мене.
dStulle

@dStulle: Якщо ви просто хочете використовувати клавіатуру для зміни каталогу, ви можете ввести Ctrl-LDolphin, щоб курсор перейшов до адресного рядка, де ви можете ввести адресу нового каталогу та натиснути, Enterщоб перейти до нього. Якщо ви дійсно хочете ввести cdкомандний рядок, ви повинні мати змогу зробити хак, який виконується, qdbusщоб відправити повідомлення org.kde.dolphin.MainWindow.changeUrl($PWD)назад в Дельфін. Але я думаю, ви повинні спробувати, він здебільшого звикає до нової парадигми інтеграції GUI-терміналів.
Джуліано

справа не в тому, щоб "набрати" місцеположення, а "бути" в командному рядку. qdbus дуже приємний і може працювати для цього, але не знайшов, як зв’язати Термінал зі своїм екземпляром дельфінів. якщо відкрито більше одного вікна Dolphin, здається, ви не змогли визначити, на яке слід змінити Url, і я також не зміг знайти ні псевдонім, ні сценарій, ні функцію, щоб також змінити поточний каталог командного рядка. EDIT: схоже, що хтось робив це, коли я намагався…
dStulle

Служба Dolphin можна побачити в терміналі зі змінної $ KONSOLE_DBUS_SERVICE env. Це справжня проблема, якщо у вас відкриті два вікна одного і того ж екземпляра Dolphin. Я справді не знаю, як їх розрізнити. Існує $ KONSOLE_DBUS_SESSION, але він посилається лише на сеанс консолі, а не на вікно дельфінів. У будь-якому разі, ви повинні запропонувати цю функцію розробникам Dolphin, половина її реалізована вище.
Джуліано

Щоб уточнити: чого не вистачає Дельфіну, це: (1) не брати фокус від термінального віджета, коли викликається changeUrl (), і (2) змінна середовища, яка вказує, до якого вікна додається термінал, щоб сценарій вище міг надсилати повідомлення до потрібного вікна.
Джуліано

4

Gnome Commander - це файловий менеджер із рядком командного рядка оболонки внизу. Midnight Commander (mc) схожий, але в текстовому режимі. (Обидва отримують натхнення від командира Нортона .)


на жаль, здається, не вистачає важливої ​​[вкладки] -автоматичної функції для командного рядка та реального попереднього перегляду файлів-мініатюр.
dStulle

Ctrl-O передасть вам оболонку в Midnight Commander, а Ctrl-Enter розмістить ім'я будь-якого елемента, обраного в командному рядку. Не зовсім те саме, що [вкладка] автозаповнення, але досить близько.

3

Nautilus Terminal - плагін для Nautilus (файловий менеджер Gnome).

Каталоги годі було з командного рядка, але це досить швидко зробити pwd | xclip, <Ctrl> +<l>,<Ctrl>+<v>


Також добре, але, як згадувалося, файл-браузер також не дотримується командного рядка. Здається, він не "cd" в новій директорії, але запускає абсолютно новий екземпляр bash. І деякі ярлики на зразок "ctrl-a" впливають не на командний рядок, а на файл-браузер.
dStulle

1

Konqueror http://www.konqueror.org/ має прості способи повернення назад і назад між вікнами терміналів і файловим менеджером. Дивіться дискусію на форумі за адресою: http://www.knoppix.net/forum/threads/3838-How-to-Open-Konqueror-in-the-Directory-as-Your-Current-Shell У конкреторі набравши ctrl-t отримує ви термінал у поточному каталозі та в оболонці kfmclient exec. відкриває konqueror у поточному каталозі.


0

Нижче наведено варіант відповіді @Juliano, використовуючи дельфін + qdbus + термінал (додається тут як відповідь замість коментаря, щоб відформатувати фрагмент коду.) Цей варіант також має обмеження, і, безумовно, є хаком.

Це також передбачає, що "дельфін" працює приєднаним терміналом (перегляд> панелі> термінал; або натисніть "F4"). Як і в іншій пропозиції, він надсилає команду дельфіну оновити шлях у gui, щоб він відповідав 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" - це шлях до файлу менеджер) в термінал кожного разу, коли термінал повторно відкривається, заважаючи іншим командам, які вводяться. (Редагувати: щоб додати хак на хак, як інше рішення для цього: якраз alias ccd=cd тому, що символ "с" цього елемента керування + c завжди здається вставленим перед a cd {path}...)

Звичайно, було б краще мати належну фіксацію дельфіна, термінал зберігати фокус та / або вбудовувати всю цю особливість у дельфіна.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.