如何在命令中使用别名?

如何在命令中使用别名?

aliases我在我的文件中创建了.bashrc各种经常使用的长路径,但我似乎无法在内部vim或通过诸如find或 之类的命令使用它们grep
例如,以下:
db
在 cli 中可以,cd /some/very/long/path/db
但在 vim 中:
:e db/file.java
或在命令行上:grep -r string db不起作用。
这是如何固定的?

答案1

您可以为该目录设置环境变量。

# Making the variable name consist entirely of capital letters makes the
# variable less likely to conflict with other variables in scripts. You can
# make the variable name consist of lowercase letters but you may run
# into problems. 
export DB=/some/very/long/path/db

然后你可以在 Vim 中使用导出的变量,如下所示:

:e $DB/file.java

在你的 shell 中:

grep -r string $DB

Vim 和 bash 的变量替换工具完全彼此独立。 Vim 只是以类似于 bash(和许多其他 shell)的方式替换环境变量。

答案2

别名允许您为命令和一些参数指定一个简短名称。它们仅在需要命令的地方展开。您不能使用它们来缩写文件的路径。

此外,.bashrc只能由交互式 shell 读取,因此您定义的任何内容在 Vim 中键入的命令中都将不可用。

如果您想要一个文件或目录的快捷方式,请创建一个符号链接到它。

ln -s /some/very/long/path/db ~/db
grep -r string ~/db
vim ~/db/file.java

您可以定义环境变量来缩写任何字符串。环境变量定义进入~/.profile.并非每个程序都会扩展它们,但当您使用:e(以及其他)打开文件时,Vim 会扩展它们。

答案3

当谈到别名时,.bashrc您会对自己的能力感到惊讶。我将举几个我知道有效的例子,因为我尝试过它们。

  • alias Documents='/home/username/Documents'会起作用,但不能单独起作用。如果您将其与 、 alias Open='cd'do配对source .bashrc,然后键入Open Documents,它将像您键入 一样运行cd /home/username/Documents

  • 另外,您可以这样操作:alias Documents='cd home/username/Documents',然后source .bashrc,然后键入Documents;它会做同样的事情Open Documents,意思cd home/username/Documents

正如我所说,您可以使用别名做很多事情。当涉及到时.bashrc,您所需要做的就是发挥您的想象力并尝试您想出的方法,看看它是否有效。

我会调查vim并回复您。

相关内容