为什么我的 vim 不知道我的别名?

发布于 2024-10-21 01:02:49 字数 277 浏览 8 评论 0原文

我使用了“alias ruby​​=ruby1.9.1”,所以我可以用这个执行我的 ruby​​:

红宝石123.rb

ruby1.9.1 123.rb

但是在我的 vim 中,我使用 :!ruby 并得到 /bin/bash:ruby:找不到命令。

我必须使用 :!ruby1.9.1

别名如何工作?为什么vim不知道呢?

I have used "alias ruby=ruby1.9.1", so I can execute my ruby with this:

ruby 123.rb

or

ruby1.9.1 123.rb

But in my vim, I use :!ruby and get
/bin/bash: ruby: command not found.

I must use :!ruby1.9.1

How does alias work? Why vim doesn't know it?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

温柔戏命师 2024-10-28 01:02:49

当 Vim 启动一个进程时,它会进行系统调用。如果您从 shell 启动它,它只会从您的 shell 继承环境变量。但它不会知道你的 bash 别名。

Bash 别名仅在您在 Bash shell 中输入命令行时提供便利。它们仅由 Bash 扩展。

如果您想要真正的别名,请将符号链接放入私有隐藏文件夹中,并将该文件夹添加到您的路径中,或使用 替代品设施。

When Vim starts a process it makes a system call. It has only inherited the environment variables from your shell if you started it from the shell. But it won't know your bash aliases.

Bash aliases are only a convenience when you enter a command line in the Bash shell. They are expanded by Bash only.

If you want real aliases put symlinks in a private hidden folder, and add that folder to your PATH, or use the alternatives facility.

孤凫 2024-10-28 01:02:49

您可以尝试

:set shellcmdflag+=i

将 bass 称为“交互式”,尽管这确实会为执行的每个 shell 命令提供烦人的消息。

You can try

:set shellcmdflag+=i

to call bass as "interactive" although that does give an annoying message for every shell command executed.

情愿 2024-10-28 01:02:49

别名(与环境变量不同)不会被子 shell 继承。因此,如果您希望别名始终可用,则需要在 .bashrc 文件中设置它,这样 shell 的每个实例都会在启动时获取它

Aliases (unlike environment variables) are not inherited by subshells. So if you want an alias always available, you need to set it in your .bashrc file, so every instance of the shell will get it on startup

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文