Существует ли хорошая комбинация командной строки и браузера графических файлов?

На этот вопрос, кажется уже, отвечают, но я думаю, что существует лучшее решение.

Вместо tail | whatever, Я думаю, что Вы действительно хотите, swatch. Образец является программой, разработанной явно для того, чтобы сделать то, что Вы спрашиваете, наблюдая файл журнала и выполняя действия на основе строк журнала. Используя tail|foo потребует, чтобы у Вас был терминал, активно работающий, чтобы сделать это. Образец, с другой стороны, работает как демон и будет всегда наблюдать Ваши журналы. Образец доступен во всех дистрибутивах Linux,

Я поощряю Вас испытывать его. В то время как можно загнать гвоздь в с задней стороной отвертки, не означает, что Вы должны.

Лучшие 30 вторых учебных руководств на образце, который я мог найти, здесь.

15
14.05.2011, 14:11
6 ответов

Дельфин похож на то, что Вы ищете:

Но терминал является ведомым устройством своей навигации каталога (при изменении каталога в GUI это изменяется в терминале, но не наоборот).

Для изменения каталога приложения при изменении текущего каталога в терминале можно заставить оболочку отправить сообщение дельфину для обновления его представления. Добавьте это к своим файлам дистанционного управления оболочки (Предупреждение: не полностью протестированный, но работы здесь для наиболее распространенных ситуаций, использование на Ваш собственный риск):

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

Существует проблема с этим. Когда окно дельфина изменяет текущий каталог, терминал теряет фокус. Можно хотеть попросить bugfix (или даже полная собственная поддержка этой функции) разработчикам, если Вам нравится он.

9
27.01.2020, 19:50
  • 1
    , К сожалению, изменяющий каталоги от командной строки, является одной из важных функций меня. –  dStulle 12.11.2010, 22:57
  • 2
    @dStulle: Если Вы просто хотите использовать клавиатуру для изменения каталога, можно ввести Ctrl-L у дельфина, чтобы заставить курсор перейти к строке поиска, где можно ввести адрес нового каталога и нажатия Enter перейти к нему. Если Вы действительно хотите ввести cd в командной строке необходимо смочь сделать взлом, который выполняется qdbus отправить сообщение org.kde.dolphin.MainWindow.changeUrl($PWD) назад дельфину. Но я думаю, что необходимо дать ему попытку, это главным образом привыкает к новой парадигме Терминальной GUI интеграции. –  Juliano 12.11.2010, 23:04
  • 3
    это не собирается "ввести" местоположение, но "быть" в командной строке. qdbus очень хорош и мог работать на это, но не мог найти, как связать Терминал с его экземпляром дельфина. если существует больше чем одно окно дельфина, открытое, кажется, что Вы не могли бы определить, какой к changeUrl на и я также не мог найти путь или псевдонимом, сценарием или функционировать, чтобы также изменить текущий каталог командной строки.Править: похож на кого-то еще, сделал, в то время как я пробовал … –  dStulle 13.11.2010, 00:30
  • 4
    , сервис дельфина виден в терминале от переменной ENV $KONSOLE_DBUS_SERVICE. Это - настоящая проблема, если у Вас есть два окна, открытые из того же экземпляра дельфина. Я действительно не знаю, как различать их. Существует $KONSOLE_DBUS_SESSION, но он связывается только с консольной сессией, не окном дельфина. Так или иначе необходимо предложить эту функцию разработчикам дельфина, половина из нее реализована выше. –  Juliano 13.11.2010, 00:41
  • 5
    Разъясниться: то, в чем испытывает недостаток дельфин является: (1) не взятием фокус от терминального виджета, когда changeUrl () называют и (2) переменной среды, которая говорит, какое окно терминал присоединяется, так, чтобы сценарий выше мог отправить сообщение в корректное окно. –  Juliano 13.11.2010, 00:42

Командующий Gnome является файловым менеджером со строкой командной строки оболочки внизу. Полуночный Командующий (мГц) подобен, но в текстовом режиме. (Оба получают их вдохновение от Norton Commander.)

4
27.01.2020, 19:50
  • 1
    , к сожалению, это, кажется, испытывает недостаток в важном [вкладка] - автополная функция для командной строки и реального предварительного просмотра миниатюры файла. –  dStulle 12.11.2010, 23:13
  • 2
    Ctrl-O отбросит Вас к оболочке в Полуночном Командующем, и Ctrl-Enter поместит, название любого объекта выбрано в командную строку. Не совсем то же как [вкладка] автоматическое заполнение, но достаточно близкий. –   14.05.2011, 23:07

Терминал наутилуса является плагином для Наутилуса (файловый менеджер Gnome).

Каталоги не следуют за командной строкой, но это довольно быстро, чтобы сделать pwd | xclip, <Ctrl> +<l>, <Ctrl>+<v>

3
27.01.2020, 19:50
  • 1
    Также хороший, но, как упомянуто, файловый браузер также не следует за командной строкой. Это также кажется не "CD" в новый каталог, но запускает полный новый экземпляр удара. И некоторые ярлыки как "ctrl-a" не влияют в командной строке, но файловом браузере. –  dStulle 13.11.2010, 00:53

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 должностное лицо. открывает завоевателя в текущем каталоге.

1
27.01.2020, 19:50

Ниже изменение ответа @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

Основной вопрос (помимо небольшого мерцания как терминал closes/re-opens) - то, что дельфин (по некоторым причинам) вставляет "control+c" плюс "CD {dir}" (где "dir" является путем файлового менеджера) в терминал каждый раз, когда терминал вновь открылся, вмешиваясь в другие команды, которые вводятся. (Редактирование: добавить взлом после взлома, как другое обходное решение для этого: просто alias ccd=cd так как "c" символ этого control+c всегда, кажется, вставляется перед a cd {path}...)

Конечно, было бы лучше иметь надлежащую фиксацию у дельфина, чтобы иметь терминал сохраняют фокус и/или встроили эту целую функцию в дельфина.

0
27.01.2020, 19:50

Вставьте псевдоним в ваш .bashrc(другой подходящий файл конфигурации):

alias revealAndJumpIntoYourFileManager ='pwd| xargs -0 io.elementary.files'
alias justReveal='pwd| xargs -0 io.elementary.files && jumpapp io.elementary.terminal'

Замените io.elementary.filesи io.elementary.termianalвашим файловым менеджером и консольным приложением.

Очевидно, что вы можете сократить название своего псевдонима, как считаете нужным, например revealили даже короче и более разумно,(хотя убедитесь, что оно не затеняет ваши существующие/будущие программы!)Поэтому всякий раз, когда вы хотите посмотреть, что происходит в вашем текущем каталоге, вместо необработанного вывода lsна ваш терминал, вы можете просто вызвать revealи наблюдать за ним непосредственно из файлового менеджера.

0
14.05.2021, 11:28

Теги

Похожие вопросы