2015-09-26 18 views
8

Sto provando Haskell in GHCi su Windows. Nel tutorial che seguo, un nome di funzione è racchiuso tra apici: x `mod` 7. Tuttavia, non posso inserire il personaggio in GHCi.Come posso inserire un backtick in GHCi?

Il carattere di apice inverso ha valore ASCII 096, ma GHCI non consente Alt +numero per inserire qualsiasi carattere. Anche la copia/incolla non funziona. Cosa dovrei fare?

+0

Non sono sicuro che sto capendo correttamente il problema, ma il carattere backtick si trova in genere su un tasto immediatamente a sinistra del tasto "1" sulla maggior parte delle tastiere: http: //i.stack.imgur .com/TOn1U.png. –

+0

La mia versione di GHCi accetta l'apice direttamente dalla mia tastiera (anche se la mia tastiera non è EN-US), e accetta anche da incollare. Se stai usando Windows, esegui GHCi su Powershell invece di Prompt per usare Ctrl + V per incollare. – Mephy

+4

Avere una tastiera italiana, ha una \ sinistra di 1, mi spiace – Martin

risposta

10

Non so come inviare un backtick a ghci se la tastiera non ce l'ha. Ma questo piccolo problema tecnico non dovrebbe impedirti di provare Haskell!

  • È possibile programmare in Haskell, senza apici inversi utilizzando f a b invece di a `f` b. Nel tuo esempio, mod x 7.

  • È possibile impostare il layout della tastiera per noi-americano per la programmazione. Mentre ci vuole un po 'di pratica per trovare i tasti con le etichette sbagliate sulla tastiera fisica, può essere conveniente avere [, ], { e } più accessibile, e nel tuo caso, avere il backtick a tutti.

  • È possibile incollare l'apice dagli Appunti. (Attiva "modalità di modifica rapida" e "modalità incolla" dalle impostazioni della finestra di comando, quindi usa il pulsante destro del mouse per incollare).

  • Forse l'utilizzo di un wrapper attorno alla finestra di comando aiuta? A volte uso Console2 e talvolta M-x shell in Emacs.

  • Forse WinGHCi è utile? Supporta copia e incolla, almeno.

  • Vedere la risposta di Ørjan Johansen su come aggiungere una combinazione di tasti personalizzata a ghci.

Buona fortuna con Haskell!

+0

La console di windows non supporta CTRL-V per incollare (infatti, non supporta alcuna scelta rapida da tastiera per incollare) - tranne su Windows 10, sembra: http://stackoverflow.com/questions/131955/keyboard-shortcut-to-paste-clipboard-contenuto-in-comando-prompt-finestra-win-xp/31506358 # 31506358 – melpomene

+0

Davvero? Che noioso. Io uso CTRL-V con il prompt dei comandi nella mia console di Windows tutto il tempo, ma ora mi sono reso conto che è fornito da http://mridgers.github.io/clink/ non dalla console di vaniglia o dal prompt dei comandi. Scusa per la mia confusione. – Toxaris

6

@Toxaris ha fornito diversi suggerimenti nella sua risposta, ma in un commento ha anche menzionato la possibilità di configurare la versione di readline di GHCi (che si chiama haskeline). E lo ha reso allows custom keybindings. Così ho deciso di provarlo.

La documentazione dice di mettere le personalizzazioni in ~/.haskeline, che non è un percorso di Windows, ma si presume che si traduca in .haskeline in qualsiasi directory System.Directory.getHomeDirectory restituisce. (vim può anche modificare tale percorso direttamente su Windows, ma mi sono reso conto solo in seguito.) Quindi ho messo il seguente in C:\Users\Ørjan\.haskeline:

bind: meta-' ` 

Ora posso ottenere ` in GHCi premendo alt-'!

+1

Mi spiace aver indicato la risposta corretta: TUO è quello che stavo cercando. Inseriscilo in ciò che Windows chiama HOMEPATH (c: \ users \ myname). Txs. – Martin

+0

@ Martin Mi sembra di poter cambiare la risposta che accetti. Sono felice che abbiamo risolto il tuo problema. – Toxaris