Wie kann ich einen Backtick in GHCi einfügen?

8

Ich probiere Haskell in GHCi unter Windows aus. In dem Tutorial, dem ich folge, ist ein Funktionsname in Backticks enthalten: x 'mod' 7 . Allerdings kann ich das Zeichen in GHCi nicht eingeben.

Das Backtick-Zeichen hat den ASCII-Wert 096, aber GHCI erlaubt Alt + Nummer kein beliebiges Zeichen einzufügen. Kopieren / Einfügen funktioniert auch nicht. Was soll ich tun?

    
Martin 26.09.2015, 19:00
quelle

2 Antworten

10

Ich weiß nicht, wie man einen Backtick an Ghci sendet, wenn es auf Ihrer Tastatur nicht vorhanden ist. Aber dieses kleine technische Problem sollte dich nicht davon abhalten, Haskell auszuprobieren!

  • Sie können Haskell ohne Backticks programmieren, indem Sie f a b anstelle von a 'f' b verwenden. In Ihrem Beispiel mod x 7 .

  • Sie können Ihr Tastaturlayout für die Programmierung auf us-amerikanisch setzen. Während es etwas Übung braucht, um die Schlüssel mit den falschen Bezeichnungen auf der physischen Tastatur zu finden, kann es bequem sein, [ , ] , { und } zugänglicher zu haben, und in Ihrem Fall den Backtick zu haben überhaupt.

  • Sie können den Backtick aus der Zwischenablage einfügen. (Aktivieren Sie den "Schnellbearbeitungsmodus" und "Einfügen-Modus" aus den Einstellungen des Befehlsfensters, und verwenden Sie dann die rechte Maustaste, um einzufügen).

  • Vielleicht hilft die Verwendung eines Wrappers um das Befehlsfenster? Ich benutze manchmal Console2 und manchmal M-x shell in Emacs.

  • Vielleicht hilft WinGHCi? Es unterstützt mindestens Kopieren und Einfügen.

  • Siehe die Antwort von Ørjan Johansen zum Hinzufügen einer benutzerdefinierten Tastenkombination zu ghci.

Viel Glück mit Haskell!

    
Toxaris 26.09.2015, 19:25
quelle
6

@Toxaris gab mehrere Vorschläge in seiner Antwort, aber in einem Kommentar erwähnte er auch die Möglichkeit, GHCi's Version von readline zu konfigurieren (die haskeline ). Und indead it ermöglicht benutzerdefinierte Tastaturbelegungen . Also habe ich beschlossen, das auszuprobieren.

In der Dokumentation wird angegeben, dass die Anpassungen in ~/.haskeline vorgenommen werden sollen. Dies ist kein Windows-Pfad, aber es wird vermutlich in .haskeline übersetzt, egal, welches Verzeichnis System.Directory.getHomeDirectory zurückgibt. ( vim kann diesen Pfad auch direkt unter Windows bearbeiten, aber das habe ich erst danach bemerkt.) Also setze ich folgendes in C:\Users\Ørjan\.haskeline :

%Vor%

Jetzt kann ich ' in GHCi bekommen, indem ich alt-' !

drücke     
Ørjan Johansen 27.09.2015 00:40
quelle

Tags und Links