如何添加系统别名?

如何添加系统别名?

我的 中有这个别名.zshrc

alias grim='gvim --remote'

但这是从 Ranger 文件管理器中看不到的,我相信 Ranger 运行一个“通用”外壳,跳过我的.zshrc.我想让这个别名在每个 shell 中都可见。

我把它添加到~/.profile和 到/etc/zsh/zshrc但没有效果。具体来说,收到此消息:

/bin/sh: grim: not found

答案1

只有交互式 shell 才能读取可能包含别名定义的文件。如果您想在应用程序执行的 shell 代码片段中使用命令的昵称,那么别名不是正确的工具。相反,编写一个像这样的包装脚本:

#!/bin/sh
gvim --remote "$@"

调用它~/bin/grim并使其可执行。确保您~/binPATH(您可以将脚本放在您的 中的任何其他目录中PATH)。

如果您希望它适用于系统上的每个用户,请将其放入/usr/local/bin,确​​保该目录位于每个人的 PATH 中。

答案2

您可以创建一个文件别名.sh/etc/profile.d目录中

写下该行

alias grim='gvim --remote'

在该文件内别名.sh

这将创建系统范围的定制。

代替别名.sh您可以使用任何其他以结尾的文件名.sh

答案3

您可以破解 ~/.config/ranger/commands.py 并替换 shell.execute() 中的最后一行:

self.fm.execute_command(command, flags=flags)

self.fm.execute_command("bash -c '" + command + "'", flags=flags)

这个对我有用。

答案4

你做了类似的事情吗? :

source /path/to/.profile

相关内容