macOS中设置nvim alias
macOS和Linux不同,没有 /etc/alternatives 来管理命令软链接的标准,并且 /usr/bin/vi 和 /usr/bin/vim 是受系统完整性保护(SIP, System Integrity Proteciton)锁死的二进制文件,所以即使有 root 权限也不能直接rm /usr/bin 目录下文件以及添加软链接。
比较简洁且优雅的方式是采用Shell运行时劫持,针对zsh修订 ~/.zshrc :
配置
~/.zshrc 添加nvim的alias# =====================================================================
# Nvim 命令优雅替代方案 (macOS Environment Only)
# =====================================================================
if command -v nvim &> /dev/null; then
# 1. 基础别名劫持:让 vi / vim 直接指向 nvim
alias vi="nvim"
alias vim="nvim"
# 2. 安全对齐补全系统:如果 compdef 没加载,强制触发加载
if ! type compdef &>/dev/null; then
autoload -Uz compinit && compinit
fi
# 3. 让 vi / vim 共享 nvim 的高级全量补全
compdef _nvim vi
compdef _nvim vim
# 4. 环境变量对齐:将系统默认的系统级编辑器指定为 nvim
export EDITOR="nvim"
export VISUAL="nvim"
fi
说明:
if command -v nvim判断,即使系统没有通过 Homebrew 安装了 neovim ,也能够平滑回退到系统原生的vi补全对齐:使用
comdef劫持zsh的补全树,这样在终端输入vi [Tab]能够跳出的高亮补全菜单完全走nvim的逻辑comdef是zsh内置的高级补全系统(Completion System)提供的一个核心函数,但是如果补全引擎(compinit)没有加载的话,会不能识别compdef关键字,所以这里增加一个判断compdef是否加载并初始化
参考
gemini