Как я могу вставить обратную черту в GHCi?

Я пробую Haskell в GHCi на Windows. В следующем уроке имя функции заключено в обратные ссылки: x `mod` 7, Однако я не могу ввести персонажа в GHCi.

Символ обратного хода имеет значение ASCII 096, но GHCI не позволяет Alt + number вставлять какой-либо символ. Копирование / вставка тоже не работает. Что я должен делать?

2 ответа

Решение

Я не знаю, как отправить отзыв на ghci, если на клавиатуре его нет. Но эта небольшая техническая проблема не должна помешать вам попробовать Haskell!

  • Вы можете программировать на Haskell без обратных галочек, используя f a b вместо a `f` b, В вашем примере mod x 7,

  • Вы можете установить раскладку клавиатуры на американскую для программирования. Хотя для поиска клавиш с неправильными метками на физической клавиатуре требуется определенная практика, удобно иметь [, ], { а также } более доступным, и в вашем случае, иметь обратный удар на всех.

  • Вы можете вставить обратный удар из буфера обмена. (Активируйте "режим быстрого редактирования" и "режим вставки" в настройках командного окна, а затем используйте правую кнопку мыши для вставки).

  • Может быть, использование оболочки вокруг командного окна помогает? Я иногда использую Console2, а иногда M-x shell в Emacs.

  • Может, WinGHCi поможет? Он поддерживает копирование и вставку, по крайней мере.

  • См. Ответ Орджана Йохансена о том, как добавить пользовательскую привязку клавиш в ghci.

Удачи с Haskell!

@Toxaris дал несколько предложений в своем ответе, но в комментарии он также упомянул о возможности настройки версии readline GHCi (которая называется haskeline). И это позволяет использовать пользовательские сочетания клавиш. Поэтому я решил проверить это.

Документация говорит, чтобы поместить настройки в ~/.haskeline, который не является путем Windows, но, по-видимому, переводится как .haskeline в любом каталоге System.Directory.getHomeDirectory возвращается. (vim также можно редактировать этот путь непосредственно в Windows, но я понял это только потом.) Поэтому я добавил следующее C:\Users\Ørjan\.haskeline:

bind: meta-' `

Теперь я могу получить ` в GHCi нажатием alt-'!

Другие вопросы по тегам