Как я могу вставить обратную черту в 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-'
!