Как я могу вставить backtick в GHCi?

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

символ backtick имеет значение ASCII 096, но GHCI не позволяет Alt + для вставки любого символа. Копирование/вставка не работает. Что мне делать?

2 ответов


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

  • вы можете программировать в Haskell без backticks с помощью f a b вместо a `f` b. В вашем примере, mod x 7.

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

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

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

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

  • см. ответ Эрьяна Йохансена о том, как добавить пользовательскую привязку ключей к ghci.

удачи с Haskell!


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

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

bind: meta-' `

теперь я могу сделать ` в GHCi, нажав alt-' !