2015-09-26 5 views
8

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

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

+0

Я не уверен, правильно ли я понимаю проблему, но символ обратного хода обычно расположен на клавише слева от клавиши «1» на большинстве клавиатур: http: //i.stack.imgur .com/TOn1U.png. –

+0

Моя версия GHCi принимает обратную линию непосредственно с моей клавиатуры (хотя моя клавиатура не является EN-US), а также принимает ее от вставки. Если вы используете Windows, запустите GHCi на Powershell вместо Prompt, чтобы использовать Ctrl + V для вставки. – Mephy

+4

У вас есть итальянская клавиатура, есть \ слева от 1, извините – Martin

ответ

10

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

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

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

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

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

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

  • См. Ответ Ørjan Johansen о том, как добавить пользовательский привязку клавиш к ghci.

Удачи вам в Haskell!

+0

Консоль Windows не поддерживает CTRL-V для вставки (на самом деле, она не поддерживает любую комбинацию клавиш для вставки вообще) - кроме Windows 10, похоже: http://stackoverflow.com/questions/131955/keyboard-shortcut-to-paste-clipboard-content-in-command-prompt-window-win-xp/31506358 # 31506358 – melpomene

+0

Действительно? Как раздражает. Я постоянно использую CTRL-V с командной строкой в ​​консоли Windows, но теперь я понял, что она предоставляется http://mridgers.github.io/clink/, а не консолью или консолью ванили. Извините за мое замешательство. – Toxaris

6

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

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

bind: meta-' ` 

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

+1

Извините, что уже указал правильный ответ: YOURS - это то, что я искал. Поместите его в то, что Windows вызывает HOMEPATH (c: \ users \ myname). Txs. – Martin

+0

@Martin Я думаю, вы можете изменить, какой ответ вы принимаете. Я рад, что мы решили вашу проблему. – Toxaris