Domanda

Sono sorta di Fsi.exe ottenuto lavorando come previsto su un Mac OS X (Snow Leopard) con Mono. Ho appena notato un po 'di comportamento strano con taglia e incolla e mi chiedevo se qualcuno avesse visto questo.

Ho definito il seguente alias per FSI:

alias fsi='ledit mono ~/FSharp-1.9.7.8_2/bin/fsi.exe --gui-'

ledit è un programma di utilità O'Caml che sembra far funzionare correttamente l'input da tastiera - senza di essa, FSI solo non sembra mai di leggere l'input. Per capire cosa intendo, provare Fsi.exe senza ledit e immettere

let square x = x * x;;

senza ledit, semplicemente non sembra mai per analizzare l'input. Voglio dire che non torna al ">" pronta dopo aver inserito la stringa. Con ledit, il ">" pronta torna immediatamente.

Naturalmente il --gui- fsi impedisce la visualizzazione di tutti i messaggi per la mancanza di System.Drawing etc.

Quindi, tutto questo sembra funzionare. La stranezza è quando copiare e incollare il codice nella FSI, alcuni personaggi sembrano ripetere più e più volte. Sembra essere condizionato dalla dimensione del buffer che sto incollando. Quando mi incollo piccoli frammenti non sembra esserci alcun problema. Ma se mi incollo in blocchi più grandi, c'è questa stranezza.

Se faccio la seguente:

open System.IO;;

quindi incollare questo frammento di codice in FSI:

let buildFileList basepath filespec =
    seq {
        yield! Directory.GetFiles(basepath, filespec, System.IO.SearchOption.AllDirectories)
        }

Questo funziona bene. Ma se Copio e incollo in un pezzo più grande di codice termina con questo, ripete la parte fino alla resa! ancora e ancora. Sembra di essere in qualche modo legati alla FSI tentativo di analizzare il codice mentre viene incollato in quanto lo stesso codice incollato in causerà errori di parsing (come FS0010) quando è incollato al termine di un lungo pezzo, ma non sarà causa un errore quando è isolato.

Se io #load l'intero file, analizza in modo corretto e quindi penso che il mio codice è ok.

Questa stranezza in copia / incolla sembra accadere con e senza ledit sulla riga di comando. Non mi dispiace la ricerca di questo problema me stesso, ma io sono una specie di perplesso su dove devo procedere con questo. Sto copiando da GVim se questo fa la differenza, ma nessuno ha idea di dove potrei proseguire nel tentativo di isolare la causa di questo strano comportamento? Suppongo che avrei potuto fare il passo ulteriore di copia in TextEdit e poi cercando di copiare nella FSI, ma al di là di tutte le idee che?

Per linea di fondo questo: ha chiunque altro visto questo strano comportamento? In caso contrario, qualche suggerimento su come potrei proseguire nel tentativo di isolare la causa di questo strano comportamento?

È stato utile?

Soluzione

Quando ho incontrato questo comportamento sul mio Mac, sono andato un percorso diverso. Invece di usare ledit, ho l'opzione fsi di --readline impiegato, visto sotto (dove ${FSHARP} è il mio percorso di installazione).

mono ${FSHARP}/fsi.exe --readline+ --gui-

Si consiglia inoltre di controllare le impostazioni del terminale. Il mio terminale (ad esempio) viene dichiarata come xterm-color, e ho delete sends CTRL-H incontrollato. Credo che queste sono le impostazioni solo importanti, ma non mi trattenere ad esso.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top