Questo è il comando samplan9 che può essere eseguito nel provider di hosting gratuito OnWorks utilizzando una delle nostre molteplici workstation online gratuite come Ubuntu Online, Fedora Online, emulatore online Windows o emulatore online MAC OS
PROGRAMMA:
NOME
sam, B, E, sam.save, samterm, samsave - editor di schermate con espressioni regolari strutturali
SINOSSI
sam [ opzione ... ] [ file ]
sam -r macchina
sam.salva
B filetto[:linea]...
E filetto
DESCRIZIONE
Sam è un editor multi-file. Modifica una copia locale di un file esterno. La copia è
qui chiamato a filetto. I file sono elencati in un menu accessibile tramite il pulsante del mouse 3 o
, il n comando. Ogni file ha un nome associato, solitamente il nome del file esterno
da cui è stato letto e un bit "modificato" che indica se il file dell'editor
concorda con il file esterno. Il file esterno non viene letto nel file dell'editor fino a quando
diventa prima il file corrente, quello a cui si applicano i comandi di modifica, e poi il suo menu
la voce viene stampata. Le opzioni sono
-a Indentazione automatica. In questa modalità, quando viene digitato un carattere di nuova riga nel terminale
interfaccia, samterm copia lo spazio bianco iniziale della riga corrente nella nuova riga.
-d Non "scaricare" la parte terminale di sam. La modifica verrà eseguita con il comando
solo lingua, come in ed(1).
-r macchina
Esegui la parte host in remoto sulla macchina specificata, la parte terminale localmente.
-s sentiero
Avvia la parte host dal file specificato sull'host remoto. Solo significativo
con la -r opzione.
-t sentiero
Avvia la parte terminale dal file specificato. Utile per il debug.
Regular espressioni
Le espressioni regolari sono come in regexp(7) con l'aggiunta di \n per rappresentare i ritorni a capo. UN
l'espressione regolare non può mai contenere un carattere letterale di nuova riga. Il vuoto regolare
espressione rappresenta l'ultima espressione completa incontrata. Un'espressione regolare in
sam corrisponde alla sottostringa più lunga all'estrema sinistra formalmente corrispondente all'espressione. Ricerca
in senso inverso equivale a cercare all'indietro con la catenazione
operazioni invertite nell'espressione.
Indirizzi
Un indirizzo identifica una sottostringa in un file. Di seguito, "carattere". n' significa il
stringa nulla dopo il n-esimo carattere nel file, con 1 il primo carattere nel file.
"Linea." n' significa il n-esima corrispondenza, a partire dall'inizio del file, del normale
espressione Tutti i file hanno sempre una sottostringa corrente, chiamata punto, che è l'impostazione predefinita
indirizzo.
Semplice Indirizzi
#n La stringa vuota dopo il carattere n; #0 è l'inizio del file.
n Line n; 0 è l'inizio del file.
/regexp/
?regexp?
La sottostringa che corrisponde all'espressione regolare, trovata guardando verso la fine
(/) o dall'inizio (?) del file, e se necessario continuando la ricerca dal file
dall'altra estremità al punto di partenza della ricerca. La sottostringa corrispondente può essere a cavallo
il punto di partenza. Quando si immette un modello contenente un punto interrogativo letterale per
una ricerca all'indietro, il punto interrogativo deve essere specificato come membro di una classe.
0 La stringa prima della prima riga completa. Questa non è necessariamente la stringa nulla;
vedere + e - qua sotto.
$ La stringa nulla alla fine del file.
. Punto.
' Il segno nel file (vedi k comando sotto).
"regexp"
Precedere un indirizzo semplice (default .), si riferisce all'indirizzo valutato nel
file univoco la cui riga di menu corrisponde all'espressione regolare.
Compound Indirizzi
Nel seguente, a1 e a2 sono indirizzi.
a1+a2 L'indirizzo a2 valutato a partire dalla fine del a1.
a1-a2 L'indirizzo a2 valutato guardando nella direzione opposta partendo dall'inizio
of a1.
a1,a2 La sottostringa dall'inizio di a1 fino alla fine di a2. Se a1 manca, 0 is
sostituito. Se a2 manca, $ è sostituito.
a1;a2 Come a1,a2, ma con a2 valutato alla fine di e punto impostato su a1.
Gli operatori + e - hanno la precedenza alta, mentre , e ; hanno la precedenza bassa.
In entrambe + e - forme, se a2 è un indirizzo di riga o di carattere con un numero mancante, il
il numero predefinito è 1. Se a1 manca, viene sostituito. Se entrambi a1 e a2 sono presenti
e distinguibile, + può essere eliso. a2 può essere un'espressione regolare; se è delimitato
per effetto del + or - è invertito.
È un errore che un indirizzo composto rappresenti una sottostringa non valida. Alcuni utili
idiomi: a1+- (a1-+) seleziona la riga contenente la fine (inizio) di a1. 0/regexp/
individua la prima corrispondenza dell'espressione nel file. (Il modulo 0;// imposta il punto
inutilmente.) ./regexp/ / / trova la seconda occorrenza successiva dell'espressione, e
.,/regexp/ estende il punto.
Comandi
Di seguito, il testo delimitato da barre rappresenta il testo delimitato da qualsiasi stampabile
carattere tranne quelli alfanumerici. È possibile eliminare un numero qualsiasi di delimitatori finali, con
elisioni multiple quindi che rappresentano stringhe nulle, ma il primo delimitatore deve sempre esserlo
presente. In qualsiasi testo delimitato, il ritorno a capo potrebbe non apparire letteralmente; \n può essere digitato
nuova linea; E \/ cita il delimitatore, qui la barra rovesciata viene altrimenti interpretata letteralmente,
tranne in s comandi.
La maggior parte dei comandi può essere preceduta da un indirizzo per indicare il loro raggio d'azione. Quelli
che potrebbero non essere contrassegnati con il simbolo seguente. Se un comando accetta un indirizzo e non ne viene fornito nessuno,
viene utilizzato il punto. L'unica eccezione è il w comando, che per impostazione predefinita è 0, $. Nel
descrizione, `range' viene utilizzato per rappresentare qualunque indirizzo venga fornito. Molti comandi impostati
il valore del punto come effetto collaterale. Se è così, è sempre impostato sul "risultato" della modifica:
la stringa vuota per una cancellazione, il nuovo testo per un inserimento, ecc. (ma vedi il s e e
comandi).
Testo comandi
a/testo/
or
a
Linee of testo
. Inserisci il testo nel file dopo l'intervallo. Imposta il punto.
c
i Uguale a a, ma c sostituisce il testo, mentre i Inserti prima la gamma.
d Elimina il testo nell'intervallo. Imposta il punto.
s/regexp/testo/
Sostituire testo per la prima corrispondenza con l'espressione regolare nell'intervallo. Impostato
punto nell'intervallo modificato. In testo il personaggio & sta per la stringa that
corrispondeva all'espressione. La barra rovesciata si comporta come al solito a meno che non sia seguita da una cifra: \d
sta per la stringa che corrisponde alla sottoespressione iniziata da d-esimo a sinistra
parentesi. Se s è seguito immediatamente da un numero n, come in s2/x/y/, l' n-esimo
la corrispondenza nell'intervallo viene sostituita. Se il comando è seguito da a g, come in
s/x/y/g, tutte le corrispondenze nell'intervallo vengono sostituite.
m a1
t a1 Mossa (m) o copiare (t) l'intervallo successivo a1. Imposta il punto.
Display comandi
p Stampa il testo nell'intervallo. Imposta il punto.
= Stampa l'indirizzo di riga e l'indirizzo di carattere dell'intervallo.
=# Stampa solo l'indirizzo dei caratteri dell'intervallo.
Compila il comandi
* b elenco file
Imposta il file corrente sul primo file nominato nell'elenco che sam ha anche nel suo
menù. L'elenco può essere espresso <Pianifica 9 command nel qual caso i nomi dei file sono
prese come parole (nel senso della shell) generate dal comando Plan 9.
* B elenco file
Uguale a b, tranne che i nomi dei file non presenti nel menu vengono inseriti lì e tutti i file
vengono esaminati i nomi presenti nell'elenco.
* n Stampa un menu di file. Il formato è:
' o vuoto che indica che il file è stato modificato o pulito,
- or + indicando che il file non è letto o è stato letto (nel terminale, * si intende
è aperta più di una finestra),
. o vuoto che indica il file corrente,
uno spazio vuoto,
e il nome del file.
* D elenco file
Elimina i file nominati dal menu. Se non viene nominato alcun file, il file corrente viene eliminato.
È un errore D un file modificato, ma uno successivo D eliminerà tale file.
I / O Comandi
* e Nome del file
Sostituisci il file con il contenuto del file esterno denominato. Imposta il punto su
inizio del file.
r Nome del file
Sostituisci il testo nell'intervallo con il contenuto del file esterno denominato. Imposta il punto.
w Nome del file
Scrivere l'intervallo (default 0, $) al file esterno denominato.
* f Nome del file
Imposta il nome del file e stampa la voce di menu risultante.
Se il nome del file è assente in uno di questi, viene utilizzato il nome del file corrente. e sempre
imposta il nome del file; r e w farlo se il file non ha nome.
< Pianifica 9-comando
Sostituisci l'intervallo con l'output standard del comando Plan 9.
> Pianifica 9-comando
Invia l'intervallo allo standard input del comando Plan 9.
| Pianifica 9-comando
Invia l'intervallo allo standard input e sostituiscilo con lo standard output di
Comando del piano 9.
* ! Pianifica 9-comando
Esegui il comando Piano 9.
* cd elenco
Cambia directory di lavoro. Se non viene specificata alcuna directory, $casa viene utilizzato.
In qualsiasi di <, >, | or !, Se l' Pianifica 9 command viene omesso l'ultimo Pianifica 9 command (di qualsiasi
tipo) viene sostituito. Se sam is scaricata (usando il mouse e la visualizzazione raster, cioè no
usando l'opzione -d), ! imposta l'input standard su / Dev / nulle output altrimenti non assegnato
(stdout da ! e >, stderr per tutti) è inserito /tmp/sam.err e le prime righe
sono stampati.
Loops e Condizionali
x/regexp/ command
Per ogni corrispondenza dell'espressione regolare nell'intervallo, esegui il comando con il punto impostato
alla partita. Imposta il punto sull'ultima corrispondenza. Se l'espressione regolare e il suo
si presuppone che le barre siano omesse. Le corrispondenze di stringhe nulle potrebbero verificarsi prima
ogni carattere dell'intervallo e alla fine dell'intervallo.
y/regexp/ command
Come x, ma esegui il comando per ogni sottostringa che si trova prima, tra o dopo
le corrispondenze che verrebbero generate da x. Non esiste un'espressione regolare predefinita.
Le sottostringhe nulle sono potenzialmente presenti prima di ogni carattere nell'intervallo.
* X/regexp/ command
Per ogni file la cui voce di menu corrisponde all'espressione regolare, imposta che the
file corrente ed eseguire il comando. Se l'espressione viene omessa, il comando viene eseguito
in ogni file.
* Y/regexp/ command
Uguale a X, ma per i file che non corrispondono all'espressione regolare e al
è richiesta l'espressione.
g/regexp/ command
v/regexp/ command
Se l'intervallo contiene (g) o non contiene (v) una corrispondenza per l'espressione, set
punto nell'intervallo ed esegui il comando.
Questi possono essere annidati arbitrariamente in profondità, ma solo un'istanza di entrambi X or Y potrebbe apparire
in un unico comando. Un comando vuoto in an x or y il valore predefinito è p; un comando vuoto in X
or Y il valore predefinito è f. g e v non hanno valori predefiniti.
miscellanea
k Imposta il contrassegno del file corrente sull'intervallo. Non imposta il punto.
* q Esentato. È un errore uscire con i file modificati, ma un secondo q avrà successo.
* u n Annulla l'ultimo n (default 1) comandi di livello superiore di cui è stato modificato il contenuto o il nome
il file corrente e qualsiasi altro file la cui modifica più recente è stata simultanea
la modifica del file corrente. Successivo uci spostiamo ancora più indietro nel tempo. L'unica
i comandi per i quali u è inefficace lo sono cd, u, q, w e D. Se n è negativo, u
"rifa", disfare l'annullamento, andare di nuovo avanti nel tempo.
(Vuoto)
Se l'intervallo è esplicito, imposta il punto sull'intervallo. Se sam viene scaricato, il
il punto risultante viene selezionato sullo schermo; altrimenti viene stampato. Se nessun indirizzo lo è
il punto specificato (il comando è una nuova riga) viene esteso in entrambe le direzioni fino alla riga
confini e stampati. Se il punto rimane invariato, viene impostato su . + 1 e stampato.
Raggruppamento e multiplo i cambiamenti
I comandi possono essere raggruppati racchiudendoli tra parentesi graffe {}. I comandi tra parentesi graffe must
appaiono su righe separate (non sono richieste barre rovesciate tra i comandi). Semanticamente, an
la parentesi graffa aperta è come un comando: prende un indirizzo (opzionale) e imposta un punto per ogni sotto-
comando. I comandi tra parentesi graffe vengono eseguiti in sequenza, ma le modifiche vengono apportate uno dopo l'altro
non sono visibili agli altri comandi (vedi paragrafo successivo). Le parentesi graffe possono essere nidificate
arbitrariamente.
Quando un comando apporta una serie di modifiche a un file, come in x/re/c/testo/, gli indirizzi di
tutte le modifiche al file vengono calcolate nel file originale. Se ci sono cambiamenti
sequenza, vengono applicati al file. Inserzioni successive allo stesso indirizzo sono
concatenati in un'unica inserzione composta dalle varie inserzioni nell'ordine applicato.
. terminale
Quanto segue si riferisce al comportamento di sam quando scaricato, cioè quando si opera come a
editor di visualizzazione su un display raster. Questo è il comportamento predefinito; invocando sam con la
-d (nessun download) l'opzione fornisce l'accesso solo al linguaggio di comando.
Ogni file può avere zero o più finestre aperte. Ogni finestra è equivalente e viene aggiornata
contemporaneamente alle modifiche in altre finestre sullo stesso file. Ogni finestra ha un
valore indipendente del punto, indicato da una sottostringa evidenziata sul display. Il punto potrebbe esserlo
in una regione non all'interno della finestra. Di solito c'è una "finestra corrente", contrassegnata con a
bordo scuro, al quale si applicano il testo digitato e i comandi di modifica. Il testo può essere digitato e modificato
come in rio(1); anche il tasto Esc (ESC) seleziona (imposta il punto su) il testo digitato dall'ultimo
premuto il pulsante del mouse.
Il menu del pulsante 3 controlla le operazioni della finestra. La parte superiore del menu fornisce quanto segue
operatori, ciascuno dei quali ne utilizza uno o più rio-cursori simili per richiedere la selezione di a
finestra o lo spostamento di un rettangolo. `Spazzando' un rettangolo nullo si ottiene una grande finestra,
disgiunto dalla finestra di comando o dall'intero schermo, a seconda di dove si trova il valore null
il rettangolo è.
nuovi Crea un nuovo file vuoto.
zerox Crea una copia di una finestra esistente.
ridimensionare Come in rio.
close Elimina la finestra. Nell'ultima finestra di un file, close è equivalente a un D da
il file.
scrivere Equivalente a a w per il file.
Sotto questi operatori c'è un elenco dei file disponibili, a partire da ~~sam~~, il comando
finestra. Selezionando un file dall'elenco viene visualizzata la finestra utilizzata più di recente su quel file
corrente, a meno che non sia già corrente, nel qual caso le selezioni passano attraverso l'apertura
finestre. Se sul file non sono aperte finestre, all'utente viene richiesto di aprirne una. File
diverso ~~sam~~ sono contrassegnati con uno dei caratteri -+* secondo come zero, uno o
sul file sono aperte più finestre. Sul file corrente appare un ulteriore contrassegno
finestra e una virgoletta singola, ', su un file modificato dall'ultima scrittura.
La finestra di comando, creata automaticamente quando sam inizia, è una finestra normale tranne
che il testo digitato venga interpretato come comandi per l'editor piuttosto che come testo passivo,
e al suo interno appare il testo stampato dai comandi dell'editor. Il comportamento è come rio, Con uno
"punto di output" che separa i comandi digitati dall'output precedente. Comandi digitati
nella finestra di comando si applicano al file attualmente aperto: il file corrente più recentemente
finestra.
Manipolazione testo
Il pulsante 1 cambia la selezione, in modo molto simile rio. Puntando a una finestra non corrente con il pulsante 1
lo rende attuale; all'interno della finestra corrente, il pulsante 1 seleziona il testo, impostando quindi il punto.
Facendo doppio clic si seleziona il testo fino ai limiti di parole, righe, stringhe tra virgolette o
stringhe tra parentesi, a seconda del testo al momento del clic.
Il pulsante 2 fornisce un menu di comandi di modifica:
taglio Elimina il punto e salva il testo eliminato nel buffer di snarf.
incolla Sostituisci il testo in punto con il contenuto del buffer snarf.
ringhio Salva il testo in punti nel buffer snarf.
portare Invia il testo nella selezione come messaggio a piombo. Se la selezione è vuota, il
il blocco di testo delimitato da spazi bianchi viene inviato come messaggio a piombo con a clicca
attributo che definisce dove si trova la selezione (vedi portare(7)).
Dai un'occhiata Cerca in avanti la successiva occorrenza del testo letterale in punto. Se il punto è il
stringa nulla, viene utilizzato il testo nel buffer snarf. Il buffer snarf non è interessato.
Scambia buffer snarf con rio.
/regexp
Cerca in avanti la corrispondenza successiva dell'ultima espressione regolare digitata in a
comando. (Non nella finestra di comando.)
invia Invia il testo in punto o il buffer snarf se punto è la stringa nulla, come se lo fosse
digitato nella finestra di comando. Salva il testo inviato nel buffer snarf. (Comando
solo finestra.)
Esterno in termini di comunicazione
Sam ascolta il edit porta a piombo. Se l'impianto idraulico non è attivo, su invocazione sam crea
una pipa con nome /srv/sam.Utente che funge da ulteriore fonte di comandi. Caratteri
scritti nella pipe denominata vengono trattati come se fossero stati digitati nella finestra di comando.
B è un comando a livello di shell che provoca un'istanza di sam in esecuzione sullo stesso terminale a
caricare il nome file. B utilizza l'impianto idraulico o la tubazione denominata, a seconda di quale servizio sia
disponibile. Se l'impianto idraulico non è abilitato, l'opzione consente di specificare un numero di linea
per visualizzare la posizione iniziale nell'ultimo file denominato (l'impianto idraulico fornisce un more
meccanismo generale di questa capacità).
E è un comando a livello di shell che può essere utilizzato come $ EDITOR in ambiente Unix. Corre B
on filetto e poi non esce finché filetto è cambiato, il che viene preso come un segnale che filetto
la modifica è terminata.
Anormale fine
If sam termina se non con a q comando (riagganciando, cancellando la sua finestra, ecc.),
i file modificati vengono salvati in un file eseguibile, $HOME/sam.salva. Questo programma, quando
eseguito, chiede se riscrivere ciascun file su un file esterno. La risposta causa
scrivere; qualsiasi altra cosa salta il file.
Utilizza samplan9 online utilizzando i servizi onworks.net