Клавиши курсора не работают в vim при запуске zsh на wsl через cmder или conemu

Я запускаю ubuntu 1804 в Windows с помощью WSL. Все настроено нормально и работает исправно. Я также установил ZSH и oh-my-zsh, опять же, все в порядке, и похоже, что все работает нормально. Все, кроме клавиш со стрелками, при использовании vim, страниц руководства или некоторых других инструментов командной строки.

Клавиши вверх и вниз работают в командной строке при прокрутке истории, а также для команд выбора, таких как nano. Также, если я загружаюсь в bash, а не в zsh, клавиши со стрелками работают в vim и man-страницах, фактически они работают везде.

Если я загружаюсь в 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-cyg-64.exe, которая поступает из conemu. который является симбионтом 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

Поэтому я думаю, что если я смогу загрузиться в zsh с помощью conemu-cyg-64, клавиши курсора, вероятно, будут работать в таких командах, как vim и справочные страницы. Любая помощь или совет, чтобы заставить эту работу работать, были бы великолепны.

РЕДАКТИРОВАТЬ: на моей установке ubuntu zsh установлен в / usr / bin / zsh, но нет файла или папки / cygdrive / c / Program Files / cmder


person Damo    schedule 02.12.2018    source источник
comment
А где твой зш?   -  person Maximus    schedule 02.12.2018
comment
~ который zsh возвращает / usr / bin / zsh   -  person Damo    schedule 03.12.2018
comment
Но у меня нет папки / cygdrive / c / Program Files / cmder в моей файловой системе wsl ubuntu. может это вызывает ошибку?   -  person Damo    schedule 03.12.2018
comment
which zsh возвращает виртуальное местоположение. Но я спросил вас о настоящем. Какой зш вы пытаетесь? Wsl? Cygwin?   -  person Maximus    schedule 03.12.2018
comment
Я думаю, что я использую настоящий zsh, который я установил в ubuntu, используя sudo apt-get install zsh ive not installed cygwin, кроме установки и использования cmder. Когда я запускаю bash, а затем в командной строке bash, я набираю zsh, это тот, который я пытаюсь использовать.   -  person Damo    schedule 03.12.2018
comment
Когда я смотрю на zsh в папке / usr / bin, я вижу, что это simlink / bin / zsh   -  person Damo    schedule 03.12.2018
comment
В документах есть пример синего цвета для правильного запуска оболочки wsl. conemu.github.io/en/BashOnWindows.html#wsl-shell   -  person Maximus    schedule 03.12.2018


Ответы (1)


Большое спасибо @Maximus за то, что указал мне в правильном направлении. Ответ был прямо у меня под носом на странице bash на windows conemu. Небольшое изменение в команде, которую я использовал раньше. zsh должен идти в конце, а не перед --wsl.

Правильная задача, чтобы гарантировать, что клавиши курсора работают во всех приложениях в терминале:

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