我很高兴使用zsh
一段时间了,我对我的历史设置非常满意,它们是:
# Write to history immediately
setopt inc_append_history
# History shared among terminals
setopt share_history
# Save extended info in history
setopt extended_history
# Ignore duplicates
setopt hist_ignoredups
Run Code Online (Sandbox Code Playgroud)
但是经常发生我需要在某些特定目录中使用特定命令的情况。例如,当我在时~/my_project
我通常会调用make target1 && ./run1
,但是当我在时~/second_project
我通常需要make target2 && cat foobar | ./run2
.
即:不同的目录,但相似的命令。
所以,我通常会cd ~/my_project
输入make
然后在历史中向后搜索,直到找到我需要的东西。但是如果碰巧我在 . 工作second_project
,在搜索历史时我会发现一些我不需要的命令。
所以,我的问题是:zsh 是否存在插件/设置/某些东西,以便在历史记录中搜索时,首先显示在当前目录中调用的命令?
理想情况下,所有其他匹配的历史命令都将出现在这些命令之后,可选择指定最大优先级元素数。
我会尝试自己写这样的东西,但我仍然不知道如何编写自定义zsh插件,如何处理历史记录等等。
我使用 tmux 有一段时间了,我很满意。因为我大部分时间都需要它,所以我把它作为我的默认 shell(准确地说是 guake)。
这很好,我对此非常满意。
但有时,我需要退出 tmux 并拥有一个干净的 shell,但由于我默认使用 tmux,因此终止会话将导致稍后出现另一个 tmux。
所以,我的问题是:是否可以用给定的 shell替换tmux 进程?
exec
当然,类似的东西是行不通的,因为它替换了 tmux 内部的 shell 而不是 tmux 本身。
我使用 Firefox 作为“独立”运行一些 Web 应用程序:我使用 Firefox 创建一个特定于该应用程序的新配置文件,设置首页,进行登录并根据特定需求自定义 UI。
然后,我可以通过执行以下操作快速启动该 Web 应用程序的实例:
firefox --no-remote -P My_app_profile the_app_url
Run Code Online (Sandbox Code Playgroud)
为了使它更好,我创建了一个my_web_app.desktop
文件并将其放置在 中~/.local/share/application
,并将其设为收藏夹,这样我就可以从 gnome shell 侧栏快速运行它。
问题是,运行应用程序后,我看到Firefox正在运行,而不是我的应用程序。例如,我为 Trello 创建了一个快捷方式,但启动它后,我看到了以下内容:
现在,这是有道理的,因为正在运行的是Firefox,但我希望看到我的应用程序突出显示,并且可以自由使用 Firefox 图标,就像没有其他实例正在运行一样。
我认为 gnome 可能会根据可执行文件名称突出显示图标,但到 firefox 的简单符号链接不会触发名称更改(即link /usr/bin/firefox /usr/bin/my_app_firefox
仍然算作 firefox)。
您知道如何解决这个问题吗?我使用的是 gnome shell 3.18.2。
以下是 trello.desktop 文件作为示例。我不是选项方面的专家,所以可能我犯了一些严重错误......但如果我这样做了,它看起来不会导致不良行为。
[Desktop Entry]
Version=1.0
Name=Trello (FF)
GenericName=Trello Dashboards
Comment=Trello in FireFox
Exec=firefox --no-remote -P App_Trello http://trello.com
Icon=trello
Terminal=false
Type=Application
MimeType=text/html;text/xml;application/xhtml+xml;application/vnd.mozilla.xul+xml;text/mml;x-scheme-handler/http;x-scheme-handler/https;
StartupNotify=true
Categories=Network;WebBrowser;
Keywords=web;browser;internet;
X-Desktop-File-Install-Version=0.22
Run Code Online (Sandbox Code Playgroud)
所以,我想检查gnome-shell 源代码 …