是否有办法设置某种别名,以便当我这样做时:
cd some/directory
vim .zshrc是vim ~/.zshrc吗?
发布于 2021-06-12 03:59:45
答案比你想象的要简单得多,因为你问错了问题。
如果您真正的意思是“我如何创建一个别名,使我可以编辑我的~/.zshrc,而不管我当前的工作目录?”答案很简单:
alias zshconfig="vim ~/.zshrc" 这个例子来自我自己的~/.zshrc,我经常使用它。
@mateen-ulhaq在以下评论中建议的一个更好的选择是:
alias zshrc="vim ~/.zshrc" 换句话说,不要尝试别名文件名或文件名的路径。这两种情况都是可能的,但可能会产生无法预测的副作用,从而给以后的您带来问题,正如@迈克尔-荷马所指出的。
但是,由于您知道首选的$EDITOR是vim,所以只需别名特定文件的vim调用,您就应该在业务中了。(将命令和参数的特定组合别名为不寻常的字符串要安全得多,因为不太可能在上下文之外使用。)
然而,更普遍的是,我的建议是,您不应该担心优化两个字符序列的~/,而是应该习惯于键入它。继续..。伸出你的左手小指,就像你是埃迪·范·哈伦在练习音阶。(这将帮助您在使用vim时掌握它,因为您可能应该习惯用小指按Esc键!)
随着键入技能的提高,您将获得~/序列的内存,这将帮助您在引用主目录中的文件时可靠地键入字符序列。你会故意快速地打出来,也不会偶然地打出来。
依赖别名的缺点是,无论它们在您的家庭计算机上有多快,当您需要ssh到客户端私有子网中的某个远程Docker容器中时,它们会使您慢下来,并发现您的所有别名都消失了。
发布于 2021-06-12 01:42:02
想必您正在使用zsh作为您的shell,它执行允许您执行以下操作的具有“全局别名”功能:
% alias -g .zshrc='~/.zshrc'
% echo .zshrc
/home/mwh/.zshrc也就是说,在命令行中出现单词.zshrc的任何地方,都将其替换为~/.zshrc,然后按照通常的方式进行倾斜扩展。它必须是自己的shell "word“,所以如果它只是一个长名称的子字符串,它就不会被展开。这适用于任何命令。
全局别名是臭名昭著的问题,因为它们确实在任何地方都会悄悄的展开,因此您可以例如在另一个目录中运行rm .zshrc,它将针对您自己的dotfile。它们还在shell函数中应用,甚至那些已经定义的函数。在这种情况下,似乎不太可能引起一个问题,但要意识到它的潜力。您可以使用./.zshrc专门命名当前目录中的文件,或者使用\.zshrc获取文字字符串,或者用引号包围它。
https://unix.stackexchange.com/questions/653914
复制相似问题