首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将.zshrc修正为~/..zshrc

将.zshrc修正为~/..zshrc
EN

Unix & Linux用户
提问于 2021-06-12 01:05:38
回答 2查看 891关注 0票数 4

是否有办法设置某种别名,以便当我这样做时:

代码语言:javascript
复制
cd some/directory
vim .zshrc

vim ~/.zshrc吗?

EN

回答 2

Unix & Linux用户

发布于 2021-06-12 03:59:45

答案比你想象的要简单得多,因为你问错了问题。

如果您真正的意思是“我如何创建一个别名,使我可以编辑我的~/.zshrc,而不管我当前的工作目录?”答案很简单:

代码语言:javascript
复制
alias zshconfig="vim ~/.zshrc" 

这个例子来自我自己的~/.zshrc,我经常使用它。

@mateen-ulhaq在以下评论中建议的一个更好的选择是:

代码语言:javascript
复制
alias zshrc="vim ~/.zshrc" 

换句话说,不要尝试别名文件名或文件名的路径。这两种情况都是可能的,但可能会产生无法预测的副作用,从而给以后的您带来问题,正如@迈克尔-荷马所指出的。

但是,由于您知道首选的$EDITORvim,所以只需别名特定文件的vim调用,您就应该在业务中了。(将命令和参数的特定组合别名为不寻常的字符串要安全得多,因为不太可能在上下文之外使用。)

然而,更普遍的是,我的建议是,您不应该担心优化两个字符序列的~/,而是应该习惯于键入它。继续..。伸出你的左手小指,就像你是埃迪·范·哈伦在练习音阶。(这将帮助您在使用vim时掌握它,因为您可能应该习惯用小指按Esc键!)

随着键入技能的提高,您将获得~/序列的内存,这将帮助您在引用主目录中的文件时可靠地键入字符序列。你会故意快速地打出来,也不会偶然地打出来。

依赖别名的缺点是,无论它们在您的家庭计算机上有多快,当您需要ssh到客户端私有子网中的某个远程Docker容器中时,它们会使您慢下来,并发现您的所有别名都消失了。

票数 12
EN

Unix & Linux用户

发布于 2021-06-12 01:42:02

想必您正在使用zsh作为您的shell,它执行允许您执行以下操作的具有“全局别名”功能

代码语言:javascript
复制
% alias -g .zshrc='~/.zshrc'
% echo .zshrc
/home/mwh/.zshrc

也就是说,在命令行中出现单词.zshrc的任何地方,都将其替换为~/.zshrc,然后按照通常的方式进行倾斜扩展。它必须是自己的shell "word“,所以如果它只是一个长名称的子字符串,它就不会被展开。这适用于任何命令。

全局别名是臭名昭著的问题,因为它们确实在任何地方都会悄悄的展开,因此您可以例如在另一个目录中运行rm .zshrc,它将针对您自己的dotfile。它们还在shell函数中应用,甚至那些已经定义的函数。在这种情况下,似乎不太可能引起一个问题,但要意识到它的潜力。您可以使用./.zshrc专门命名当前目录中的文件,或者使用\.zshrc获取文字字符串,或者用引号包围它。

票数 5
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/653914

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档