如何在 oh-my-zsh 中创建永久别名?

Sha*_*med 80 command-line zsh alias

在我的 .zshrc 中,我尝试创建一些别名。我查看了很多地方,但找不到有效的方法。我在下面使用了这个代码:

# Set personal aliases, overriding those provided by oh-my-zsh libs, 
# plugins, and themes. Aliases can be placed here, though oh-my-zsh 
# users are encouraged to define aliases within the ZSH_CUSTOM folder. 
# For a full list of active aliases, run alias. # # Example aliases
alias zshconfig="mate ~/.zshrc"
alias ohmyzsh="mate ~/.oh-my-zsh"
alias n= "nano"  
alias m= "mkdir"
alias w= "cd ~/Documents/UoMWorkspace/Semester2"  
alias j= "cd ~/Documents/UoMWorkspace/Semester2/COMP17412"
Run Code Online (Sandbox Code Playgroud)

然后我写了一个命令source ~/.zshrc。仍然没有解决问题。我收到错误消息,例如zsh: command not found: j

任何人都可以帮助我提供任何建议并让我知道我做错了什么?

Ada*_*hon 126

=别名或别名定义之间不能有任何空格:

alias zshconfig="mate ~/.zshrc"
alias ohmyzsh="mate ~/.oh-my-zsh"
alias n="nano"
alias m="mkdir"
alias w="cd ~/Documents/UoMWorkspace/Semester2"
alias j="cd ~/Documents/UoMWorkspace/Semester2/COMP17412"
Run Code Online (Sandbox Code Playgroud)

顺便说一句:如果您正在寻找一种缩短目录名称的方法,我建议您查看命名目录AUTO_CD选项而不是别名:

hash -d w=~/Documents/UoMWorkspace/Semester2
hash -d j=~/Documents/UoMWorkspace/Semester2/COMP17412
Run Code Online (Sandbox Code Playgroud)

这允许您使用~w代替~/Documents/UoMWorkspace/Semester2~j代替~/Documents/UoMWorkspace/Semester2/COMP17412(或~w/COMP17412)。所以cd ~j与 相同cd ~/Documents/UoMWorkspace/Semester2。它也可以作为路径的一部分,例如cat ~j/somedir/somefile.

setopt AUTO_CD
Run Code Online (Sandbox Code Playgroud)

zshcd如果它在命令行上作为命令给出并且它不是实际命令的名称,则将自动到一个目录。例如

% /usr
% pwd
/usr
% ~w
/home/YOURUSERNAME/Documents/UoMWorkspace/Semester2
Run Code Online (Sandbox Code Playgroud)

  • @nanono 这取决于您所说的“不可读”是什么意思。AUTO_CD 本身只是允许通过仅使用目录的路径而不是使用 cd 命令来切换到目录。当然,如果你积极使用这个功能,从历史记录中很难判断`docs`命令是否运行了一个该名称的可执行文件,或者它是否被用来切换到一个名为“docs”的目录。 (2认同)