当通过 cmder 或 conemu 在 wsl 上 运行 zsh 时,光标键在 vim 中不起作用

Cursor keys dont work in vim when running zsh on wsl through cmder or conemu

我 运行 ubuntu 1804 windows 使用 WSL。一切都设置得很好并且工作正常。我还安装了 ZSH 和 oh-my-zsh,这一切都很好,一切看起来都运行良好。使用 vim 或手册页或一些其他命令行工具时,除了箭头键之外的所有内容。

向上和向下键在滚动历史记录时在命令行上工作,也适用于 select 命令,如 nano。此外,如果我启动到 bash 而不是 zsh,箭头键在 vim 和手册页中确实有效,实际上它们在任何地方都有效。

如果我启动到 bash,然后在命令行上手动切换到 zsh,然后箭头键随处可用。

所以我的 cmder zsh 配置

c:/_distros/ubuntu1804/ubuntu1804.exe -c zsh -cur_console:pm

和 bash

set "PATH=%ConEmuBaseDirShort%\wsl;%PATH%" & %ConEmuBaseDirShort%\conemu-cyg-64.exe --wsl -cur_console:pm:/mnt

bash 的那个使用来自 conemu 的 conemu-cyg-64.exe 程序,它是 POSIX 启用的 pty 和 WinAPI 全功能的共生体终端。

显然你可以将这个工具与 zsh 一起使用,但我无法让它工作,我得到了错误

{PID:10592} failed to run shell (2): No such file or directory
{PID:10592} shell: `/usr/bin/zsh` `-l` `-i`
{PID:10592}   dir: `/cygdrive/c/Program Files/cmder`
ConEmuC: Root process was alive less than 10 sec, ExitCode=0.
Press Enter or Esc to close console...

这是cmder中的任务

set "PATH=%ConEmuBaseDirShort%\wsl;%PATH%" & %ConEmuBaseDirShort%\conemu-cyg-64.exe /usr/bin/zsh -l -i -cur_console:pm:/mnt

所以我认为,如果我可以使用 conemu-cyg-64 启动到 zsh,那么光标键可能会在 vim 和手册页等命令中工作。任何帮助或建议使该工作正常进行都是非常好的。

编辑: 在我的 ubuntu 安装中,zsh 安装在 /usr/bin/zsh,但是没有文件或文件夹 /cygdrive/c/Program Files/cmder

非常感谢@Maximus 为我指明了正确的方向。 the bash on windows page of conemu,答案就在我眼皮底下。对我之前使用的命令做了一个小改动。 zsh 需要在最后而不是在 --wsl 之前。

确保光标键在​​终端中的所有应用程序上工作的正确任务是:

set "PATH=%ConEmuBaseDirShort%\wsl;%PATH%" & %ConEmuBaseDirShort%\conemu-cyg-64.exe --wsl -cur_console:pnm:/mnt -t zsh -l