ChSciTE icon ChSciTE

Home
Download
Domande Frequenti (FAQ)
Documentazione
Traduzioni
Awards
ChScite in Italiano

ChSciTE Documentation

ChSciTE e' un Integrated Development Environment (IDE) per lo sviluppo ed esecuzione di programmi C/Ch/C++ in Ch. Ch e' un interprete C/C++ embeddable per programmazione a script su multi-piattaforma, programmazione shell, 2D/3D plotting, calcolo numerico, e programmazaione a embedded script. L'interfaccia utente di ChSciTE e' sviluppata in oltre 30 lingue differenti come tedesco, francese, cinese, coreano, e giapponese.

Per iniziare

ChSciTE puo' essere eseguito con il comando chscite. In Windows, ChSciTE puo' essere convenientemente eseguito cliccando l'icona visualizzata Figura 1 sul desktop.

ChSciTE icon

Figura 1: L'icona di ChSciTE sul desktop di Windows

Quando ChSciTE e' lanciato, l'interfaccia grafica utente apparira' come in Figura 2. Le informazioni riportate qui vengono visualizzate se si clicca su Aiuto | Aiuto su ChSciTE.

ChSciTE Help

Figura 2: Come ottenere aiuto on-line per usare ChSciTE.

Sviluppare ed Eseguire Programmi C/Ch/C++

L'editing di testo in ChSciTE funziona in maniera simile alla maggior parte degli editor Macintosh o Windows, come Notepad con la gestione automatica dello stile per la sintassi. ChSciTE puo' mantenere piu' file in memoria in una sola volta ma solo un file e' visibile. ChSciTE permette di avere in memoria fino a 20 file. Regioni rettangolari di testo possono essere selezionate in ChSciTE premendo il tasto Alt in Windows o Ctrl in GTK+ mentre si trascina il mouse sul testo.

Ci sono due finestre in ChSciTE, quella di editing e quella di output. Quella di output e' posta o sotto quella di editing o alla destra. Inizialmente ha dimensione nulla, ma puo' essere allargata trascinando il separatore tra essa e la finestra di editing.

Il comando Opzioni | Divisione Verticale puo' essere usato per spostare la finestra di output sulla destra di quella di editing.

Con Ch installato sul computer, i programmi preparati possono essere immediatamente eseguiti in ChSciTE come in altri IDE quali Microsoft Visual Studio. I file sorgente sono eseguiti via interpretazione senza compilazione. L'output del programma viene indirizzato alla finestra di output.

Primo Esempio di Editing e Esecuzione di un Programma con Output.

Per esempio, aprire un nuovo documento, e digitare:

#include <stdio.h> int main() { printf("Hello, world!\n"); return 0; }

come questo documento di testo.

Lo stesso programma hello.c in CHHOME/demos/bin/hello.c, dove CHHOME e' la home directory per Ch, per esempio C:/Ch in Windows, C:/Ch/demos/bin/hello.c, puo' anche essere caricato usando il comando File | Apri.

Il programma dovrebbe apparire ora colorato con la sintassi evidenziata come mostrato in Figura 3.



Figura 3: Programma hello.c

Salva il documento come hello.c come mostrato in Figura 4.



Figura 4: Salva programma hello.c

Scegli Tools | Run come mostrato in Figura 5 per eseguire il programma hello.c.



Figura 5: Esecuzione del programma hello.c

Invece di selezionare il comando Tools | Run, premendo il tasto funzione F5 si ottiene lo stesso effetto che eseguire il programma.

La finestra di output sara' resa visibile se non e' gia' visibile, e mostrera':

>ch -u hello.c
Hello, world!
>Exit code: 0
come mostrato in Figura 6.



Figura 6: Output del programma hello.c

La prima riga blue e' visualizzata da ChSciTE che mostra il comando che userebbe per eseguire il programma. La riga nera e' l'output dell'esecuzione del programma Ch. La riga blue finale e' ancora da ChSciTE e mostra che il programma e' terminato visualizzandone l'exit code. Un exit code pari a zero indica un'esecuzione andata a buon fine.

ChSciTE capisce i messaggi di errore prodotti da Ch. Per vedere questo, aggiungiamo un errore al file Ch cambiando la riga

printf( "Hello, world");
in
printf( "Hello, world";
Esegui Tools | Run sul programma modificato. Il risultato dovrebbe essere

>ch -u hello.c
ERROR: missing ')'
ERROR: syntax error before or at line 4 in file hello.c
==>:    printf("Hello, world\n";
BUG:    printf("Hello, world\n"; <== ???
ERROR: cannot execute command 'hello.c'
>Exit code: -1

								
come mostrato in Figura 7.



Figura 7: Riga di errore nell'output dall'esecuzione del programma hello.c

Clicca sulla riga dell'output in rosso in Figura 7, la riga con la sintassi errata viene evidenziata come mostrato in Figura 8.



Figura 8: Riga d'errore nell'output dell'esecuzione del programma hello.c

Trovare l'errore in questo semplice caso e' particolarmente facile, mentre quando il file e' di dimensioni maggiori si puo' usare il comando Strumenti | Messaggio Successivo per vedere ogni errore riportato. Eseguendo Strumenti | Messaggio Successivo, il primo messaggio di errore nella finestra di output e la relativa riga nella finestra di editing sono evidenziati in giallo. ChSciTE ora appare come in Figura 8.

ChSciTE interpreta sia il nome del file sia il numero di riga nel messaggio di errore nella maggior parte dei casi, quindi puo' aprire un altro file (come un header file) se l'errore e' stato causato da quel file. Questa caratteristica puo' non funzionare dove il file name e' piu' complicato perche' contiene spazi o ".."

Se il comando di esecuzione ha fallito e impiega troppo tempo per terminare allora il comando Tools | Stop Executing puo' essere usato.

In Windows, ChSciTE esegue per default tools come comandi di linea. Eseguire un programma GUI in questo modo consiste nell'esecuzione del programma senza visualizzazione di nessuna finestra. L'opzione command.subsystem puo' essere usata per definire strumenti che vengono eseguiti in modo GUI. Il subsystem di default, 0, e' per programmi a comando di linea; 1 e' per programmi che creano la propria finestra, e 2 e' per usare la ShellExecute call. Per eseguire un programma GUI come OpenGL e Windows, usa il comando Strumenti | Lancia la Shell di Ch per lanciare una shell Ch, ed esegui il programma GUI nella shell.

In GTK+, il subsystem per default 0 esegue il tool e aspetta che termini, reindirizzando l'output sulla finestra di output, e il subsystem 2 esegue il tool in background.

Configurazione dei Paths e Ricerca dei Comandi in Ch

Quando un comando viene digitato in un prompt di una shell per essere eseguito, la shell ricerca il comando nelle directory specificate a priori. In una shell Ch, la variabile di sistema _path di tipo stringa contiene le directory nelle quali cercare il comando. Ogni directory e' separata da ";" all'interno della stringa _path. Quando un comando della shell Ch viene lanciato, la variabile di sistema _path contiene gia' alcuni percorsi di ricerca. L'utente puo' aggiungere nuove directory come percorsi di ricerca per la shell usando la funzione stradd() che aggiunge l'argomento di tipo stringa e ritorna la nuova stringa. Per esempio, la directory C:/Documents and Settings/Administrator/c99 non e' nel percorso di ricerca di un comando. Se si prova ad eseguire il programma hello.c in questa directory quando la attuale directory di lavoro e' C:/Documents and Settings/Administrator, la shell Ch non sara' in grado di trovare questo programma, come viene mostrato sotto, e' viene restituito un messaggio d'errore. C:/Documents and Settings/Administrator> hello.c ERROR: variable 'hello.c' not defined ERROR: command 'hello.c' not found Quando viene lanciato Ch o un programma Ch viene eseguito, per default verra eseguito lo startup file .chrc in Unix o _chrc in Windows nella home directory dell'utente, se esiste. Nel resto della presentazione, assumiamo che Ch e' usato in Windows con uno startup file _chrc nella home directory dell'utente. Questo startup file tipicamente determina i path di ricerca per comandi, funzioni, header file, etc. Per default, non c'e' lo startup file nella home directory dell'utente. L'amministratore di sistema puo' aggiungere lo startup file nella home directory dell'utente. Comunque l'utente puo' eseguire Ch con l'opzione -d come di seguito ch -d per copiare uno startup file campione dalla directory CHHOME/config/ alla sua home directory, se non c'e' ancora uno startup file. Notare che CHHOME non e' la stringa "CHHOME", ma invece usa il path di file system nel quale Ch e' installato. Per esempio, per default, Ch e' installato in C:/Ch in Windows e /usr/local/ch in Unix. In Windows, il comando in una shell Ch sotto C:/Documents and Settings/Administrator> ch -d crea uno startup file _chrc nella home directory dell'utente C:/Documents and Settings/Administrator. Questo startup file locale di inizializzazione di Ch, _chrc, puo' essere aperto per modificare i path di ricerca dall'editor ChSciTE come mostrato in Figura 10.



Figura 10: Come aprire lo startup file locale di inizializzazione di Ch per modificarlo.

Per includere la directory C:/Documents and Settings/Administrator/c99 nel path di ricerca di un comando, la seguente riga _path = stradd(_path, "C:/Documents and Settings/Administrator/c99;"); deve essere aggiunta allo startup file _chrc nella home directory dell'utente cosi' che il comando hello.c in questa directory possa essere invocato a prescindere dalla corrente directory di lavoro. Dopo che la directory C:/Documents and Settings/Administrator/c99 e' stata aggiunta al path di ricerca, _path, bisogna far ripartire la shell Ch. Dopo di che si sara' in grado di eseguire il programma hello.c in questa directory come mostrato sotto. C:/Documents and Settings/Administrator> hello.c Hello, world

In maniera a quanto fatto per _path per i comandi, gli header file in Ch sono ricercati in directory specificate nella variabile di sistema _ipath. Ogni path e' delimitato da ";". Per esempio la riga sotto _ipath = stradd(_ipath, "C:/Documents and Setting/Administrator/c99;"); aggiunge la directory C:/Documents and Setting/Administrator/c99 ai path di ricerca per gli header file.

Si puo' aggiungere questa directory ai path di ricerca dei function file con la riga

_fpath = stradd(_fpath, "C:/Documents and Setting/Administrator/c99;");

In Unix, i path di ricerca per i comandi per default non contiene la directory di lavoro corrente. Per includere la directory di lavoro corrente nei path di ricerca di un comando, occorre aggiungere la seguente riga _path = stradd(_path, ".;"); nello startup file .chrc nella home directory dell'utente. La chiamata alla funzione stradd(_path, ".;") aggiunge la directory attuale, rappresentata da '.', al path di ricerca _path.

The Second Example with Input.

Questo esempio mostra come eseguire un programma/script C/Ch/C++ che richiede dati in input dall'utente. Inserisci il codice come mostrato in Figura 11.

Lo stesso programma C:/Ch/demos/bin/scanf.c puo' essere caricato usando il comando File | Apri.

Durante l'esecuzione, questo codice chiede all'utente "Please input a number" e poi genera l'output "Your input number is" con il numero che l'utente ha inserito.



Figura 11: Programma con input dall'utente.

Durante l'esecuzione del programma, l'utente inserisce un numero come mostrato in Figura 12. L'utente inserice il numero nella finestra sia di input che di output. Entrambi i numeri 56, di input e di output sono mostrati in Figura 12.



Figura 12: Esecuzione di un programma con input e output.

Terzo Esempio: Plotting con Ch.

Questo esempio mostra come eseguire un programma/script C/Ch/C++ che crea un grafico usando Ch Professional Edition. Scrivi il codice come mostrato in Figura 13. Lo stesso programma C:/Ch/demos/bin/fplotxy.cpp mostrato in Figura 13 puo' essere aperto usando il comando File | Apri. Quando il programma viene eseguito, crea il grafico mostrato in Figura 14. La funzione che disegna grafici fplotxy() e' disponibile in Ch Professional Edition. Il programma mostrato in Figura 13 usa la funzione fplotxy() per disegnare il grafico di func() con 37 punti e con l'asse x di range da 0 a 360.



Figura 13: Programma che usa fplotxy().



Figura 14: Output del grafico.

La funzione plotxy() e' adatta a disegnare dati contenuti in array di C. Il programma C:/Ch/demos/bin/fplotxy.cpp mostrato in Figura 15 usa array di C per memorizzare dati e visualizzarli su grafico. Quando il programma C:/Ch/demos/bin/plotxy.cpp mostrato in Figura 15 viene aperto e eseguito, crea il grafico mostrato in Figura 14.



Figura 15: Programma che usa plotxy().

La funzione grafica fplotxy() puo' essere usata per disegnare funzioni tridimensionali, funzioni a due variabili come mostrato in Figura 16. Questo programma disegna la funzione cos(x)sin(y) per valori x nel range da -3 a 3 e y nel range da -4 a 4. Il grafico usa 80 punti entrambi x ed y. Quando il programma C:/Ch/demos/bin/fplotxyz.cpp come mostrato in Figura 16 viene aperto ed eseguito, crea il grafico mostrato in Figura 17.



Figura 16: Programma che usa fplotxyz().



Figura 17: Output del programma che usa fplotxyz().

Parametri di Comando e Prompting

ChSciTE ha 4 proprieta' $(1) .. $(4) che possono essere usati per eseguire comandi con parametri modificabili. Per definire i valori dei parametri, usa il comando Visualizza | Parametri per vedere la finestra di dialogo Parametri che mostra i valori correnti di questi parametri e permette di definire nuovi valori. La finestra principale rimane attiva mentre questa di dialogo e' visualizzata, essendo cosi' possibile il suo utilizzo mentre si esegue ripetutamente il comando con parametri differenti. Alernativamente, un comando puo' essere eseguito in modo da visualizzare la finestra di dialogo dei Parametri quando eseguito, facendo partire il comando con '*' che e' altrimenti ignorato. Se i Parametri sono gia' visibili, allora il '*' viene ignorato.

Quarto Esempio con Parametri di Comando.

Questo esempio mostra come eseguire unprogramma/script in C/Ch/C++ con parametri di comando. Digita il codice come mostrato in Figura 18. Questo programma riceve i parametri di comando e li visualizza. I parametri sono dichiarati nel menu Visualizza | Parametri come mostrato in Figura 19 e Figura 20. L'output di esecuzione del programma con parametri di comando e' visualizzato in Figura 21



Figura 18: Programma che riceve parametri di comando.



Figura 19: Setup dei parametri di comando.



Figura 20: Setup dei parametri di comando.



Figura 21: Esecuzione del programma con parametri di comando.

Buffers

ChSciTE ha 20 buffers ognuno contenente un file. Il menu Buffers puo' essere usato per spostarsi tra buffer, o selezionando il nome del file o usando i comandi Precedente (F6) e Successivo (Shift+F6).

Quando tutti i buffer contengono file, allora se si apre un nuovo file si riusa un buffer , e puo' richiedere che il file venga salvato. In questo caso un avvertimento e' visualizzato per assicurare che l'utente voglia salvare il file.

Sessioni

Una sessione e' una lista di nomi di file. Si puo' salvare un completo insieme di buffer attualmente aperti come una sessione, per aprire piu' velocemente in futuro i file. Le sessioni sono memorizzate come file di puro testo con estensione ".ses".

Usare File | Carica Sessione e File | Salva Sessione per caricare e salvare sessioni. Si puo' attivare/disattivare l'auto caricamento dell'ultima sessione usando la variabile delle proprieta' di ChSciTE "save.session".

Per default, la gestione delle sessioni e attiva.

Caricare sessioni precedentemente salvate comporta la chiusura dei buffer attualmente aperti. Comunque non e' possibile perdere il proprio lavoro, perche' verra' chiesto prima di salvare i buffer non salvati.

Aprire uno specifico file da comando di linea non tiene conto della vriabile di stato "save.session". Quando si inizia ChSciTE caricando uno specifico file da comando di linea, l'ultima sessione non viene recuperata anche se la variabile "save.session" e' settata ad "1". Questo rende "save.session" sicuro nell'uso - non verranno mai aperti una coppia di file quando si sta tentando di aprirne solo uno specifico.

Linguaggi riconosciuti da ChSciTE

ChSciTE attualmente e' in grado di riconoscere lo stile di sintassi di questi linguaggi (* specifica il riconoscimento per folding):

  • C/Ch/C++*
  • CSS*
  • HTML*
  • Make
  • SQL e PLSQL
  • TeX e LaTeX
  • XML*

Le impostazioni per il linguaggio sono determinate dall'estensione del file ma possono essere cambiate selezionando un altro linguaggio dal menu Linguaggio. Questo menu puo' essere modificato con la proprieta' menu.language.

Cerca e Sostituisci

ChSciTE offre la possibilita' di ricercare parole ed espressioni regolari. Il carattere di escape backslash nello stile C, che viene usato nella sezione dei parametri della linea di comando, puo' essere usato per cercare e sostituire caratteri di controllo. Sostituzioni possono essere eseguite singolarmente, su una corrente selezione o su tutto l'intero file. Quando sono usate espressioni regolari, nel testo da sostituire possono essere usate sottoespressioni con tag Il confronto tra espressioni regolari non corrisponde se una espressione e' interrotta da una fine di riga.

ChSciTE supporta espressioni regolari di base con tag.

Comandi da tastiera

ChSciTE usa i collegamenti a tasto di default definiti in Scintilla, quindi i comandi da tastiera in ChSciTE nella maggior parte seguono le convenzioni comuni di Windows e GTK+. Tutti i tasti di spostamento (frecce, pagina su/giu', inizio e fine) permettono di estendere o ridurre la zona di selezione quando si tiene premuto Shift, e la selezione rettangolare quando si usa Shift e Alt. Alcuni tasti possono non essere disponibili con qualche tastiera nazionale o perche' sono intercettati dal sistema come per esempio un window manager in GTK+. La configurazione user.shortcuts puo' essere usata per assegnare una funzione ad un tasto. Notare che la funzione di tasto Home e' modificata dalla opzione vc.home.key. Equivalenze di tastiera tra comandi di menu sono elencati nei menu. Qualche comando meno comune senza equivalenza in menu sono:

Eseguire programmi C/Ch/C++.F5
Eseguire il parse di programmi C/Ch/C++.F7
Lancio di shell Ch.Ctrl+F7
Aumentare la dimensione del testo.Ctrl+Keypad+
Ridurre la dimensione del testo.Ctrl+Keypad-
Riportare il testo a dimensione normale.Ctrl+Keypad/
Ciclare attraverso file recenti.Ctrl+Tab
Rientro di un blocco.Tab
Rimuovi un rientro.Shift+Tab
Cancellazione di una parola dall'inizio.Ctrl+BackSpace
Cancellazione di una parola fino alla fine.Ctrl+Delete
Cancella dall'inizio della riga.Ctrl+Shift+BackSpace
Cancella fino alla fine della riga.Ctrl+Shift+Delete
Vai all'inizio del documento.Ctrl+Home
Estendi la selezione fino l'inizio del documento.Ctrl+Shift+Home
Vai all'inizio della riga visualizzata.Alt+Home
Estendi la selezione fino all'inizio della riga visualizzata.Alt+Shift+Home
Vai alla fine del documento.Ctrl+End
Estendi la selezione fino alla fine del documento.Ctrl+Shift+End
Vai alla fine della riga visualizzata.Alt+End
Estendi la selezione fino alla fine della riga visualizzata.Alt+Shift+End
Espandi o contrai un punto di fold.Ctrl+Keypad*
Crea o cancella un segnalibro.Ctrl+F2
Vai al prossimo segnalibro.F2
Seleziona fino al prossimo segnalibro.Alt+F2
Trova selezione.Ctrl+F3
Trova selezione all'indietro.Ctrl+Shift+F3
Scorri verso l'alto.Ctrl+Up
Scorri verso il basso.Ctrl+Down
Taglia riga.Ctrl+L
Copia riga.Ctrl+Shift+T
Elimina riga.Ctrl+Shift+L
Inverti la riga con la precedente.Ctrl+T
Duplica la riga.Ctrl+D
Trova condizionali di preprocessore, saltando quelli annidati.Ctrl+K
Seleziona fino a corrispondenti condizionali di preprocessore.Ctrl+Shift+K
Trova corrispondenti condizionali di preprocessore all'indietro, saltando quelli annidati.Ctrl+J
Seleziona fino a corrispondenti condizionali di preprocessore all'indietro.Ctrl+Shift+J
Paragrafo precedente. Shift estende la selezione.Ctrl+[
Paragrafo successivo. Shift estende la selelzione.Ctrl+]
Parola precedente.Shift estende la selezione.Ctrl+Left
Parola successiva. Shift estende la selezione.Ctrl+Right
Parte precedente della parola. Shift estende la selezione.Ctrl+/
Parte successiva della parola. Shift estende la selezione.Ctrl+\

Abbreviazioni

Per usare una abbreviazione, digitala usa il comando File | Espandi Abbreviazione o il tasto Ctrl+B . L'abbreviazione e' sostituita con un'espansione definita nel file Abbreviazioni. Si puo' aprire il file delle Abbreviazioni con un comando nel menu Opzioni e aggiungere le abbreviazioni.

Ogni riga nei file compare come "abbreviation=expansion".
I nomi delle abbreviazioni possono avere qualsiasi carattere (eccetto forse caratteri di controllo, sicuramente per CR e LF), inclusi caratteri accentati.
I nomi dei file hanno dei limiti: non possono iniziare con sharp (#) o spazio o tab (ma possono avere spazi all'interno); e non possono contenere '='.
I nomi delle abbreviazioni sono limitati a 32 caratteri. E' probabilmente sufficiente per abbreviazioni...

Un espansione puo' contenere caratteri di nuova riga ('\n') e '|'. Per includere '|', usare '||'.
Qualche semplice esempio e' incluso nel file delle Abbreviazioni distribuito.
Quando viene espanso, il nome non necessita di essere separato dal testo precedente. Quindi se si definisce '‰' come '&eacute;', si puo' espandere dentro una parola.
Se il nome e' la fine di un altro, solo il piu' breve verra' espanso. Quindi se si definisce 'ring' e 'gathering', l'ultimo vedra' espansa solo la parte 'ring'.

Folding

ChSciTE supporta il folding per molti linguaggi (vedi la lista dei linguaggi riconosciuti da ChSciTE per maggiori informazioni). I punti di folding sono basati su indentazione per C e sul numero di parentesi graffe per altri linguaggi. Il segno che indica il punto di folding puo' essere cliccato per espandere e contrarre il fold (ripiegamento). Ctrl+Shift+Click nel margine del fold, espande o contrae tutti i fold di livello superiore. Ctrl+Click su un punto di fold per aprirlo/chiuderlo e lo stesso vale per i punti di fold figli. Shift+Click su un punto di fold per mostrare tutti i figli.

Codifica

ChSciTE determina automaticamente lo schema di codifica usato per file Unicode che iniziano con un Byte Order Mark (BOM). Le codifiche UTF-8 e UCS-2 sono riconosciute includendo varianti sia Little Endian che Big Endian di UCS-2.

File UTF-8 sono riconosciuti anche quando contengono un cookie di codifica su una delle prime due righe. Un cookie di codifica e' simile a "coding: utf-8" ("coding" seguito da ':' o '=', spazi opzionali, virgolette opzionali, "utf-8") ed e' normalmente contenuto in un commento:
# -*- coding: utf-8 -*-
Per XML c'e' invece una dichiarazione:
<?xml version='1.0' encoding='utf-8'?>

Per avere altri insiemi di codifica, configurare le proprieta' code.page e character.set.


"Translated into Italiano by Cristian Bertocco cbertocco@dei.unipd.it"