从 bash 接收切换到 zsh 后:“PROMPT_COMMAND=vim”附近的解析错误
Posted
技术标签:
【中文标题】从 bash 接收切换到 zsh 后:“PROMPT_COMMAND=vim”附近的解析错误【英文标题】:after switching to zsh from bash receiving: parse error near `PROMPT_COMMAND=vim' 【发布时间】:2022-01-24 02:32:38 【问题描述】:我要获取的 .zprofile 中围绕 `PROMPT_COMMAND=vim' 的代码是:
function vim
printf "\e]1;"`basename "$1"`"\a"
/usr/bin/vim "$1" PROMPT_COMMAND=vim
function nvim
printf "\e]1;"`basename "$1"`"\a"
/usr/local/bin/nvim "$1"
PROMPT_COMMAND=nvim
这是文件中唯一的 PROMPT_COMMAND=vim 实例。
当我使用 .bash_profile 时,这很好用。当我设置 zsh 并将其迁移到 .zprofile 时它坏了。如果我使用 .zshrc 而不是 .zprofile,也会出现同样的结果。
这段代码的目的是在我输入 vim 时使用 nvim 以简化向 nvim 的迁移并加快输入速度。
我对编程很陌生,所以这可能是一个低级问题,但我无法在网上找到答案。
【问题讨论】:
不同的外壳 - 不同的语言。您不能真的指望您的bash
代码开箱即用在 zsh
中工作。也许有帮助:What's the ZSH equivalent of BASH's $PROMPT_COMMAND?
【参考方案1】:
评论有点长,加上格式很重要...
我在bash
得到了以下工作:
function vim
printf "\e]1;"`basename "$1"`"\a"
/usr/bin/vim "$1"; ; PROMPT_COMMAND=vim # add a ";" before function's ending ""
# and separate trailing "" from the next command
# or
function vim
printf "\e]1;"`basename "$1"`"\a"
/usr/bin/vim "$1"
; PROMPT_COMMAND=vim # place function's ending "" on a new line
# but also separate the "" and the next command
# or
function vim
printf "\e]1;"`basename "$1"`"\a"
/usr/bin/vim "$1"
# again, place trailing "" on separate line
PROMPT_COMMAND=vim # place next command on it's own line
正如 Ted 的评论中所指出的那样……PROMPT_COMMAND=vim
在 bash
中所做的事情可能与在 zsh
中所做的不同……
【讨论】:
有效!这太棒了,谢谢。我是一个超级菜鸟,所以这种容易理解的东西是无价的。供参考:这在我的 .bash_profile 和我的 .zprofile 中同样有效。以上是关于从 bash 接收切换到 zsh 后:“PROMPT_COMMAND=vim”附近的解析错误的主要内容,如果未能解决你的问题,请参考以下文章