为应用程序创建灵活的别名

为应用程序创建灵活的别名

我以前用过 Sublime Text 编辑器,现在打算用 Atom。如果能有一个名为“editor”的别名或变量,用于所有脚本/命令/启动器,并将此别名链接到某个应用程序,以后可以随时更改,而不会影响这些命令,那就太好了。

我该怎么做?谢谢 :)

答案1

EDITOR和变量VISUAL是常用于此目的的众所周知的变量(cronsudobash等使用它)。通常,VISUAL优先于EDITOR。但是,两者通常都用于非 GUI 环境。没有什么可以阻止它们成为 GUI 程序,但它们通常不是。

通常,您可以使用以下方式尊重桌面环境中的用户设置xdg-open.xdg-open依赖于各种桌面环境特定工具,如gnome-openkde-open它是如何xdg-open工作的?)。

因此,在脚本中只需执行以下操作:

xdg-open /some/file 
xdg-open proto://some/uri

答案2

Debian 替代系统 ( )已经提供了一个名为editorie的通用二进制文件。/usr/bin/editorupdate-alternatives

这个二进制文件实际上是一个符号链接/etc/alternatives/editor

$ ls -l /usr/bin/editor 
lrwxrwxrwx 1 root root 24 Feb  9  2015 /usr/bin/editor -> /etc/alternatives/editor

这反过来又是一个指向实际编辑器的符号链接,根据优先级或手动选择:

$ ls -l /etc/alternatives/editor
lrwxrwxrwx 1 root root 18 Feb 10  2015 /etc/alternatives/editor -> /usr/bin/vim.basic

现在如果我打开一个文件:

editor ~/.bashrc

这实际上可以做到:

vim.basic ~/.bashrc

让我们改变编辑器:

$ sudo update-alternatives --config editor 
There are 5 choices for the alternative editor (providing /usr/bin/editor).

  Selection    Path                Priority   Status
------------------------------------------------------------
  0            /bin/nano            40        auto mode
  1            /bin/ed             -100       manual mode
  2            /bin/nano            40        manual mode
  3            /usr/bin/nedit       40        manual mode
* 4            /usr/bin/vim.basic   30        manual mode
  5            /usr/bin/vim.tiny    10        manual mode

带有 的*是当前选定的,导航到您喜欢的那个,然后按Enter或直接使用 来选择它update-alternatives --set,或者您可以将优先级设置为您,并在第三列中按update-alternatives --install命令查看。要获取有关某项的信息,您可以使用update-alternatives --queryupdate-alternatives --list命令。

要安装新的替代使用update-alternatives --install命令。例如,将编辑器添加/usr/bin/foobareditor替代系统并赋予其优先级 100,以便现在它成为默认设置:

sudo update-alternatives --install editor /etc/alternatives/editor /usr/bin/foobar 100

检查man update-alternatives以获取详细信息。

答案3

您可以尝试创建一个名为的软链接,editor指向您正在使用的当前编辑器。当您切换到其他编辑器时,只需将软链接指向新编辑器即可。创建名为 editor 的软链接以指向 Sublime text 3 的命令:

ln -sf subl3 editor

/usr/bin最好在或中创建此软链接/bin,否则将包含链接的目录添加到您PATH可以从终端和脚本访问的目录中。

相关内容