我的 中有这个别名.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
并使其可执行。确保您~/bin
的PATH
(您可以将脚本放在您的 中的任何其他目录中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