命令行和图形文件浏览器是否有很好的组合?


15

除了结合命令行和图形文件浏览器的优点之外,还有没有可行的解决方案?

例如,命令行可以很好地更改目录和执行命令,但不能显示缩略图,文件浏览器也很直观,可以很好地概述您在树中的位置,但不能与之“交谈”。计算机就像在命令行中一样。

编辑:对我来说,作为命令行用户,它更像是需要具有附加文件浏览器功能的命令行,而不是具有具有某些命令行功能的文件浏览器。

Answers:


9

海豚看起来像您要找的东西:

但是终端是其目录导航的从属设备(如果在GUI中更改目录,则终端中的目录将发生变化,反之则不行)。

要在终端中更改当前目录时更改应用程序目录,可以使您的Shell向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,2010年

@dStulle:如果只想使用键盘来更改目录,则可以Ctrl-L在Dolphin中键入以使光标跳到地址栏,您可以在其中键入新目录的地址并按Enter导航到该目录。如果您确实要cd在命令行中键入内容,则应该能够进行黑客攻击,然后执行该攻击qdbus以将消息发送org.kde.dolphin.MainWindow.changeUrl($PWD)回Dolphin。但是我认为您应该尝试一下,它主要已经习惯了GUI终端集成的新范例。
朱利诺

它不是要“键入”位置,而是要在命令行中“是”。qdbus非常好,可以解决这个问题,但是找不到如何将终端连接到其海豚实例。如果有多个打开的Dolphin窗口,则似乎无法确定changeUrl所在的窗口,而且我也找不到别名,脚本或函数来更改当前命令行目录的方法。编辑:好像有人在我尝试时做的…
dStulle 2010年

在$ KONSOLE_DBUS_SERVICE env变量中可以在终端中看到Dolphin服务。如果您打开了两个相同的Dolphin实例窗口,这是一个实际的问题。我真的不知道如何区分它们。有一个$ KONSOLE_DBUS_SESSION,但它仅链接到konsole会话,而不链接到海豚窗口。无论如何,您应该向Dolphin开发人员建议此功能,其中一半已在上面实现。
朱利诺

需要说明的是:Dolphin缺乏的是:(1)在调用changeUrl()时不从终端小部件上获取焦点,以及(2)一个环境变量,该变量告诉终端连接到哪个窗口,以便上述脚本可以发送消息到正确的窗口。
朱利诺

4

Gnome Commander是一个文件管理器,底部有一个shell命令行行。午夜指挥官(mc)与之类似,但处于文本模式。(两者都从Norton Commander获得灵感)。


不幸的是,它似乎缺少命令行的重要[tab]自动完成功能和真正的文件缩略图预览。
dStulle,2010年

Ctrl-O会将您放到Midnight Commander中的外壳中,而Ctrl-Enter会将所选项目的名称放入命令行中。与[tab]自动完成功能不太一样,但是非常接近。

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在konqueror中键入ctrl-t您是当前目录中的终端,并且是外壳程序kfmclient exec中的终端。在当前目录中打开konqueror。


0

下面是@Juliano使用海豚+ qdbus +终端的答案的变体(在此处添加了答案,而不是注释,以格式化代码段。)该变体也有局限性,并且绝对是hack。

这也假定“海豚”正在运行连接的终端(“视图”>“面板”>“终端”;或者按“ F4”)。就像其他建议一样,它向海豚发送命令以更新gui中的路径以匹配控制台中的PWD。为了强制终端保持焦点,它使用xte(xautomation)将关闭/打开(f4 + f4)发送到终端窗口:即自动关闭并立即重新打开终端,以重新获得焦点。

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 因为此control + c的“ c”字符似乎总是插入到a的前面cd {path}...

当然,最好在海豚中进行适当的修复,以使终端保持焦点和/或将整个功能内置到海豚中。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.