场景:Ubuntu 18LTS 中的当前 Kate 版本指向其自定义版本(似乎不支持正则表达式搜索功能)。垃圾箱是:/usr/bin/kate
。
所需的解决方案:运行 Kate AppImage(具有正则表达式搜索/替换功能)。AppImage 当前位于~/Downloads
.
问题:如何重定向系统以执行Kate的AppImage版本,而不是内置版本?
我可以简单地创建一个指向 AppImage 的链接/usr/bin
吗?
是的,看来你可以......即在我的情况下,我用指向 appimage 的链接替换了现有的 kate bin:
# 1st remove the existing kate binary
# (cp kate somewhere first if you want to keep a copy)
sudo rm /usr/bin/kate
# 2nd create a link in the system bin that points to the appimage
sudo link [directory where the appimage resides]/Kate.AppImage /usr/bin/kate
完毕!系统现在将在执行“kate”时执行 appimage(例如通过上下文菜单)。
==========================
上面的解决方案有点工作......它确实运行了appimage,但是通常传递给kate的参数(即要打开的文件)在硬链接中丢失了。
所以...更好的解决方案是创建一个简单的可执行 shell 脚本(在 /usr/bin 目录中名为“kate”)来执行 appimage:
#!/bin/sh
exec [directory where the appimage resides]/Kate.AppImage "$@"
这会将任何提供的参数传递给 appimage。
您可能希望(无论出于何种原因)将系统安装的 Kate 保留在/usr/bin/kate
...
然后不要碰它。$HOME
而是在您命名的目录中创建一个目录bin
(根据您运行的 Linux 发行版,它可能已经存在)。
在该目录中,创建一个符号链接:
ln -sf ~/Downloads/kate.AppImage ~/bin/kate
这可能已经奏效了。如果没有,您必须将~/bin
目录移动到路径的前面:
export PATH=${HOME}/bin:${PATH} # if you use Bash
要永久修改它$PATH
,请将同一行添加到${HOME}/.bashrc