我在 zsh 中有一个多行提示。我发现有时当我CTRL-C
退出自动完成时,提示的前一行会意外删除。这是一个 gif 显示这种情况发生在ls
,vim
和fzf
: http://imgur.com/1jTrrzA
以下是发生的事件的概要:
ls
所有文件ls
然后制表符完成并CTRL-C
退出第一个完成(前一行提示被删除)ls
然后 tab 完成并CTRL-C
退出第二个完成。提示的上一行不会被删除- 与第 2 步相同,但
vim
改为 - 与第 3 步相同,但我点击
Enter
而不是CTRL-C
,这是我的错误。但是,如果我CTRL-C
退出此示例(非第一次完成),则不会删除前一行 - 展示如何
fzf
多次遭受相同的问题
我发现在第 2 步和第 4 步中显示的问题在单行提示下仍然存在。但是fzf
,不会因单行提示而中断。
我的整个提示可以在http://pastebin.com/JwufRy6m找到,它是https://github.com/sorin-ionescu/prezto/blob/master/modules/prompt/functions/prompt_sorin_setup的修改版本我公司的 mercurial 存储库。我的提示文件中感兴趣的行(我认为)是 166 和 167(第 167 行 == 第 166 行减号$prompt_newline
)。
我尝试创建多行提示而不使用以下操作$prompt_newline
:
NEWLINE=$'\n'
PROMPT=.....${NEWLINE}....
但这对我来说没有任何帮助,因为单行提示仍然存在部分问题。