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
并回复您。