Ito ang command na samplan9 na maaaring patakbuhin sa OnWorks na libreng hosting provider gamit ang isa sa aming maramihang libreng online na workstation gaya ng Ubuntu Online, Fedora Online, Windows online emulator o MAC OS online emulator
PROGRAMA:
NAME
sam, B, E, sam.save, samterm, samsave - editor ng screen na may mga structural na regular na expression
SINOPSIS
Sam [ opsyon ... ] [ file ]
Sam -r makina
sam.save
B file[:linya] ...
E file
DESCRIPTION
Sam ay isang multi-file editor. Binabago nito ang isang lokal na kopya ng isang panlabas na file. Ang kopya ay
dito tinatawag na a file. Ang mga file ay nakalista sa isang menu na magagamit sa pamamagitan ng mouse button 3 o
ang n utos. Ang bawat file ay may nauugnay na pangalan, kadalasan ang pangalan ng panlabas na file
kung saan ito binasa, at isang `modified' bit na nagpapahiwatig kung ang file ng editor
sumasang-ayon sa panlabas na file. Ang panlabas na file ay hindi binabasa sa file ng editor hanggang
ito muna ang naging kasalukuyang file—na kung saan nalalapat ang mga utos sa pag-edit—kung saan ang menu nito
naka-print ang entry. Ang mga pagpipilian ay
-a Autoindent. Sa mode na ito, kapag ang isang bagong linya na character ay nai-type sa terminal
interface, samterm mga kopya na humahantong sa puting espasyo sa kasalukuyang linya patungo sa bagong linya.
-d Huwag `i-download' ang terminal na bahagi ng Sam. Ang pag-edit ay gagawin gamit ang utos
wika lamang, tulad ng sa edNa (1).
-r makina
Patakbuhin ang bahagi ng host nang malayuan sa tinukoy na makina, ang bahagi ng terminal nang lokal.
-s landas
Simulan ang bahagi ng host mula sa tinukoy na file sa remote host. Makahulugan lamang
sa -r pagpipilian.
-t landas
Simulan ang bahagi ng terminal mula sa tinukoy na file. Kapaki-pakinabang para sa pag-debug.
regular mga expression
Ang mga regular na expression ay tulad ng sa regexp(7) kasama ang pagdaragdag ng \n upang kumatawan sa mga bagong linya. A
ang regular na expression ay maaaring hindi maglaman ng literal na bagong linya na character. Ang walang laman na regular
expression ay kumakatawan sa huling kumpletong expression na nakatagpo. Isang regular na ekspresyon sa
Sam tumutugma sa pinakamahabang pinakakaliwang substring na pormal na tinutugma ng expression. Naghahanap
sa baligtad na direksyon ay katumbas ng paghahanap pabalik na may catenation
mga operasyon na binaligtad sa expression.
Address
Tinutukoy ng isang address ang isang substring sa isang file. Sa mga sumusunod, `character n' ibig sabihin ay ang
null string pagkatapos ng n-th character sa file, na may 1 ang unang character sa file.
`Linya n' ibig sabihin ay ang n-th tugma, simula sa simula ng file, ng regular
expression Ang lahat ng mga file ay palaging may kasalukuyang substring, na tinatawag na tuldok, iyon ang default
address.
Simple Address
#n Ang walang laman na string pagkatapos ng character n; #0 ay ang simula ng file.
n Linya n; 0 ay ang simula ng file.
/regexp/
?regexp?
Ang substring na tumutugma sa regular na expression, na makikita sa pamamagitan ng pagtingin sa dulo
(/) o simula (?) ng file, at kung kinakailangan ipagpatuloy ang paghahanap mula sa
kabilang dulo sa panimulang punto ng paghahanap. Maaaring sumaklang ang katugmang substring
ang panimulang punto. Kapag naglalagay ng pattern na naglalaman ng literal na tandang pananong para sa
isang pabalik na paghahanap, ang tandang pananong ay dapat na tukuyin bilang isang miyembro ng isang klase.
0 Ang string bago ang unang buong linya. Ito ay hindi kinakailangan ang null string;
makita + at - sa ibaba.
$ Ang null string sa dulo ng file.
. Tuldok
' Ang marka sa file (tingnan ang k utos sa ibaba).
"regexp"
Nauuna sa isang simpleng address (default .), ay tumutukoy sa address na sinusuri sa
natatanging file na ang linya ng menu ay tumutugma sa regular na expression.
Compound Address
Sa mga sumusunod, a1 at a2 ay mga address.
a1+a2 Ang tirahan a2 nasuri simula sa dulo ng a1.
a1-a2 Ang tirahan a2 sinusuri ang pagtingin sa baligtad na direksyon simula sa simula
of a1.
a1,a2 Ang substring mula sa simula ng a1 hanggang sa dulo ng a2. Kung a1 ay nawawala, 0 is
pinalitan. Kung a2 ay nawawala, $ ay pinalitan.
a1;a2 katulad a1,a2, pero may a2 sinusuri sa dulo ng, at itinakda sa, a1.
Ang mga operator + at - ay mataas ang pangunguna, habang , at ; ay mababa ang pangunguna.
Sa pareho + at - mga form, kung a2 ay isang linya o address ng karakter na may nawawalang numero, ang
numero ay default sa 1. Kung a1 ay nawawala, ay pinalitan. Kung pareho a1 at a2 ay naroroon
at nakikilala, + maaaring matanggal. a2 maaaring isang regular na pagpapahayag; kung ito ay delimited
sa pamamagitan ng epekto ng + or - ay baligtad.
Ito ay isang error para sa isang tambalang address upang kumatawan sa isang malformed substring. Ang ilang mga kapaki-pakinabang
idyoma: a1+- (a1-+) pinipili ang linyang naglalaman ng dulo (simula) ng a1. 0/regexp/
hinahanap ang unang tugma ng expression sa file. (Ang anyo 0;// nagtatakda ng tuldok
hindi kinakailangan.) ./regexp/ / / hinahanap ang pangalawang kasunod na paglitaw ng expression, at
., /regexp/ nagpapalawak ng tuldok.
Command
Sa mga sumusunod, ang text na nademarkahan ng mga slash ay kumakatawan sa text na nililimitahan ng anumang napi-print
character maliban sa alphanumerics. Anumang bilang ng mga sumusunod na delimiter ay maaaring alisin, na may
maramihang elisions pagkatapos ay kumakatawan sa mga null string, ngunit ang unang delimiter ay dapat palaging
kasalukuyan. Sa anumang delimited text, maaaring hindi literal na lumabas ang bagong linya; \n maaaring i-type para sa
bagong linya; at \/ sinipi ang delimiter, dito ang Backslash ay literal na binibigyang kahulugan,
maliban sa s utos.
Karamihan sa mga command ay maaaring prefix ng isang address upang ipahiwatig ang kanilang hanay ng operasyon. Yung
na maaaring hindi ay minarkahan ng nasa ibaba. Kung ang isang utos ay kumuha ng isang address at walang ibinigay,
tuldok ang ginagamit. Ang tanging pagbubukod ay ang w command, na nagde-default sa 0,$. Sa
paglalarawan, ang `range' ay ginagamit upang kumatawan sa anumang address na ibinigay. Maraming utos ang itinakda
ang halaga ng tuldok bilang side effect. Kung gayon, ito ay palaging nakatakda sa `resulta' ng pagbabago:
ang walang laman na string para sa isang pagtanggal, ang bagong teksto para sa isang pagpapasok, atbp. (ngunit tingnan ang s at e
mga utos).
teksto utos
a/teksto/
or
a
linya of teksto
. Ipasok ang teksto sa file pagkatapos ng hanay. Itakda ang tuldok.
c
i Katulad ng a, Ngunit c pinapalitan ang teksto, habang i pagsingit bago ang saklaw
d Tanggalin ang teksto sa hanay. Itakda ang tuldok.
s/regexp/teksto/
Kapalit teksto para sa unang tugma sa regular na expression sa hanay. Itakda
tuldok sa binagong hanay. Sa teksto ang tauhan & ay kumakatawan sa string na
tumugma sa ekspresyon. Ang backslash ay kumikilos gaya ng dati maliban kung sinusundan ng isang digit: \d
ay kumakatawan sa string na tumugma sa subexpression na sinimulan ng d-ika kaliwa
panaklong. Kung s ay sinusundan kaagad ng isang numero n, tulad ng sa s2/x/y/, ang n-ika
ang tugma sa hanay ay pinapalitan. Kung ang utos ay sinusunod ng a g, tulad ng sa
s/x/y/g, lahat ng tugma sa hanay ay pinapalitan.
m a1
t a1 Ilipat (m) o kopyahin (t) ang saklaw hanggang pagkatapos a1. Itakda ang tuldok.
display utos
p I-print ang teksto sa hanay. Itakda ang tuldok.
= I-print ang address ng linya at address ng character ng hanay.
=# I-print lamang ang address ng character ng hanay.
talaksan utos
* b listahan ng file
Itakda ang kasalukuyang file sa unang file na pinangalanan sa listahan na Sam mayroon din sa nito
menu. Maaaring ipahayag ang listahan <Plano 9 utos kung saan ang mga pangalan ng file ay
kinuha bilang mga salita (sa kahulugan ng shell) na nabuo ng utos ng Plan 9.
* B listahan ng file
Katulad ng b, maliban na ang mga pangalan ng file na wala sa menu ay ipinasok doon, at lahat ng file
ang mga pangalan sa listahan ay sinusuri.
* n Mag-print ng menu ng mga file. Ang format ay:
' o blangko na nagpapahiwatig na ang file ay binago o malinis,
- or + na nagpapahiwatig na ang file ay hindi pa nababasa o nabasa na (sa terminal, * paraan
higit sa isang window ang nakabukas),
. o blangko na nagpapahiwatig ng kasalukuyang file,
isang blangko,
at ang pangalan ng file.
* D listahan ng file
Tanggalin ang pinangalanang mga file mula sa menu. Kung walang mga file na pinangalanan, ang kasalukuyang file ay tatanggalin.
Ito ay isang pagkakamali sa D isang binagong file, ngunit isang kasunod D tatanggalin ang naturang file.
I / O Command
* e filename
Palitan ang file ng mga nilalaman ng pinangalanang panlabas na file. Itakda ang tuldok sa
simula ng file.
r filename
Palitan ang teksto sa hanay ng mga nilalaman ng pinangalanang panlabas na file. Itakda ang tuldok.
w filename
Isulat ang hanay (default 0,$) sa pinangalanang panlabas na file.
* f filename
Itakda ang pangalan ng file at i-print ang resultang entry sa menu.
Kung ang pangalan ng file ay wala sa alinman sa mga ito, ang kasalukuyang pangalan ng file ay ginagamit. e palagi
nagtatakda ng pangalan ng file; r at w gawin ito kung ang file ay walang pangalan.
< Plano 9-utos
Palitan ang hanay ng karaniwang output ng utos ng Plan 9.
> Plano 9-utos
Ipadala ang hanay sa karaniwang input ng utos ng Plan 9.
| Plano 9-utos
Ipadala ang hanay sa karaniwang input, at palitan ito ng karaniwang output, ng
Plano 9 na utos.
* ! Plano 9-utos
Patakbuhin ang utos ng Plan 9.
* cd direktoryo
Baguhin ang gumaganang direktoryo. Kung walang tinukoy na direktoryo, $bahay Ginagamit.
Sa alinman sa <, >, | or !, kung ang Plano 9 utos ay tinanggal ang huli Plano 9 utos (ng alinman
uri) ay pinapalitan. Kung Sam is nai-download (gamit ang mouse at raster display, ibig sabihin, hindi
gamit ang opsyon -d), ! nagtatakda ng karaniwang input sa / dev / null, at kung hindi man ay hindi nakatalagang output
(stdout para ! at >, stderr para sa lahat) ay inilagay sa /tmp/sam.err at ang mga unang linya
ay nakalimbag.
loops at Mga kalagayan
x/regexp/ utos
Para sa bawat tugma ng regular na expression sa hanay, patakbuhin ang command na may set ng tuldok
sa laban. Itakda ang tuldok sa huling laban. Kung ang regular na expression at nito
ang mga slash ay tinanggal, ay ipinapalagay. Ang mga null string na tugma ay posibleng mangyari bago
bawat karakter ng hanay at sa dulo ng hanay.
y/regexp/ utos
katulad x, ngunit patakbuhin ang command para sa bawat substring na nasa unahan, pagitan, o pagkatapos
ang mga tugma na bubuo ng x. Walang default na regular na expression.
Ang mga null substring ay posibleng mangyari bago ang bawat karakter sa hanay.
* X/regexp/ utos
Para sa bawat file na ang entry sa menu ay tumutugma sa regular na expression, gawin iyon ang
kasalukuyang file at patakbuhin ang command. Kung ang expression ay tinanggal, ang command ay tatakbo
sa bawat file.
* Y/regexp/ utos
Katulad ng X, ngunit para sa mga file na hindi tumutugma sa regular na expression, at ang
kailangan ang pagpapahayag.
g/regexp/ utos
v/regexp/ utos
Kung ang saklaw ay naglalaman ng (g) o hindi naglalaman ng (v) isang tugma para sa expression, set
tuldok sa hanay at patakbuhin ang command.
Ang mga ito ay maaaring naka-nest nang di-makatwirang malalim, ngunit isang pagkakataon lamang ng alinman X or Y maaaring magpakita
sa iisang utos. Isang walang laman na utos sa isang x or y default sa p; isang walang laman na utos sa X
or Y default sa f. g at v walang mga default.
Miscellany
k Itakda ang marka ng kasalukuyang file sa hanay. Hindi nagtatakda ng tuldok.
* q quit. Ito ay isang error na huminto sa binagong mga file, ngunit isang segundo q ay magtatagumpay.
* u n I-undo ang huli n (default 1) mga top-level na command na nagpabago sa mga nilalaman o pangalan ng
ang kasalukuyang file, at anumang iba pang file na ang pinakahuling pagbabago ay kasabay ng
pagbabago ng kasalukuyang file. Sunod-sunod u's paglipat ng karagdagang pabalik sa panahon. Ang nag-iisang
mga utos kung saan hindi ka epektibo cd, u, q, w at D. Kung n ay negatibo, u
`redoes,' ina-undo ang undo, pasulong sa oras muli.
(walang laman)
Kung tahasan ang hanay, itakda ang tuldok sa hanay. Kung Sam ay nai-download, ang
ang resultang tuldok ay pinili sa screen; kung hindi ito ay nakalimbag. Kung walang address
tinukoy (ang utos ay isang bagong linya) ang tuldok ay pinalawak sa alinmang direksyon patungo sa linya
mga hangganan at nakalimbag. Kung ang tuldok ay hindi nagbabago, ito ay nakatakda sa .+1 at nakalimbag.
Pagpapangkat at maramihang mga pagbabago
Maaaring pangkatin ang mga utos sa pamamagitan ng paglalagay sa kanila ng mga braces {}. Ang mga utos sa loob ng braces ay dapat
lalabas sa magkahiwalay na linya (walang backslashes ang kinakailangan sa pagitan ng mga command). Semantically, isang
Ang pambungad na brace ay tulad ng isang utos: nangangailangan ito ng isang (opsyonal) na address at nagtatakda ng tuldok para sa bawat sub-
utos. Ang mga utos sa loob ng mga brace ay isinasagawa nang sunud-sunod, ngunit ang mga pagbabago ay ginawa ng isa
command ay hindi nakikita ng iba pang mga command (tingnan ang susunod na talata). Maaaring nested ang mga braces
arbitraryo
Kapag ang isang utos ay gumawa ng isang bilang ng mga pagbabago sa isang file, tulad ng sa x/re/c/text/, ang mga address ng
lahat ng mga pagbabago sa file ay nakalkula sa orihinal na file. Kung ang mga pagbabago ay nasa
pagkakasunud-sunod, inilapat ang mga ito sa file. Ang mga sunud-sunod na pagpapasok sa parehong address ay
naka-catenate sa iisang insertion na binubuo ng ilang insertion sa pagkakasunod-sunod na inilapat.
Ang pandulo
Ang sumusunod ay tumutukoy sa pag-uugali ng Sam kapag na-download, ibig sabihin, kapag nagpapatakbo bilang a
display editor sa isang raster display. Ito ang default na pag-uugali; panawagan Sam sa
-d (walang download) na opsyon ay nagbibigay ng access sa command language lamang.
Ang bawat file ay maaaring may zero o higit pang mga window na nakabukas. Ang bawat window ay katumbas at ina-update
kasabay ng mga pagbabago sa iba pang mga window sa parehong file. Ang bawat bintana ay may
independiyenteng halaga ng tuldok, na ipinapahiwatig ng isang naka-highlight na substring sa display. Maaaring tuldok
sa isang rehiyon na wala sa loob ng bintana. Karaniwang mayroong `kasalukuyang window', na may marka ng a
madilim na hangganan, kung saan nalalapat ang nai-type na teksto at mga utos sa pag-edit. Maaaring i-type at i-edit ang teksto
tulad ng sa Rio(1); pinipili din ng escape key (ESC) ang (itinatakda ang tuldok sa) tekstong nai-type mula noong huli
pindutin ang mouse button.
Kinokontrol ng menu ng button 3 ang mga pagpapatakbo ng window. Ang tuktok ng menu ay nagbibigay ng sumusunod
mga operator, na ang bawat isa ay gumagamit ng isa o higit pa Rio-tulad ng mga cursor upang i-prompt para sa pagpili ng a
bintana o pagwawalis ng isang parihaba. Ang `pagwawalis' sa isang null rectangle ay makakakuha ng malaking bintana,
magkahiwalay mula sa command window o sa buong screen, depende sa kung saan ang null
parihaba ay.
bago Gumawa ng bago at walang laman na file.
zerox Gumawa ng kopya ng isang umiiral na window.
baguhin ang sukat Tulad ng sa Rio.
malapit Tanggalin ang window. Sa huling window ng isang file, malapit ay katumbas ng isang D para
ang file
magsulat Katumbas ng a w para sa file.
Sa ibaba ng mga operator na ito ay isang listahan ng mga available na file, simula sa ~~sam~~, ang utos
bintana. Ang pagpili ng file mula sa listahan ay gumagawa ng pinakakamakailang ginamit na window sa file na iyon
kasalukuyang, maliban kung ito ay kasalukuyan na, kung saan ang mga seleksyon ay umiikot sa bukas
mga bintana. Kung walang bukas na mga window sa file, ipo-prompt ang user na magbukas ng isa. Mga file
bukod sa ~~sam~~ ay minarkahan ng isa sa mga karakter -+* ayon sa zero, isa, o
mas maraming bintana ang nakabukas sa file. Ang isang karagdagang marka ay lilitaw sa file sa kasalukuyang
window at isang quote, ', sa isang file na binago mula noong huling pagsulat.
Ang command window, awtomatikong nilikha kapag Sam nagsisimula, ay isang ordinaryong window maliban
ang tekstong na-type dito ay binibigyang-kahulugan bilang mga utos para sa editor sa halip na passive text,
at ang tekstong nakalimbag ng mga utos ng editor ay lilitaw dito. Ang ugali ay parang Rio, kasama ang
`output point' na naghihiwalay sa mga command na tina-type mula sa nakaraang output. Na-type ang mga utos
sa command window ay ilapat sa kasalukuyang nakabukas na file—ang file sa pinakahuling kasalukuyang
window.
Manipulasyon teksto
Binabago ng Button 1 ang pagpili, katulad ng Rio. Pagturo sa isang hindi kasalukuyang window na may button 1
ginagawa itong kasalukuyang; sa loob ng kasalukuyang window, pinipili ng button 1 ang text, kaya nagtatakda ng tuldok.
Ang pag-double click ay pumipili ng teksto sa mga hangganan ng mga salita, linya, naka-quote na mga string o
naka-bracket na mga string, depende sa text sa pag-click.
Ang Button 2 ay nagbibigay ng menu ng mga utos sa pag-edit:
bawasan Tanggalin ang tuldok at i-save ang tinanggal na text sa snarf buffer.
ilagay Palitan ang teksto sa tuldok ng mga nilalaman ng snarf buffer.
singhal I-save ang text sa tuldok sa snarf buffer.
tubo Ipadala ang text sa seleksyon bilang isang plumb message. Kung walang laman ang pagpili, ang
ipinapadala ang white-space-delimited block ng text bilang isang plumb message na may a mag-click
katangian na tumutukoy kung saan matatagpuan ang pagpili (tingnan tubo(7)).
tumingin Maghanap pasulong para sa susunod na paglitaw ng literal na teksto sa tuldok. Kung ang tuldok ay ang
null string, ang teksto sa snarf buffer ay ginagamit. Ang snarf buffer ay hindi naaapektuhan.
Magpalitan ng mga snarf buffer gamit ang Rio.
/regexp
Maghanap para sa susunod na tugma ng huling regular na expression na nai-type sa a
utos. (Wala sa command window.)
magpadala Ipadala ang teksto sa tuldok, o ang snarf buffer kung ang tuldok ay ang null string, na parang ito ay
nai-type sa command window. Sine-save ang ipinadalang text sa snarf buffer. (Utos
bintana lang.)
panlabas Komunikasyon
Sam nakikinig sa i-edit tubo port. Kung hindi aktibo ang pagtutubero, sa invocation Sam lumilikha
isang pinangalanang tubo /srv/sam.gumagamit na nagsisilbing karagdagang mapagkukunan ng mga utos. Mga tauhan
Ang nakasulat sa pinangalanang pipe ay itinuturing na parang nai-type sila sa command window.
B ay isang shell-level na command na nagiging sanhi ng isang instance ng Sam tumatakbo sa parehong terminal sa
load ang pinangalanan file. B gumagamit ng alinman sa pagtutubero o ang pinangalanang tubo, alinman ang serbisyo
magagamit. Kung ang pagtutubero ay hindi pinagana, pinapayagan ng opsyon na tukuyin ang numero ng linya
para maipakita ang paunang posisyon sa huling pinangalanang file (nagbibigay ang pagtutubero ng higit pa
pangkalahatang mekanismo para sa kakayahang ito).
E ay isang shell-level na command na maaaring gamitin bilang $ EDITOR sa isang kapaligiran ng Unix. Tumatakbo ito B
on file at pagkatapos ay hindi lalabas hanggang file ay binago, na kinuha bilang isang senyas na file
tapos na sa pag-edit.
Kulang ang isip pagwawakas
If Sam nagtatapos maliban sa pamamagitan ng a q command (sa pamamagitan ng hangup, pagtanggal ng window nito, atbp.),
ang mga binagong file ay nai-save sa isang executable na file, $HOME/sam.save. Ang programang ito, kapag
naisakatuparan, nagtatanong kung isusulat ang bawat file pabalik sa isang panlabas na file. Ang sagot ay sanhi
pagsulat; anumang bagay na lumalaktaw sa file.
Gumamit ng samplan9 online gamit ang mga serbisyo ng onworks.net