ex(1p): Skillnad mellan sidversioner
Admin (diskussion | bidrag) (Skapade sidan med 'Jag behöver dela upp den här manualsidan, eftersom `ex(1p)` är mycket längre än de tidigare sidorna. Här är **del 1**, i svensk MediaWiki-form, från början till och med inledningen av **Utökad beskrivning**. == ex(1p) == '''ex(1p)''' — POSIX Programmer's Manual == PROLOG == Denna manualsida är en del av ''POSIX Programmer's Manual''. Linux-implementeringen av detta gränssnitt kan skilja sig åt; se motsvarande Linux-manualsida för detaljer om Linux-bet...') |
Admin (diskussion | bidrag) |
||
| (4 mellanliggande sidversioner av samma användare visas inte) | |||
| Rad 1: | Rad 1: | ||
== PROLOG == | == PROLOG == | ||
| Rad 868: | Rad 863: | ||
Innehållet i redigeringsbufferten ska ersättas med innehållet i filen som namnges av aktuell sökväg. | Innehållet i redigeringsbufferten ska ersättas med innehållet i filen som namnges av aktuell sökväg. | ||
== Fortsättning == | == Fortsättning: Kommandobeskrivningar i ex == | ||
=== Set === | |||
<pre> | |||
se[t][option[=[value]] ...][nooption ...][option? ...][all] | |||
</pre> | |||
När inga argument anges, skriv värdet för redigeringsflaggan '''term''' samt de flaggor vars värden har ändrats från standardinställningarna. När argumentet ''all'' anges, skriv alla flaggvärden. | |||
Om ett flaggnamn följs av tecknet '''?''' ska det aktuella värdet för den flaggan skrivas. Tecknet '''?''' kan separeras från flaggnamnet med noll eller flera blanka tecken. Tecknet '''?''' ska endast behövas för booleska flaggor. | |||
Booleska flaggor kan ges värden med formen: | |||
<pre> | |||
set option | |||
</pre> | |||
för att slå på dem, eller: | |||
<pre> | |||
set nooption | |||
</pre> | |||
för att slå av dem. | |||
Sträng- och numeriska flaggor kan tilldelas med formen: | |||
<pre> | |||
set option=value | |||
</pre> | |||
Blanka tecken i strängar kan inkluderas genom att varje blankt tecken föregås av ett escapande backslash. Mer än en flagga kan sättas eller listas med ett enda '''set'''-kommando genom att ange flera argument, där varje argument separeras från nästa med ett eller flera blanka tecken. | |||
Se **Redigeringsflaggor i ex** för detaljer om specifika flaggor. | |||
''Aktuell rad'': oförändrad. | |||
''Aktuell kolumn'': oförändrad. | |||
=== Shell === | |||
<pre> | |||
sh[ell] | |||
</pre> | |||
Anropa programmet som anges i redigeringsflaggan '''shell''' med det enda argumentet '''-i''', det vill säga interaktivt läge. Redigeringen återupptas när programmet avslutas. | |||
''Aktuell rad'': oförändrad. | |||
''Aktuell kolumn'': oförändrad. | |||
=== Source === | |||
<pre> | |||
so[urce] fil | |||
</pre> | |||
Läs och kör '''ex'''-kommandon från ''fil''. Tomma rader i filen ska ignoreras. | |||
''Aktuell rad'': enligt de enskilda '''ex'''-kommandona. | |||
''Aktuell kolumn'': enligt de enskilda '''ex'''-kommandona. | |||
=== Substitute === | |||
<pre> | |||
[2addr] s[ubstitute][/pattern/repl/[options][count][flags]] | |||
[2addr] &[options][count][flags]] | |||
[2addr] ~[options][count][flags]] | |||
</pre> | |||
Ersätt den första förekomsten av mönstret ''pattern'' med strängen ''repl'' på varje angiven rad. Se **Reguljära uttryck i ex** och **Ersättningssträngar i ex**. Vilket icke-alfabetiskt och icke-blankt avgränsningstecken som helst, utom backslash, vertikalstreck, radslut eller dubbelt citationstecken, kan användas i stället för '''/'''. Backslash-tecken kan användas för att escape:a avgränsare, backslash-tecken och andra specialtecken. | |||
Den avslutande avgränsaren kan utelämnas från ''pattern'' eller ''repl'' vid slutet av kommandoraden. Om både ''pattern'' och ''repl'' inte anges eller är tomma, till exempel '''//''', ska det senaste '''s'''-kommandot upprepas. | |||
Om endast ''pattern'' inte anges eller är tomt, ska det senaste reguljära uttrycket som användes i redigeraren användas som mönster. | |||
Om endast ''repl'' inte anges eller är tomt, ska mönstret ersättas med ingenting. | |||
Om hela ersättningsmönstret är '''%''', ska det senaste ersättningsmönstret till ett '''s'''-kommando användas. | |||
Att mata in ett carriage-return-tecken i ''repl'', vilket kräver ett escapande backslash i '''ex'''-läge och ett escapande control-V i open- eller '''vi'''-läge, ska dela raden vid den punkten och skapa en ny rad i redigeringsbufferten. Carriage-return-tecknet ska kastas. | |||
Om ''options'' innehåller bokstaven '''g''', global, ska alla icke-överlappande förekomster av mönstret på raden ersättas. | |||
Om ''options'' innehåller bokstaven '''c''', confirm, ska raden skrivas före varje ersättning. Den skrivna raden ska återspegla alla tidigare ersättningar. På följande rad ska blanktecken skrivas under de tecken från raden som finns före det ''pattern'' som ska ersättas, och '''^'''-tecken ska skrivas under de tecken som ingår i det ''pattern'' som ska ersättas. Verktyget '''ex''' ska därefter vänta på ett svar från användaren. | |||
Ett jakande svar ska göra att ersättningen utförs, medan annan inmatning inte ska göra ersättningen. Ett jakande svar ska bestå av en rad med det jakande svaret, enligt aktuell lokal, i början av raden. Denna rad ska kunna redigeras på samma sätt som '''ex'''-kommandoraden. | |||
Om kommandot avbryts, se avsnittet **ASYNKRONA HÄNDELSER**, ska alla ändringar som bekräftats av användaren bevaras i redigeringsbufferten efter avbrottet. | |||
Om den ihågkomna sökriktningen inte är satt, ska '''s'''-kommandot sätta den till framåt. | |||
I den andra synopsisformen ska kommandot '''&''' upprepa föregående substitution, som om kommandot '''&''' ersattes av: | |||
<pre> | |||
s/pattern/repl/ | |||
</pre> | |||
där ''pattern'' och ''repl'' är de som angavs i föregående kommando '''s''', '''&''' eller '''~'''. | |||
I den tredje synopsisformen ska kommandot '''~''' upprepa föregående substitution, som om '''~''' ersattes av: | |||
<pre> | |||
s/pattern/repl/ | |||
</pre> | |||
där ''pattern'' ska vara det senaste reguljära uttrycket som angavs till redigeraren, och ''repl'' ska komma från föregående substitutionskommando, inklusive '''&''' och '''~'''. | |||
Dessa kommandon påverkas av miljövariabeln ''LC_MESSAGES''. | |||
''Aktuell rad'': sätts till den sista rad där en substitution skedde, eller lämnas oförändrad om ingen substitution skedde. | |||
''Aktuell kolumn'': sätts till icke-blankt. | |||
=== Suspend === | |||
<pre> | |||
su[spend][!] | |||
st[op][!] | |||
</pre> | |||
Tillåt kontrollen att återgå till den anropande processen. '''ex''' ska suspendera sig själv som om det hade mottagit signalen SIGTSTP. Suspensionen ska endast ske om jobbkontroll är aktiverad i det anropande skalet. | |||
Dessa kommandon påverkas av redigeringsflaggorna '''autowrite''' och '''writeany'''. | |||
Det aktuella '''susp'''-tecknet, se [[stty(1p)]], ska motsvara kommandot '''suspend'''. | |||
=== Tag === | |||
<pre> | |||
ta[g][!] taggsträng | |||
</pre> | |||
Resultaten är ospecificerade om formatet på en tags-fil inte är enligt beskrivningen av verktyget '''ctags'''. Se [[ctags(1p)]]. | |||
Kommandot '''tag''' ska söka efter ''taggsträng'' i de taggfiler som anges av redigeringsflaggan '''tag''', i den ordning de anges, tills en referens till ''taggsträng'' hittas. Filer ska sökas från början till slut. Om ingen referens hittas ska det vara ett fel och ett felmeddelande om detta ska skrivas. | |||
Om referensen inte hittas, eller om ett fel inträffar vid bearbetning av en fil som anges i redigeringsflaggan '''tag''', ska det vara ett fel, och ett felmeddelande ska skrivas vid den första förekomsten av ett sådant fel. | |||
Om taggfilen innehöll ett mönster ska mönstret behandlas som ett reguljärt uttryck som används i redigeraren, till exempel för kommandot '''s'''. | |||
Om ''taggsträng'' finns i en fil med annat namn än aktuell sökväg, ska aktuell sökväg sättas till namnet på den filen, och innehållet i redigeringsbufferten ska ersättas med innehållet i den filen. I detta fall, om inget '''!''' läggs till kommandonamnet och redigeringsbufferten har ändrats sedan den senaste fullständiga skrivningen, ska det vara ett fel, om inte filen skrivs framgångsrikt enligt redigeringsflaggan '''autowrite'''. | |||
Detta kommando påverkas av redigeringsflaggorna '''autowrite''', '''tag''', '''taglength''' och '''writeany'''. | |||
''Aktuell rad'': om taggfilen innehöll ett radnummer, sätts den till det radnumret. Om radnumret är större än den sista raden i redigeringsbufferten ska ett felmeddelande skrivas och aktuell rad ska sättas enligt beskrivningen för kommandot '''edit'''. | |||
Om taggfilen innehöll ett mönster, sätts aktuell rad till den första förekomsten av mönstret i filen. Om inget matchande mönster hittas ska ett felmeddelande skrivas och aktuell rad sättas enligt beskrivningen för kommandot '''edit'''. | |||
''Aktuell kolumn'': om taggfilen innehöll en radnummerreferens och radnumret inte var större än den sista raden i redigeringsbufferten, eller om taggfilen innehöll ett mönster och mönstret hittades, sätts den till icke-blankt. Annars sätts den enligt beskrivningen för kommandot '''edit'''. | |||
=== Unabbreviate === | |||
<pre> | |||
una[bbrev] lhs | |||
</pre> | |||
Om ''lhs'' inte är en post i den aktuella listan över förkortningar, se **Abbreviate**, ska det vara ett fel. Annars ska ''lhs'' tas bort från listan över förkortningar. | |||
''Aktuell rad'': oförändrad. | |||
''Aktuell kolumn'': oförändrad. | |||
=== Undo === | |||
<pre> | |||
u[ndo] | |||
</pre> | |||
Ångra ändringarna som gjordes av det senaste kommandot som ändrade innehållet i redigeringsbufferten, inklusive '''undo''' självt. I detta avseende ska kommandona '''global''', '''v''', '''open''' och '''visual''', samt kommandon som orsakas av buffertexekvering och expanderade tangentmappningar, betraktas som enskilda kommandon. | |||
Om ingen åtgärd som kan ångras föregick kommandot '''undo''', ska det vara ett fel. | |||
Om kommandot '''undo''' återställer rader som var markerade, ska markeringen också återställas om den inte återställdes efter att raderna togs bort. | |||
''Aktuell rad'': | |||
# Om rader läggs till eller ändras i filen, sätts aktuell rad till den första rad som lades till eller ändrades. | |||
# Sätts till raden före den första borttagna raden, om den finns. | |||
# Sätts till 1 om redigeringsbufferten inte är tom. | |||
# Sätts till noll. | |||
''Aktuell kolumn'': sätts till icke-blankt. | |||
=== Unmap === | |||
<pre> | |||
unm[ap][!] lhs | |||
</pre> | |||
Om '''!''' läggs till kommandonamnet och ''lhs'' inte är en post i listan över mappningsdefinitioner för textinmatningsläge, ska det vara ett fel. Annars ska ''lhs'' tas bort från listan över mappningsdefinitioner för textinmatningsläge. | |||
Om inget '''!''' läggs till kommandonamnet och ''lhs'' inte är en post i listan över mappningsdefinitioner för kommandoläge, ska det vara ett fel. Annars ska ''lhs'' tas bort från listan över mappningsdefinitioner för kommandoläge. | |||
''Aktuell rad'': oförändrad. | |||
''Aktuell kolumn'': oförändrad. | |||
=== Version === | |||
<pre> | |||
ve[rsion] | |||
</pre> | |||
Skriv ett meddelande som innehåller versionsinformation för redigeraren. Meddelandets format är ospecificerat. | |||
''Aktuell rad'': oförändrad. | |||
''Aktuell kolumn'': oförändrad. | |||
=== Visual === | |||
<pre> | |||
[1addr] vi[sual][type][count][flags] | |||
</pre> | |||
Om '''ex''' för närvarande är i open- eller visual-läge, ska synopsis och beteende för kommandot '''visual''' vara samma som för kommandot '''edit''', enligt beskrivningen i **Edit**. | |||
Annars behöver detta kommando inte stödjas på blocklägesterminaler eller terminaler med otillräckliga funktioner. Om standard in, standard out eller standard error inte är terminalenheter är resultatet ospecificerat. | |||
Om ''count'' anges ska värdet för redigeringsflaggan '''window''' sättas till ''count'', enligt beskrivningen i **window**. Om typtecknet '''^''' också angavs, ska redigeringsflaggan '''window''' sättas innan den används av typtecknet. | |||
Gå in i visual-läge. Om ''type'' inte anges ska det vara som om typen '''+''' angavs. ''type'' ska ge följande effekter: | |||
''' + ''' | |||
Placera början av den angivna raden högst upp på displayen. | |||
''' - ''' | |||
Placera slutet av den angivna raden längst ned på displayen. | |||
''' . ''' | |||
Placera början av den angivna raden i mitten av displayen. | |||
''' ^ ''' | |||
Om den angivna raden är mindre än eller lika med värdet för redigeringsflaggan '''window''', sätt raden till 1. Annars minskas raden med värdet för '''window''' minus 1. Placera början av denna rad så nära botten av de visade raderna som möjligt, samtidigt som antalet rader enligt '''window''' fortfarande visas. | |||
''Aktuell rad'': sätts till den angivna raden. | |||
''Aktuell kolumn'': sätts till icke-blankt. | |||
=== Write === | |||
<pre> | |||
[2addr] w[rite][!][>>][fil] | |||
[2addr] w[rite][!][fil] | |||
[2addr] wq[!][>>][fil] | |||
</pre> | |||
Om inga rader anges ska standardvärdet vara hela filen. | |||
Kommandot '''wq''' ska motsvara ett '''write'''-kommando följt av ett '''quit'''-kommando. '''wq!''' ska motsvara '''write!''' följt av '''quit'''. I båda fallen ska '''quit''' inte försöka köras om '''write''' misslyckas. | |||
Om kommandonamnet inte följs av ett eller flera blanka tecken, eller om ''fil'' inte föregås av '''!''', ska skrivningen ske till en fil. | |||
# Om argumentet '''>>''' anges och filen redan finns, ska raderna läggas till i filen i stället för att ersätta dess innehåll. Om '''>>''' anges och filen inte redan finns är det ospecificerat om skrivningen ska fortsätta som om '''>>''' inte hade angetts eller om skrivningen ska misslyckas. | |||
# Om redigeringsflaggan '''readonly''' är satt ska skrivningen misslyckas. | |||
# Om ''fil'' anges, inte är aktuell sökväg, och filen finns, ska skrivningen misslyckas. | |||
# Om ''fil'' inte anges ska aktuell sökväg användas. Om det inte finns någon aktuell sökväg ska kommandot '''write''' misslyckas. | |||
# Om aktuell sökväg används, och aktuell sökväg har ändrats av kommandona '''file''' eller '''read''', och filen finns, ska skrivningen misslyckas. Om skrivningen lyckas ska senare '''write'''-kommandon inte misslyckas av detta skäl, såvida aktuell sökväg inte ändras igen. | |||
# Om inte hela redigeringsbufferten skrivs och filen som ska skrivas redan finns, ska skrivningen misslyckas. | |||
För reglerna 1, 2, 3 och 5 kan skrivningen tvingas genom att lägga till tecknet '''!''' till kommandonamnet. | |||
För reglerna 2, 3 och 5 kan skrivningen tvingas genom att sätta redigeringsflaggan '''writeany'''. | |||
Ytterligare implementeringsdefinierade tester kan orsaka att skrivningen misslyckas. | |||
Om redigeringsbufferten är tom ska en fil utan innehåll skrivas. | |||
Ett informationsmeddelande ska skrivas med antalet rader och byte som skrevs. | |||
Annars, om kommandot följs av ett eller flera blanka tecken och filen föregås av '''!''', ska resten av raden efter '''!''' expandera tecknen '''%''', '''#''' och '''!''' enligt **Kommandoradstolkning i ex**. | |||
Verktyget '''ex''' ska därefter skicka två argument till programmet som anges av redigeringsflaggan '''shell'''. Det första ska vara '''-c''' och det andra ska vara de expanderade argumenten till kommandot '''write''' som ett enda argument. De angivna raderna ska skrivas till kommandots standard in. Programmets standard error och standard output, om några finns, ska skrivas enligt beskrivningen för kommandot '''print'''. Om det sista tecknet i denna utdata inte är ett radslut ska ett radslut skrivas i slutet av utdata. | |||
Den särskilda betydelsen av '''!''' efter kommandot '''write''' kan åsidosättas genom att escape:a det med ett backslash-tecken. | |||
''Aktuell rad'': oförändrad. | |||
''Aktuell kolumn'': oförändrad. | |||
=== Write and Exit === | |||
<pre> | |||
[2addr] x[it][!][fil] | |||
</pre> | |||
Om redigeringsbufferten inte har ändrats sedan den senaste fullständiga '''write'''-körningen, ska '''xit''' motsvara kommandot '''quit''', eller, om '''!''' läggs till kommandonamnet, '''quit!'''. | |||
Annars ska '''xit''' motsvara kommandot '''wq''', eller, om '''!''' läggs till kommandonamnet, '''wq!'''. | |||
''Aktuell rad'': oförändrad. | |||
''Aktuell kolumn'': oförändrad. | |||
=== Yank === | |||
<pre> | |||
[2addr] ya[nk][buffer][count] | |||
</pre> | |||
Kopiera de angivna raderna till den angivna bufferten, som standard den icke-namngivna bufferten, som ska bli en radlägesbuffert. | |||
''Aktuell rad'': oförändrad. | |||
''Aktuell kolumn'': oförändrad. | |||
=== Adjust Window === | |||
<pre> | |||
[1addr] z[!][type ...][count][flags] | |||
</pre> | |||
Om ingen rad anges ska aktuell rad vara standardvärdet. Om även ''type'' utelämnas ska värdet för aktuell rad först ökas med 1. Om ökningen av aktuell rad skulle göra att den blir större än den sista raden i redigeringsbufferten, ska det vara ett fel. | |||
Om det finns blanka tecken mellan argumentet ''type'' och det föregående kommandonamnet '''z''' eller det valfria '''!''', ska det vara ett fel. | |||
Om ''count'' anges ska värdet för redigeringsflaggan '''window''' sättas till ''count'', enligt beskrivningen i **window**. Om ''count'' utelämnas ska standardvärdet vara två gånger värdet för redigeringsflaggan '''scroll''', eller, om '''!''' angavs, antalet rader i displayen minus 1. | |||
Om ''type'' utelämnas ska ''count'' rader med början på den angivna raden skrivas. Annars ska ''count'' rader med början på raden som anges av argumentet ''type'' skrivas. | |||
Argumentet ''type'' ska ändra vilka rader som skrivs. Möjliga värden är: | |||
'''-''' | |||
Den angivna raden ska minskas med följande värde: | |||
<pre> | |||
(((antalet '-' tecken) × count) - 1) | |||
</pre> | |||
Om beräkningen skulle resultera i ett tal mindre än 1, ska det vara ett fel. Skriv rader från redigeringsbufferten med början på det nya radvärdet, tills ''count'' rader eller den sista raden i redigeringsbufferten har skrivits. | |||
'''+''' | |||
Den angivna raden ska ökas med följande värde: | |||
<pre> | |||
(((antalet '+' tecken) - 1) × count) + 1 | |||
</pre> | |||
Om beräkningen skulle resultera i ett tal större än den sista raden i redigeringsbufferten, ska det vara ett fel. Skriv rader från redigeringsbufferten med början på det nya radvärdet, tills ''count'' rader eller den sista raden i redigeringsbufferten har skrivits. | |||
'''=''', '''.''' | |||
Om mer än ett enda '''.''' eller '''=''' anges ska det vara ett fel. Följande steg ska utföras: | |||
# Om ''count'' är noll ska ingenting skrivas. | |||
# Skriv så många av de ''N'' raderna före aktuell rad i redigeringsbufferten som finns. | |||
# Om '''=''' angavs som typtecken, skriv en rad bestående av det mindre av antalet kolumner i displayen dividerat med två, eller 40 '''-'''-tecken. | |||
# Skriv aktuell rad. | |||
# Upprepa steg 3. | |||
# Skriv så många av de ''N'' raderna efter aktuell rad i redigeringsbufferten som finns. | |||
'''^''' | |||
Den angivna raden ska minskas med följande värde: | |||
<pre> | |||
(((antalet '^' tecken) + 1) × count) - 1 | |||
</pre> | |||
Om beräkningen skulle resultera i ett tal mindre än 1, ska det vara ett fel. Skriv rader från redigeringsbufferten med början på det nya radvärdet, tills ''count'' rader eller den sista raden i redigeringsbufferten har skrivits. | |||
''Aktuell rad'': sätts till den sista skrivna raden, om typen inte är '''='''. Om typen är '''=''', sätts den till den angivna raden. | |||
''Aktuell kolumn'': sätts till icke-blankt. | |||
=== Escape === | |||
<pre> | |||
! kommando | |||
[addr]! kommando | |||
</pre> | |||
Innehållet på raden efter '''!''' ska expandera tecknen '''%''', '''#''' och '''!''' enligt **Kommandoradstolkning i ex**. Om expansionen gör att radens text ändras ska den visas igen, föregången av ett enda '''!'''-tecken. | |||
Verktyget '''ex''' ska köra programmet som anges av redigeringsflaggan '''shell'''. Det ska skicka två argument till programmet: det första ska vara '''-c''', och det andra ska vara de expanderade argumenten till kommandot '''!''' som ett enda argument. | |||
Om inga rader anges ska programmets standard in, standard out och standard error sättas till de värden som '''ex'''-programmet hade när det anropades. Dessutom ska ett varningsmeddelande skrivas om redigeringsbufferten har ändrats sedan den senaste fullständiga skrivningen och redigeringsflaggan '''warn''' är satt. | |||
Om rader anges ska de skickas till programmet som standard in, och programmets standard output och standard error ska ersätta dessa rader i redigeringsbufferten. Varje rad i programmets utdata ska bli en separat rad i redigeringsbufferten. Före ersättningen ska de angivna raderna kopieras till den icke-namngivna bufferten, som ska bli en radlägesbuffert. | |||
Om redigeraren är i '''ex'''-läge ska ett enda '''!'''-tecken skrivas när programmet avslutas. | |||
Detta kommando påverkas av redigeringsflaggorna '''shell''' och '''warn'''. Om inga rader anges påverkas kommandot också av '''autowrite''' och '''writeany'''. Om rader anges påverkas kommandot av redigeringsflaggan '''autoprint'''. | |||
''Aktuell rad'': | |||
# Om inga rader anges, oförändrad. | |||
# Annars, sätts till den sista rad som lästes in, om några rader lästes in. | |||
# Annars, sätts till raden före den första angivna raden, om den finns. | |||
# Annars, sätts till första raden i redigeringsbufferten om bufferten inte är tom. | |||
# Annars, sätts till noll. | |||
''Aktuell kolumn'': om inga rader anges, oförändrad. Annars sätts den till icke-blankt. | |||
=== Shift Left === | |||
<pre> | |||
[2addr] <[< ...][count][flags] | |||
</pre> | |||
Flytta de angivna raderna mot radens början. Antalet kolumnpositioner som ska flyttas ska vara antalet kommandotecken multiplicerat med värdet för redigeringsflaggan '''shiftwidth'''. Endast inledande blanka tecken ska tas bort eller ändras till andra blanka tecken vid flyttningen. Andra tecken ska inte påverkas. | |||
Raderna som ska flyttas ska kopieras till den icke-namngivna bufferten, som ska bli en radlägesbuffert. | |||
Detta kommando påverkas av redigeringsflaggan '''autoprint'''. | |||
''Aktuell rad'': sätts till den sista raden i de angivna raderna. | |||
''Aktuell kolumn'': sätts till icke-blankt. | |||
=== Shift Right === | |||
<pre> | |||
[2addr] >[> ...][count][flags] | |||
</pre> | |||
Flytta de angivna raderna bort från radens början. Antalet kolumnpositioner som ska flyttas ska vara antalet kommandotecken multiplicerat med värdet för redigeringsflaggan '''shiftwidth'''. Flyttningen ska utföras genom att blanka tecken läggs till som prefix till raden eller genom att inledande blanka tecken ändras till andra blanka tecken. Tomma rader ska inte ändras. | |||
Raderna som ska flyttas ska kopieras till den icke-namngivna bufferten, som ska bli en radlägesbuffert. | |||
Detta kommando påverkas av redigeringsflaggan '''autoprint'''. | |||
''Aktuell rad'': sätts till den sista raden i de angivna raderna. | |||
''Aktuell kolumn'': sätts till icke-blankt. | |||
=== Control-D === | |||
<pre> | |||
<control>-D | |||
</pre> | |||
Skriv de nästa ''n'' raderna, där ''n'' är det minsta av värdena för redigeringsflaggan '''scroll''' och antalet rader efter aktuell rad i redigeringsbufferten. Om aktuell rad är den sista raden i redigeringsbufferten ska det vara ett fel. | |||
''Aktuell rad'': sätts till den sista skrivna raden. | |||
''Aktuell kolumn'': sätts till icke-blankt. | |||
=== Skriv radnummer === | |||
<pre> | |||
[1addr] = [flags] | |||
</pre> | |||
Om ''line'' inte anges ska standardvärdet vara den sista raden i redigeringsbufferten. Skriv radnumret för den angivna raden. | |||
''Aktuell rad'': oförändrad. | |||
''Aktuell kolumn'': oförändrad. | |||
=== Execute === | |||
<pre> | |||
[2addr] @ buffer | |||
[2addr] * buffer | |||
</pre> | |||
Om ingen buffert anges, eller om den anges som '''@''' eller '''*''', ska den senast körda bufferten användas. Om ingen tidigare buffert har körts ska det vara ett fel. | |||
För varje rad som anges av adresserna ska aktuell rad, '''.''', sättas till den angivna raden, och innehållet i den namngivna ''buffer'', så som det var när kommandot '''@''' kördes, ska köras som '''ex'''-kommandon. För varje rad i en radlägesbuffert, och alla utom den sista raden i en teckenlägesbuffert, ska '''ex'''-kommandotolkaren bete sig som om raden avslutades med ett radslut. | |||
Om ett fel inträffar under denna process, eller om en rad som anges av adresserna inte finns när aktuell rad skulle sättas till den, eller om mer än en rad angavs av adresserna och innehållet i redigeringsbufferten ersätts, till exempel av kommandot ''':edit''' i '''ex''', ska ett felmeddelande skrivas. Inga fler kommandon som orsakas av körningen av detta kommando ska då bearbetas. | |||
''Aktuell rad'': enligt de enskilda '''ex'''-kommandona. | |||
''Aktuell kolumn'': enligt de enskilda '''ex'''-kommandona. | |||
== Reguljära uttryck i ex == | |||
Verktyget '''ex''' ska stödja reguljära uttryck som är en övermängd av de grundläggande reguljära uttryck som beskrivs i ''Base Definitions''-volymen av POSIX.1-2017, avsnitt 9.3, ''Basic Regular Expressions''. Ett tomt reguljärt uttryck, '''//''', ska motsvara det senaste reguljära uttryck som påträffades. | |||
Reguljära uttryck kan användas i adresser för att ange rader och i vissa kommandon, till exempel kommandot '''substitute''', för att ange delar av en rad som ska ersättas. | |||
Följande konstruktioner kan användas för att utöka de grundläggande reguljära uttrycken: | |||
'''<''' | |||
Matcha början av ett ''ord''. Se definitionen av ''ord'' i början av **Kommandobeskrivningar i ex**. | |||
'''>''' | |||
Matcha slutet av ett ''ord''. | |||
'''~''' | |||
Matcha ersättningsdelen i det senaste '''substitute'''-kommandot. Tilde-tecknet, '''~''', kan escape:as i ett reguljärt uttryck för att bli ett vanligt tecken utan särskild betydelse. Backslash-tecknet ska då kastas. | |||
När redigeringsflaggan '''magic''' inte är satt ska de enda tecken med särskild betydelse vara '''^''' i början av ett mönster, '''$''' i slutet av ett mönster, och backslash. Tecknen '''.''', '''*''', '''[''' och '''~''' ska behandlas som vanliga tecken om de inte föregås av backslash. När de föregås av backslash ska de återfå sin särskilda betydelse, eller i fallet backslash hanteras som ett enda backslash. Backslash-tecken som används för att escape:a andra tecken ska kastas. | |||
== Ersättningssträngar i ex == | |||
Tecknet '''&''', eller '''&''' om redigeringsflaggan '''magic''' inte är satt, i ersättningssträngen ska stå för texten som matchades av mönstret som ska ersättas. | |||
Tecknet '''~''', eller '''~''' om '''magic''' inte är satt, ska ersättas av ersättningsdelen i föregående '''substitute'''-kommando. | |||
Sekvensen '''\n''', där ''n'' är ett heltal, ska ersättas av texten som matchades av motsvarande bakåtreferensuttryck. Om motsvarande bakåtreferensuttryck inte matchar ska tecknen '''\n''' ersättas av den tomma strängen. | |||
Strängarna '''\l''', '''\u''', '''\L''' och '''\U''' kan användas för att ändra skiftläge på element i ersättningssträngen. Strängen '''\l''' ska göra att följande tecken konverteras till gemen. Strängen '''\u''' ska göra att följande tecken konverteras till versal. Strängen '''\L''' ska göra att alla efterföljande tecken konverteras till gemener medan de infogas av substitutionen, tills strängen '''\e''' eller '''\E''', eller slutet av ersättningssträngen, påträffas. Strängen '''\U''' fungerar på motsvarande sätt men konverterar till versaler. | |||
Annars ska varje tecken som följer ett backslash behandlas som det bokstavliga tecknet, och det escapande backslash-tecknet ska kastas. | |||
Exempel på skiftlägeskonvertering med kommandot '''s''': | |||
<pre> | |||
:p | |||
The cat sat on the mat. | |||
:s/\<.at\>/\u&/gp | |||
The Cat Sat on the Mat. | |||
:s/S\(.*\)M/S\U\1\eM/p | |||
The Cat SAT ON THE Mat. | |||
</pre> | |||
== Redigeringsflaggor i ex == | |||
Verktyget '''ex''' har ett antal flaggor som ändrar dess beteende. Dessa flaggor har standardinställningar som kan ändras med kommandot '''set'''. | |||
Flaggor är booleska om inget annat anges. | |||
=== autoindent, ai === | |||
<pre> | |||
Standard: inte satt | |||
</pre> | |||
Om '''autoindent''' är satt ska varje rad i inmatningsläge dras in, först med så många tabbtecken som möjligt enligt redigeringsflaggan '''tabstop''', och därefter med blanktecken, för att justeras mot en annan rad. | |||
I open- eller visual-läge och när textinmatningen är del av ett radorienterat kommando ska indragningen justeras till första kolumnen. | |||
Annars ska indragningen sättas utifrån föregående infogad rad, föregående aktuell rad eller första kolumnen, beroende på sammanhang. | |||
För kommandona '''a''', '''i''' och '''c''' i '''ex''' ska indragningen sättas enligt kommandots placering och föregående text. | |||
=== autoprint, ap === | |||
<pre> | |||
Standard: satt | |||
</pre> | |||
Om '''autoprint''' är satt ska aktuell rad skrivas efter varje '''ex'''-kommando som ändrar innehållet i den aktuella redigeringsbufferten, samt efter varje '''tag'''-kommando där taggens sökmönster hittades eller taggens radnummer var giltigt, utom i vissa fall: | |||
# Kommandot kördes i open- eller visual-läge. | |||
# Kommandot kördes som del av ett '''global'''- eller '''v'''-kommando eller en '''@'''-buffertexekvering. | |||
# Kommandot var den form av '''read''' som läser en fil till redigeringsbufferten. | |||
# Kommandot var '''append''', '''change''' eller '''insert'''. | |||
# Kommandot avslutades inte av ett radslut. | |||
# Den aktuella raden ska skrivas av en flagga som angavs till kommandot. | |||
=== autowrite, aw === | |||
<pre> | |||
Standard: inte satt | |||
</pre> | |||
Om '''autowrite''' är satt, och redigeringsbufferten har ändrats sedan den senast skrevs fullständigt till någon fil, ska innehållet i redigeringsbufferten skrivas som om kommandot '''write''' i '''ex''' hade angetts utan argument, innan varje kommando som påverkas av '''autowrite''' körs. | |||
Att lägga till tecknet '''!''' till kommandonamnet för något av '''ex'''-kommandona utom '''!''' ska förhindra skrivningen. Om skrivningen misslyckas ska det vara ett fel och kommandot ska inte köras. | |||
=== beautify, bf === | |||
<pre> | |||
Standard: inte satt | |||
</pre> | |||
Om '''beautify''' är satt ska alla icke-utskrivbara tecken, utom tabb-, radsluts- och sidmatningstecken, kastas från text som läses in från filer. | |||
=== directory, dir === | |||
<pre> | |||
Standard: implementeringsdefinierad | |||
</pre> | |||
Värdet för denna flagga anger den katalog där redigeringsbufferten ska placeras. Om katalogen inte är skrivbar för användaren ska redigeraren avslutas. | |||
=== edcompatible, ed === | |||
<pre> | |||
Standard: inte satt | |||
</pre> | |||
Gör att närvaron av suffixen '''g''' och '''c''' på substitute-kommandon koms ihåg och växlas genom att suffixen upprepas. | |||
=== errorbells, eb === | |||
<pre> | |||
Standard: inte satt | |||
</pre> | |||
Om redigeraren är i '''ex'''-läge, terminalen inte stöder framhävningsläge, och '''errorbells''' är satt, ska felmeddelanden föregås av att terminalen avger en varning. | |||
=== exrc === | |||
<pre> | |||
Standard: inte satt | |||
</pre> | |||
Om '''exrc''' är satt ska '''ex''' läsa eventuell ''.exrc''-fil i den aktuella katalogen enligt beskrivningen i **Initiering i ex och vi**. Om '''exrc''' inte är satt ska '''ex''' ignorera eventuell ''.exrc''-fil i den aktuella katalogen under initiering, om inte den aktuella katalogen är den som anges av miljövariabeln ''HOME''. | |||
=== ignorecase, ic === | |||
<pre> | |||
Standard: inte satt | |||
</pre> | |||
Om '''ignorecase''' är satt ska tecken som har både versala och gemena representationer betraktas som ekvivalenta vid jämförelse med reguljära uttryck. | |||
Redigeringsflaggan '''ignorecase''' ska påverka alla ihågkomna reguljära uttryck. Om '''ignorecase''' stängs av ska till exempel ett senare '''n'''-kommando i '''vi''' söka efter det senaste grundläggande reguljära uttrycket skiftlägeskänsligt. | |||
=== list === | |||
<pre> | |||
Standard: inte satt | |||
</pre> | |||
Om '''list''' är satt ska rader i redigeringsbufferten som skrivs i '''ex'''-kommandoläge skrivas enligt kommandot '''print''' med flaggan '''l'''. I open- eller visual-läge ska varje rad i redigeringsbufferten visas enligt kommandot '''print''' i '''ex''' med flaggan '''l'''. | |||
I open- eller visual-textinmatningsläge, när markören inte vilar på något tecken i raden, ska den vila på tecknet '''$''' som markerar radens slut. | |||
=== magic === | |||
<pre> | |||
Standard: satt | |||
</pre> | |||
Om '''magic''' är satt ändras tolkningen av tecken i reguljära uttryck och substitutionsersättningssträngar. Se **Reguljära uttryck i ex** och **Ersättningssträngar i ex**. | |||
=== mesg === | |||
<pre> | |||
Standard: satt | |||
</pre> | |||
Om '''mesg''' är satt ska behörigheten för andra att använda kommandona '''write''' eller '''talk''' för att skriva till terminalen slås på i open- eller visual-läge. | |||
Skalkommandot: | |||
<pre> | |||
mesg n | |||
</pre> | |||
ska ha företräde framför varje inställning av flaggan '''mesg''' i '''ex'''. | |||
=== number, nu === | |||
<pre> | |||
Standard: inte satt | |||
</pre> | |||
Om '''number''' är satt ska rader i redigeringsbufferten som skrivs i '''ex'''-kommandoläge skrivas med radnummer, i det format som anges av kommandot '''print''' med flaggan '''#'''. I '''ex'''-textinmatningsläge ska varje rad föregås av det radnummer den kommer att ha i filen. | |||
I open- eller visual-läge ska varje rad i redigeringsbufferten visas med ett föregående radnummer. Radnumret ska inte betraktas som del av raden vid utvärdering av aktuell kolumn. | |||
=== paragraphs, para === | |||
<pre> | |||
Standard i POSIX-lokalen: IPLPPPQPP LIpplpipbp | |||
</pre> | |||
Redigeringsflaggan '''paragraphs''' ska definiera ytterligare styckegränser för kommandon i open- och visual-läge. Flaggan kan sättas till en teckensträng som består av noll eller flera teckenpar. Det ska vara ett fel att sätta den till ett udda antal tecken. | |||
=== prompt === | |||
<pre> | |||
Standard: satt | |||
</pre> | |||
Om '''prompt''' är satt ska inmatning i '''ex'''-kommandoläge efterfrågas med ett kolon, ''':''''. Om den inte är satt ska ingen prompt skrivas. | |||
=== readonly === | |||
<pre> | |||
Standard: se text | |||
</pre> | |||
Om redigeringsflaggan '''readonly''' är satt ska skrivskyddat läge aktiveras. Se **Write**. | |||
Flaggan '''readonly''' ska initieras som satt om något av följande villkor är sant: | |||
* Kommandoradsflaggan '''-R''' angavs. | |||
* Åtgärder motsvarande funktionen ''access()'' med aktuell sökväg och konstanten '''W_OK''' visar att filen saknar skrivbehörighet. | |||
Flaggan '''readonly''' får initieras som satt av andra implementeringsdefinierade skäl. Den ska inte initieras som osatt baserat på särskilda privilegier hos användaren eller processen. | |||
Flaggan '''readonly''' ska initieras om varje gång innehållet i redigeringsbufferten ersätts, till exempel av kommandot '''edit''' eller '''next''', om inte användaren uttryckligen har satt den. I så fall ska den förbli satt tills användaren uttryckligen stänger av den. | |||
=== redraw === | |||
<pre> | |||
Standard: inte satt | |||
</pre> | |||
Redigeraren simulerar en intelligent terminal på en dum terminal. Eftersom detta sannolikt kräver en stor mängd utdata till terminalen är det endast användbart vid höga överföringshastigheter. | |||
=== remap === | |||
<pre> | |||
Standard: satt | |||
</pre> | |||
Om '''remap''' är satt ska map-översättning tillåta mappningar definierade i termer av andra mappningar. Översättningen ska fortsätta tills ett slutligt resultat erhålls. Om flaggan inte är satt ska endast enstegsöversättning göras. | |||
=== report === | |||
<pre> | |||
Standard: 5 | |||
</pre> | |||
Värdet för redigeringsflaggan '''report''' anger hur många rader som måste läggas till, kopieras, tas bort eller ändras i redigeringsbufferten för att ett informationsmeddelande ska skrivas till användaren. | |||
Meddelandet ska innehålla antalet rader som lades till, kopierades, togs bort eller ändrades, men är i övrigt ospecificerat. | |||
=== scroll, scr === | |||
<pre> | |||
Standard: (antalet rader i displayen - 1) / 2 | |||
</pre> | |||
Värdet för redigeringsflaggan '''scroll''' bestämmer antalet rader som rullas av kommandona control-D och '''z''' i '''ex'''. För kommandona control-D och control-U i '''vi''' ska det vara det initiala antalet rader som rullas när inget tidigare control-D- eller control-U-kommando har körts. | |||
=== sections === | |||
<pre> | |||
Standard i POSIX-lokalen: NHSHH HUnhsh | |||
</pre> | |||
Redigeringsflaggan '''sections''' ska definiera ytterligare sektionsgränser för kommandon i open- och visual-läge. Flaggan kan sättas till en teckensträng som består av noll eller flera teckenpar. Det ska vara ett fel att sätta den till ett udda antal tecken. | |||
=== shell, sh === | |||
<pre> | |||
Standard: från miljövariabeln SHELL | |||
</pre> | |||
Värdet för denna flagga ska vara en sträng. Standardvärdet ska tas från miljövariabeln ''SHELL''. Om ''SHELL'' är null eller tom, ska verktyget '''sh''', se [[sh(1p)]], vara standard. | |||
=== shiftwidth, sw === | |||
<pre> | |||
Standard: 8 | |||
</pre> | |||
Värdet för denna flagga ska ange bredden i kolumner för en indragningsnivå som används vid automatisk indragning och av skiftkommandona '''<''' och '''>'''. | |||
=== showmatch, sm === | |||
<pre> | |||
Standard: inte satt | |||
</pre> | |||
Funktionen som beskrivs för redigeringsflaggan '''showmatch''' behöver inte stödjas på blocklägesterminaler eller terminaler med otillräckliga funktioner. | |||
Om '''showmatch''' är satt i open- eller visual-läge, och ett ''')''' eller '''}''' skrivs, och motsvarande '''(''' eller '''{''' för närvarande är synligt på displayen, ska motsvarande tecken markeras genom att markören flyttas till dess plats under en ospecificerad tid. | |||
=== showmode === | |||
<pre> | |||
Standard: inte satt | |||
</pre> | |||
Om '''showmode''' är satt ska aktuellt redigeringsläge visas på displayens sista rad i open- eller visual-läge. Kommandoläge och textinmatningsläge ska särskiljas. Andra ospecificerade lägen och implementeringsdefinierad information får visas. | |||
=== slowopen === | |||
<pre> | |||
Standard: inte satt | |||
</pre> | |||
Om '''slowopen''' är satt under textinmatningsläge i open och visual, ska redigeraren inte uppdatera andra delar av displayen än de displaykolumner som visar tecknen som användaren matar in. | |||
=== tabstop, ts === | |||
<pre> | |||
Standard: 8 | |||
</pre> | |||
Värdet för denna redigeringsflagga ska ange kolumngränsen som används av ett tabbtecken på displayen. | |||
=== taglength, tl === | |||
<pre> | |||
Standard: 0 | |||
</pre> | |||
Värdet för denna redigeringsflagga ska ange det maximala antalet tecken som betraktas som signifikanta i det användarangivna taggnamnet och i taggnamnet från tags-filen. Om värdet är noll ska alla tecken i båda taggnamnen vara signifikanta. | |||
=== tags === | |||
<pre> | |||
Standard: se text | |||
</pre> | |||
Värdet för denna redigeringsflagga ska vara en sträng av sökvägar till filer som används av kommandot '''tag''', avgränsade med blanka tecken. Standardvärdet är ospecificerat. | |||
=== term === | |||
<pre> | |||
Standard: från miljövariabeln TERM | |||
</pre> | |||
Värdet för denna redigeringsflagga ska vara en sträng. Standardvärdet ska tas från miljövariabeln ''TERM''. Om ''TERM'' är tom eller null är standardvärdet ospecificerat. Redigeraren ska använda värdet för denna flagga för att bestämma typen av displayenhet. | |||
Resultaten är ospecificerade om användaren ändrar värdet för redigeringsflaggan '''term''' efter att redigeraren har initierats. | |||
=== terse === | |||
<pre> | |||
Standard: inte satt | |||
</pre> | |||
Om '''terse''' är satt får felmeddelanden vara mindre utförliga. Med detta undantag är felmeddelanden ospecificerade. Alla felmeddelanden behöver inte ändras för olika inställningar av denna flagga. | |||
=== warn === | |||
<pre> | |||
Standard: satt | |||
</pre> | |||
Om '''warn''' är satt, och innehållet i redigeringsbufferten har ändrats sedan det senast skrevs fullständigt, ska redigeraren skriva ett varningsmeddelande före vissa '''!'''-kommandon. Se **Escape**. | |||
=== window === | |||
<pre> | |||
Standard: se text | |||
</pre> | |||
Ett värde som används i open- och visual-läge av kommandona control-B och control-F, och i visual-läge för att ange antalet rader som visas när skärmen ritas om. | |||
Om kommandoradsflaggan '''-w''' inte anges, ska standardvärdet sättas till värdet för miljövariabeln ''LINES''. Om ''LINES'' är tom eller null ska standardvärdet vara antalet rader i displayen minus 1. | |||
Om redigeringsflaggan '''window''' sätts till noll eller till ett värde större än antalet rader i displayen minus 1, ska '''window''' sättas till antalet rader i displayen minus 1. | |||
Terminalradens baudrate får ändra standardvärdet på ett implementeringsdefinierat sätt. | |||
=== wrapmargin, wm === | |||
<pre> | |||
Standard: 0 | |||
</pre> | |||
Om värdet för denna redigeringsflagga är noll ska den inte ha någon effekt. | |||
Om aktuell lokal inte är POSIX-lokalen är effekten av denna flagga implementeringsdefinierad. | |||
Annars ska den ange ett antal kolumner från terminalens högermarginal. | |||
Under textinmatningsläge i open och visual ska redigeraren, för varje tecken där någon del av tecknet visas i en kolumn som ligger mindre än '''wrapmargin''' kolumner från displayradens slutmarginal, bete sig enligt reglerna för automatisk radbrytning. | |||
Om redigeringsflaggan '''autoindent''' är satt och de beskrivna radbrytningshändelserna utförs, ska alla blanka tecken vid eller efter markören på den aktuella raden kastas. | |||
Slutmarginalen ska bestämmas av systemet eller åsidosättas av användaren enligt beskrivningen för ''COLUMNS'' i avsnittet **MILJÖVARIABLER**. | |||
=== wrapscan, ws === | |||
<pre> | |||
Standard: satt | |||
</pre> | |||
Om '''wrapscan''' är satt ska sökningar, det vill säga adresserna '''/''' eller '''?''' i '''ex''', eller kommandona '''/''', '''?''', '''N''' och '''n''' i open- och visual-läge, fortsätta runt början eller slutet av redigeringsbufferten. Om flaggan inte är satt ska sökningar stoppa vid början eller slutet av redigeringsbufferten. | |||
=== writeany, wa === | |||
<pre> | |||
Standard: inte satt | |||
</pre> | |||
Om '''writeany''' är satt ska vissa av kontrollerna som utförs vid körning av kommandot '''write''' i '''ex''' undertryckas, enligt beskrivningen för redigeringsflaggan '''autowrite'''. | |||
== EXITSTATUS == | |||
Följande exitvärden ska returneras: | |||
<pre> | |||
0 Lyckad körning. | |||
>0 Ett fel inträffade. | |||
</pre> | |||
== KONSEKVENSER AV FEL == | |||
När ett fel påträffas och standard in inte är en terminalenhetsfil, ska '''ex''' inte skriva filen eller återgå till kommando- eller textinmatningsläge, utan ska avsluta med en exitstatus som inte är noll. | |||
Annars, när ett oåterställbart fel påträffas, ska det motsvara en asynkron SIGHUP-händelse. | |||
Annars, när ett fel påträffas, ska redigeraren bete sig enligt beskrivningen i **Kommandoradstolkning i ex**. | |||
''Följande avsnitt är informativa.'' | |||
== ANVÄNDNING I PROGRAM == | |||
Om en SIGSEGV-signal tas emot medan '''ex''' sparar en fil, kanske filen inte sparas framgångsrikt. | |||
Kommandot '''next''' kan acceptera mer än en fil, så användning som: | |||
<pre> | |||
next `ls [abc]*` | |||
</pre> | |||
är giltig. Den skulle till exempel inte vara giltig för kommandona '''edit''' eller '''read''', eftersom de förväntar sig endast en fil och ospecificerade resultat uppstår. | |||
== EXEMPEL == | |||
Inga. | |||
== FRAMTIDA RIKTNING == | |||
Ingen. | |||
== SE ÄVEN == | |||
''Section 2.9.1.1'', ''Command Search and Execution'', [[ctags(1p)]], [[ed(1p)]], [[sed(1p)]], [[sh(1p)]], [[stty(1p)]], [[vi(1p)]] | |||
''The Base Definitions volume of POSIX.1-2017'', ''Table 5-1'', ''Escape Sequences and Associated Actions'', ''Chapter 8'', ''Environment Variables'', ''Section 9.3'', ''Basic Regular Expressions'', ''Section 12.2'', ''Utility Syntax Guidelines'' | |||
''The System Interfaces volume of POSIX.1-2017'', [[access(3p)]] | |||
== UPPHOVSRÄTT == | |||
Delar av denna text är återtryckta och återgivna i elektronisk form från IEEE Std 1003.1-2017, ''Standard for Information Technology -- Portable Operating System Interface (POSIX)'', ''The Open Group Base Specifications Issue 7, 2018 Edition'', Copyright (C) 2018 av Institute of Electrical and Electronics Engineers, Inc. och The Open Group. | |||
Vid eventuell avvikelse mellan denna version och den ursprungliga standarden från IEEE och The Open Group är den ursprungliga standarden från IEEE och The Open Group det avgörande dokumentet. Den ursprungliga standarden kan erhållas online på: | |||
[http://www.opengroup.org/unix/online.html](http://www.opengroup.org/unix/online.html) | |||
Eventuella typografiska eller formateringsfel som förekommer på denna sida har sannolikt införts under konverteringen av källfilerna till manualsidesformat. För att rapportera sådana fel, se: | |||
[https://www.kernel.org/doc/man-pages/reporting_bugs.html](https://www.kernel.org/doc/man-pages/reporting_bugs.html) | |||
Manualsidans sidfot: | |||
<pre> | |||
IEEE/The Open Group 2017 EX(1P) | |||
</pre> | |||
== Sidor som hänvisar till denna sida == | |||
* [[ed(1p)]] | |||
* [[more(1p)]] | |||
* [[vi(1p)]] | |||
== HTML-rendering == | |||
HTML-renderingen skapades '''2026-01-16''' av Michael Kerrisk, författare till ''The Linux Programming Interface''. | |||
För information om fördjupade utbildningar i Linux/UNIX-systemprogrammering, se: | |||
[https://man7.org/training/](https://man7.org/training/) | |||
= Sidslut = | |||
Orginalhemsidan på Engelska https://man7.org/linux/man-pages/man1/ex.1p.html | |||
Det här är en maskinöversättning av Linux man sidor till svenska. Om du hittar fel är vi tacksamma om du rapporterar dem via formuläret som finns på | |||
https://www.linux.se/kontaka-linux-se/ | |||
<BR><BR>Tack till [https://dataservice.pcbutiken.se/ Datorservice] som har sponsrat [https://www.linux.se Linux.se] med webbhotell. | |||
[[Kategori:Linuxmanual grupp 1]] | |||
[[Kategori:Linuxmanual]] | |||
Nuvarande version från 13 maj 2026 kl. 07.33
PROLOG
Denna manualsida är en del av POSIX Programmer's Manual. Linux-implementeringen av detta gränssnitt kan skilja sig åt; se motsvarande Linux-manualsida för detaljer om Linux-beteende. Gränssnittet kanske inte heller är implementerat på Linux.
NAMN
ex – textredigerare
SYNOPSIS
ex [-rR] [-s|-v] [-c kommando] [-t taggsträng] [-w storlek] [fil...]
BESKRIVNING
Verktyget ex är en radorienterad textredigerare. Det finns två andra lägen i redigeraren — open och visual — där skärmorienterad redigering är tillgänglig. Detta beskrivs mer utförligt av kommandona open och visual i ex, samt i vi(1p).
Om en operand är - är resultatet ospecificerat.
I detta avsnitt används termen redigeringsbuffert för att beskriva den aktuella arbetstexten. Termen innebär inte någon särskild implementation. Alla redigeringsändringar utförs i redigeringsbufferten, och inga ändringar i den påverkar någon fil förrän ett redigeringskommando skriver filen.
Vissa terminaler har inte alla funktioner som krävs för att stödja hela definitionen av ex, till exempel fullskärmsredigeringskommandon, det vill säga visual mode eller open mode. När dessa kommandon inte kan stödjas på sådana terminaler ska detta inte ge ett felmeddelande som ”not an editor command” eller rapportera ett syntaxfel. Implementeringen får antingen acceptera kommandona och producera skärmresultat som är resultatet av ett misslyckat försök att uppfylla kraven i denna del av POSIX.1-2017, eller rapportera ett fel som beskriver den terminalrelaterade bristen.
FLAGGOR
Verktyget ex ska följa Base Definitions-volymen av POSIX.1-2017, avsnitt 12.2, Utility Syntax Guidelines, med undantag för den ospecificerade användningen av -, samt att + får kännas igen som en flaggavgränsare på samma sätt som -.
Följande flaggor ska stödjas:
-c kommando
Ange ett inledande kommando som ska köras i den första redigeringsbuffert som läses in från en befintlig fil. Se avsnittet **UTÖKAD BESKRIVNING**. Implementeringar får stödja mer än en enda -c-flagga. I sådana implementeringar ska de angivna kommandona köras i den ordning de anges på kommandoraden.
-r
Återställ de namngivna filerna. Se avsnittet **UTÖKAD BESKRIVNING**. Återställningsinformation för en fil ska sparas vid en redigerar- eller systemkrasch, till exempel när redigeraren avslutas av en signal som redigeraren kan fånga, eller efter användning av kommandot preserve i ex.
En krasch i detta sammanhang är ett oväntat fel i systemet eller verktyget som kräver att det felande systemet eller verktyget startas om. En systemkrasch innebär att alla verktyg som kördes vid tidpunkten också kraschar. Vid en redigerar- eller systemkrasch är antalet ändringar i redigeringsbufferten, sedan det senaste kommandot preserve, som kommer att kunna återställas ospecificerat.
Om inga fil-operander anges och flaggan -t inte anges, ska alla andra flaggor, variabeln EXINIT och eventuella .exrc-filer ignoreras. En lista över alla återställningsbara filer som är tillgängliga för den anropande användaren ska skrivas ut, och redigeraren ska avslutas normalt utan vidare åtgärd.
-R
Sätt redigeringsflaggan readonly.
-s
Förbered ex för satsvis användning genom att utföra följande åtgärder:
- Undertryck utskrift av prompter och informationsmeddelanden, men inte diagnostiska meddelanden.
- Ignorera värdet av TERM och eventuell implementeringsstandard för terminaltyp, och anta att terminalen är av en typ som inte kan stödja open- eller visual-läge. Se kommandot visual och beskrivningen av vi(1p).
- Undertryck användningen av miljövariabeln EXINIT och läsning av eventuell .exrc-fil. Se avsnittet **UTÖKAD BESKRIVNING**.
- Undertryck automatisk indragning, och ignorera värdet av redigeringsflaggan autoindent.
-t taggsträng
Redigera filen som innehåller den angivna taggsträngen. Se ctags(1p). Taggfunktionen som representeras av -t taggsträng och kommandot tag är valfri. Den ska tillhandahållas på varje system som också tillhandahåller en överensstämmande implementation av ctags. Annars ger användning av -t odefinierade resultat. På alla system ska det vara ett fel att ange mer än en enda -t-flagga.
-v
Börja i visuellt läge. Se vi(1p).
-w storlek
Sätt värdet för redigeringsflaggan window till storlek.
OPERANDER
Följande operand ska stödjas:
fil
En sökväg till en fil som ska redigeras.
STANDARD IN
Standard in består av en serie kommandon och inmatningstext, enligt beskrivningen i avsnittet **UTÖKAD BESKRIVNING**. Implementeringen får begränsa varje rad från standard in till en längd av {LINE_MAX}.
Om standard in inte är en terminalenhet ska det vara som om flaggan -s hade angetts.
Om en läsning från standard in returnerar ett fel, eller om redigeraren upptäcker ett filslut från standard in, ska det motsvara en asynkron SIGHUP-händelse.
INDATAFILER
Indatafiler ska vara textfiler, eller filer som skulle vara textfiler förutom att den sista raden är ofullständig, inte längre än {LINE_MAX}-1 byte och inte innehåller några NUL-tecken. Som standard ska varje ofullständig sista rad behandlas som om den hade ett avslutande radslutstecken, newline. Redigering av andra filformer får valfritt tillåtas av ex-implementationer.
Filerna .exrc och källfiler ska vara textfiler bestående av ex-kommandon. Se avsnittet **UTÖKAD BESKRIVNING**.
Som standard ska redigeraren läsa rader från de filer som ska redigeras utan att tolka någon av dessa rader som någon form av redigeringskommando.
MILJÖVARIABLER
Följande miljövariabler ska påverka körningen av ex:
COLUMNS
Åsidosätter den horisontella skärmstorlek som systemet valt. Se Base Definitions-volymen av POSIX.1-2017, kapitel 8, Environment Variables, för giltiga värden och resultat när variabeln är osatt eller null.
EXINIT
Bestämmer en lista över ex-kommandon som körs vid redigerarens start. Se avsnittet **UTÖKAD BESKRIVNING** för mer information om initieringsfasen.
HOME
Bestämmer sökvägen till en katalog som ska genomsökas efter en startfil för redigeraren med namnet .exrc. Se avsnittet **UTÖKAD BESKRIVNING**.
LANG
Tillhandahåller ett standardvärde för de internationaliseringsvariabler som är osatta eller null. Se Base Definitions-volymen av POSIX.1-2017, avsnitt 8.2, Internationalization Variables, för företrädesordningen för internationaliseringsvariabler som används för att bestämma värdena för lokalkategorier.
LC_ALL
Om satt till en icke-tom sträng, åsidosätts värdena för alla andra internationaliseringsvariabler.
LC_COLLATE
Bestämmer lokalen för beteendet hos intervall, ekvivalensklasser och fler-teckens sorteringselement i reguljära uttryck.
LC_CTYPE
Bestämmer lokalen för tolkning av sekvenser av byte med textdata som tecken, till exempel enkelbyte- i motsats till flerbytetecken i argument och indatafiler; beteendet hos teckenklasser i reguljära uttryck; klassificeringen av tecken som stora eller små bokstäver; skiftlägeskonvertering av bokstäver; samt detektering av ordgränser.
LC_MESSAGES
Bestämmer den lokal som ska användas för att påverka format och innehåll i diagnostiska meddelanden som skrivs till standard error.
LINES
Åsidosätter den vertikala skärmstorlek som systemet valt. Den används som antal rader i en skärmsida och som vertikal skärmstorlek i visuellt läge. Se Base Definitions-volymen av POSIX.1-2017, kapitel 8, Environment Variables, för giltiga värden och resultat när variabeln är osatt eller null.
NLSPATH
Bestämmer platsen för meddelandekataloger vid bearbetning av LC_MESSAGES.
PATH
Bestämmer sökvägen för det skalkommando som anges i redigeringskommandona !, shell, read och write i ex, samt kommandot ! i open- och visual-läge. Se beskrivningen av kommandosökning och körning i avsnitt 2.9.1.1, Command Search and Execution.
SHELL
Bestämmer den föredragna kommandoradstolken som ska användas som standardvärde för redigeringsflaggan shell.
TERM
Bestämmer namnet på terminaltypen. Om denna variabel är osatt eller null ska en ospecificerad standardterminaltyp användas.
ASYNKRONA HÄNDELSER
Följande term används i detta och följande avsnitt för att ange åtgärder för kommandon och asynkrona händelser:
fullständig skrivning
En fullständig skrivning är en skrivning av hela innehållet i redigeringsbufferten till en fil av annan typ än en terminalenhet, eller sparandet av redigeringsbufferten orsakat av att användaren kör kommandot preserve i ex. Att skriva innehållet i redigeringsbufferten till en temporär fil som tas bort när redigeraren avslutas ska inte betraktas som en fullständig skrivning.
Följande åtgärder ska vidtas vid mottagning av signaler:
SIGINT
Om standard in inte är en terminalenhet ska ex inte skriva filen eller återgå till kommando- eller textinmatningsläge, utan ska avsluta med en exitstatus som inte är noll.
Annars, om ett kommando i textinmatningsläge för open eller visual körs, ska ex vid mottagning av SIGINT bete sig identiskt med om tecknet <ESC> mottogs.
I övriga fall:
- Om ett ex-kommando i textinmatningsläge körs ska alla inmatningsrader som har matats in fullständigt lösas in i redigeringsbufferten, och varje delvis inmatad rad ska kastas.
- Om ett kommando körs ska det avbrytas och ett meddelande visas. Om inget annat anges i beskrivningarna av ex- eller vi-kommandon är det ospecificerat om rader som ändrats av det körande kommandot visas som ändrade, eller som de var före kommandots ändring, i bufferten. Om det aktuella kommandot var ett rörelsekommando ska dess associerade kommando kastas.
- Om redigeraren är i open- eller visual-kommandoläge ska terminalen avge en varning.
- Redigeraren ska därefter återgå till kommandoläge.
SIGCONT
Skärmen ska uppdateras om redigeraren är i open- eller visual-läge.
SIGHUP
Om redigeringsbufferten har ändrats sedan den senaste fullständiga skrivningen ska ex försöka spara redigeringsbufferten så att den senare kan återställas med flaggan -r eller med kommandot recover i ex. Redigeraren ska inte skriva filen eller återgå till kommando- eller textinmatningsläge, utan ska avsluta med en exitstatus som inte är noll.
SIGTERM
Se SIGHUP.
Åtgärden för alla andra signaler är ospecificerad.
STANDARD UT
Standard output ska endast användas för att skriva prompter till användaren, informationsmeddelanden och rader från filen.
STANDARD ERROR
Standard error ska endast användas för diagnostiska meddelanden.
UTFILER
Utdata från ex ska vara textfiler.
UTÖKAD BESKRIVNING
Endast ex-läget i redigeraren beskrivs i detta avsnitt. Se vi(1p) för ytterligare redigeringsfunktioner som är tillgängliga i ex.
När ett fel inträffar ska ex skriva ett meddelande. Om terminalen stöder ett framhävningsläge, till exempel inverterad video, ska meddelandet skrivas i detta läge. Om terminalen inte stöder ett framhävningsläge och redigeringsflaggan errorbells är satt, ska en varningsåtgärd föregå felmeddelandet.
Som standard ska ex starta i kommandoläge, vilket anges med en : -prompt. Se kommandot prompt. Textinmatningsläge kan aktiveras med kommandona append, insert eller change. Det kan lämnas, och kommandoläge återaktiveras, genom att skriva en punkt, ., ensam i början av en rad.
Initiering i ex och vi
Följande symboler används i detta och följande avsnitt för att ange platser i redigeringsbufferten:
alternativa och aktuella sökvägar
Två sökvägar, kallade aktuell och alternativ, upprätthålls av redigeraren. Alla ex-kommandon som tar filnamn som argument ska sätta dem enligt följande:
- Om ett fil-argument anges till kommandona edit, ex eller recover i ex, eller om ett tag-kommando i ex ersätter innehållet i redigeringsbufferten:
- Om kommandot ersätter innehållet i redigeringsbufferten ska den aktuella sökvägen sättas till fil-argumentet eller till filen som anges av taggen, och den alternativa sökvägen ska sättas till det tidigare värdet av den aktuella sökvägen.
- Annars ska den alternativa sökvägen sättas till fil-argumentet.
- Om ett fil-argument anges till kommandot next i ex:
- Om kommandot ersätter innehållet i redigeringsbufferten ska den aktuella sökvägen sättas till det första fil-argumentet, och den alternativa sökvägen ska sättas till det tidigare värdet av den aktuella sökvägen.
- Om ett fil-argument anges till kommandot file i ex ska den aktuella sökvägen sättas till fil-argumentet, och den alternativa sökvägen ska sättas till det tidigare värdet av den aktuella sökvägen.
- Om ett fil-argument anges till kommandona read och write i ex, det vill säga vid läsning eller skrivning av en fil och inte till programmet som anges av redigeringsflaggan shell, eller om ett fil-argument anges till kommandot xit i ex:
- Om den aktuella sökvägen saknar värde ska den aktuella sökvägen sättas till fil-argumentet.
- Annars ska den alternativa sökvägen sättas till fil-argumentet.
Om den alternativa sökvägen sätts till det tidigare värdet av den aktuella sökvägen när den aktuella sökvägen inte hade något tidigare värde, ska den alternativa sökvägen sakna värde som resultat.
aktuell rad
Den rad i redigeringsbufferten som markören refererar till. Varje kommandobeskrivning anger aktuell rad efter att kommandot har körts, som aktuellt radvärde. När redigeringsbufferten inte innehåller några rader ska aktuell rad vara noll. Se **Adressering i ex**.
aktuell kolumn
Den aktuella displayradskolumn som markören upptar. Kolumnerna ska numreras med början på 1. Varje kommandobeskrivning anger aktuell kolumn efter att kommandot har körts som värdet för aktuell kolumn. Denna kolumn är en ideal kolumn som koms ihåg under redigerarens livstid. Den faktiska displayradskolumn där markören befinner sig kan skilja sig från aktuell kolumn. Se diskussionen om markörpositionering i **Kommandobeskrivningar i vi**.
sätt till icke-blankt
En beskrivning av ett aktuellt kolumnvärde, vilket betyder att aktuell kolumn ska sättas till den sista displayradskolumn där någon del av det första icke-blanka tecknet på raden visas. Om raden inte har några icke-blanka, icke-radslutstecken ska aktuell kolumn sättas till den sista displayradskolumn där någon del av det sista icke-radslutstecknet i raden visas. Om raden är tom ska aktuell kolumn sättas till kolumnposition 1.
Längden på rader i redigeringsbufferten får begränsas till {LINE_MAX} byte. I open- och visual-läge får längden på rader i redigeringsbufferten begränsas till det antal tecken som får plats på displayen. Om någon av gränserna överskrids under redigering ska ett felmeddelande skrivas. Om någon av gränserna överskrids av en rad som läses in från en fil ska ett felmeddelande skrivas och redigeringssessionen får avslutas.
Om redigeraren slutar köra av någon annan anledning än ett användarkommando, och redigeringsbufferten har ändrats sedan den senaste fullständiga skrivningen, ska detta motsvara en asynkron SIGHUP-händelse. Om systemet kraschar ska det motsvara en asynkron SIGHUP-händelse.
Under initieringen, innan den första filen kopieras in i redigeringsbufferten eller några användarkommandon från terminalen bearbetas, ska följande ske:
- Om miljövariabeln EXINIT är satt ska redigeraren köra de ex-kommandon som finns i den variabeln.
- Om variabeln EXINIT inte är satt och samtliga följande villkor är sanna:
- Miljövariabeln HOME är inte null och inte tom.
- Filen .exrc i katalogen som anges av miljövariabeln HOME:
- finns,
- ägs av samma användar-ID som processens verkliga användar-ID, eller processen har lämpliga privilegier,
- inte är skrivbar av någon annan än ägaren,
- då ska redigeraren köra de ex-kommandon som finns i den filen.
- Om och endast om samtliga följande villkor är sanna:
- Den aktuella katalogen är inte den katalog som anges av miljövariabeln HOME.
- Ett kommando i miljövariabeln EXINIT eller i filen .exrc i katalogen som anges av HOME sätter redigeringsflaggan exrc.
- Filen .exrc i den aktuella katalogen:
- finns,
- ägs av samma användar-ID som processens verkliga användar-ID, eller av ett av en implementeringsdefinierad uppsättning användar-ID:n,
- inte är skrivbar av någon annan än ägaren,
- då ska redigeraren försöka köra de ex-kommandon som finns i den filen.
Tomma rader i en .exrc-fil ska ignoreras. Om en .exrc-fil finns men inte läses på grund av ägar- eller behörighetsskäl ska det vara ett fel.
Efter att variabeln EXINIT och eventuella .exrc-filer har bearbetats, ska den första fil som anges av användaren redigeras enligt följande:
- Om användaren angav flaggan -t ska effekten vara som om kommandot tag i ex matades in med det angivna argumentet, med undantag för att om taggbearbetning inte resulterar i en fil att redigera ska effekten vara enligt steg 3 nedan.
- Annars, om användaren angav något fil-argument på kommandoraden, ska effekten vara som om kommandot edit i ex matades in med det första av dessa argument som sitt fil-argument.
- Annars ska effekten vara som om kommandot edit i ex matades in med ett obefintligt filnamn som sitt fil-argument. Det är ospecificerat om denna åtgärd ska sätta den aktuella sökvägen. I en implementation där denna åtgärd inte sätter den aktuella sökvägen ska alla redigeringskommandon som använder aktuell sökväg misslyckas tills ett redigeringskommando sätter den aktuella sökvägen.
Om flaggan -r angavs ska första gången en fil i den ursprungliga argumentlistan, eller en fil angiven med flaggan -t, redigeras, och återställningsinformation tidigare har sparats om den, denna information återställas. Redigeraren ska då bete sig som om innehållet i redigeringsbufferten redan har ändrats. Om det finns flera instanser av filen att återställa ska den senast sparade återställas, och ett informationsmeddelande ska skrivas om att det finns tidigare versioner av filen som kan återställas. Om ingen återställningsinformation om en fil finns ska ett informationsmeddelande om detta skrivas, och redigeringen ska fortsätta som vanligt.
Om flaggan -c angavs ska första gången en fil som redan finns ersätter eller initierar innehållet i redigeringsbufferten, inklusive en fil som kanske inte finns men för vilken återställningsinformation finns när -r anges, aktuell rad sättas till den sista raden i redigeringsbufferten, aktuell kolumn sättas till icke-blankt, och de ex-kommandon som angivits med -c ska köras. I detta fall ska aktuell rad och aktuell kolumn inte sättas enligt beskrivningen för kommandot som ersätter eller initierar redigeringsbuffertens innehåll. Om flaggan -t eller ett tag-kommando är associerat med åtgärden ska dock -c-kommandona köras och därefter ska rörelsen till taggen utföras.
Den aktuella argumentlistan ska initialt sättas till de filnamn som användaren angav på kommandoraden. Om inga filnamn anges av användaren ska den aktuella argumentlistan vara tom. Om flaggan -t angavs är det ospecificerat om något filnamn som uppstår från taggbearbetning ska läggas till först i den aktuella argumentlistan. Om filnamnet läggs till först i den aktuella argumentlistan ska referensen till den aktuella argumentlistan sättas till detta filnamn. Om filnamnet inte läggs till först i den aktuella argumentlistan ska referensen till den aktuella argumentlistan logiskt vara placerad före det första av de filnamn som angavs på kommandoraden. Om flaggan -t inte angavs ska referensen till den aktuella argumentlistan vara det första av filnamnen på kommandoraden.
Adressering i ex
Adressering i ex avser aktuell rad och aktuell kolumn. Adressen till en rad är dess radnummer räknat från 1; adressen till en kolumn är dess antal från början av raden, också räknat från 1. I allmänhet är aktuell rad den sista rad som påverkades av ett kommando. Det aktuella radnumret är adressen till den aktuella raden. I varje kommandobeskrivning anges kommandots effekt på aktuellt radnummer och aktuell kolumn.
Adresser konstrueras enligt följande:
- Tecknet ., punkt, adresserar aktuell rad.
- Tecknet $ adresserar sista raden i redigeringsbufferten.
- Det positiva decimaltalet n adresserar den n:te raden i redigeringsbufferten.
- Adressen 'x refererar till raden som markerats med markörnamnstecknet x, vilket ska vara en liten bokstav från den portabla teckenuppsättningen, backquote-tecknet eller apostroftecknet. Det ska vara ett fel om raden som markerades inte längre finns i redigeringsbufferten eller om markeringen inte har satts. Rader kan markeras med kommandona mark eller k i ex, eller kommandot m i vi.
- Ett reguljärt uttryck omgivet av snedstreck, /, adresserar den första raden som hittas genom sökning framåt från raden efter aktuell rad mot slutet av redigeringsbufferten, och som matchar uttrycket.
- Ett reguljärt uttryck omgivet av frågetecken, ?, adresserar den första raden som hittas genom sökning bakåt från raden före aktuell rad mot början av redigeringsbufferten.
- Ett plustecken, +, eller ett bindestreck/minustecken, -, följt av ett decimaltal adresserar aktuell rad plus eller minus det talet. Ett + eller - som inte följs av ett decimaltal adresserar aktuell rad plus eller minus 1.
Adresser kan följas av noll eller flera adressförskjutningar, eventuellt separerade med blanka tecken. Adressförskjutningar konstrueras enligt följande:
- Ett + eller - omedelbart följt av ett decimaltal ska lägga till eller dra ifrån det angivna antalet rader från adressen. Ett + eller - som inte följs av ett decimaltal ska lägga till eller dra ifrån 1.
- Ett decimaltal ska lägga till det angivna antalet rader till adressen.
Det ska inte vara ett fel om ett mellanliggande adressvärde är mindre än noll eller större än den sista raden i redigeringsbufferten. Det ska vara ett fel om det slutliga adressvärdet är mindre än noll eller större än den sista raden i redigeringsbufferten.
Kommandon tar noll, en eller två adresser. Se beskrivningarna av 1addr och 2addr i **Kommandobeskrivningar i ex**. Om fler än det krävda antalet adresser ges till ett kommando som kräver noll adresser ska det vara ett fel. Annars, om fler än det krävda antalet adresser ges till ett kommando, ska de först angivna adresserna utvärderas och sedan kastas tills det största antalet giltiga adresser återstår.
Adresser ska separeras från varandra med komma, ,, eller semikolon, ;. Om ingen adress anges före eller efter ett komma eller semikolon ska det vara som om adressen till aktuell rad hade angetts före eller efter separatorn. Vid semikolonseparator ska aktuell rad, ., sättas till den första adressen, och först därefter ska nästa adress beräknas. Detta kan användas för att bestämma startrad för framåt- och bakåtsökningar.
Ett procenttecken, %, ska motsvara att ange de två adresserna:
1,$
Alla avgränsande blanka tecken mellan adresser, adressseparatorer eller adressförskjutningar ska kastas.
Kommandoradstolkning i ex
Följande symbol används i detta och följande avsnitt för att beskriva tolkningsbeteende:
escape
Om ett tecken sägs vara backslash-escapat eller control-V-escapat betyder det att tecknet fick eller förlorade en särskild betydelse genom att föregås av ett backslash- respektive control-V-tecken. Om inget annat anges ska escape-tecknet kastas vid den tidpunkten och därefter inte längre beaktas för något syfte.
Kommandoradstolkning ska ske i följande steg. För varje steg ska redan utvärderade tecken ignoreras; uttrycket ”inledande tecken” avser alltså nästa tecken som ännu inte har utvärderats.
- Inledande kolon, :, ska hoppas över.
- Inledande blanka tecken ska hoppas över.
- Om det inledande tecknet är ett dubbelt citationstecken ska tecknen fram till och med nästa icke-backslash-escapade radslut kastas, och eventuella efterföljande tecken ska tolkas som ett separat kommando.
- Inledande tecken som kan tolkas som adresser ska utvärderas. Se **Adressering i ex**.
- Inledande blanka tecken ska hoppas över.
- Om nästa tecken är ett vertikalstreck eller radslut:
- Om nästa tecken är radslut och ex är i open- eller visual-läge ska aktuell rad sättas till den sista angivna adressen, om någon.
- Annars ska det implicita kommandot vara print.
- Radsluts- eller vertikalstreckstecknet ska kastas och eventuella efterföljande tecken ska tolkas som ett separat kommando.
- Kommandonamnet ska bestå av nästa tecken om tecknet inte är alfabetiskt, eller nästa tecken och eventuella efterföljande alfabetiska tecken om tecknet är alfabetiskt, med vissa undantag för bland annat delete, k och s.
- Kommandonamnet ska matchas mot möjliga kommandonamn, och ett kommandonamn som innehåller ett prefix som matchar användarens tecken ska vara det kommando som körs.
Vid tvetydiga kommandoprefix ska följande historiska tolkningar användas:
a append n next t t c change p print u undo ch change pr print un undo e edit r read v v m move re read w write ma mark s s
Implementationstillägg vars namn orsakar liknande tvetydigheter ska inte kontrolleras för matchning förrän alla möjliga matchningar för kommandon specificerade av POSIX.1-2008 har kontrollerats.
Om ett fel inträffar under tolkningen eller körningen av ett ex-kommando ska ett informationsmeddelande skrivas, körningen av kommandot stoppas och markören, det vill säga aktuell rad och kolumn, inte ändras ytterligare.
Inmatningsredigering i ex
Följande symbol används i detta och följande avsnitt för att ange kommandoåtgärder:
ord
I POSIX-lokalen består ett ord av en maximal sekvens av bokstäver, siffror och understreck, avgränsad i båda ändar av andra tecken än bokstäver, siffror eller understreck, eller av början eller slutet på en rad eller redigeringsbufferten.
När inmatningstecken tas emot från användaren, antingen i ex-kommandoläge eller i ex-textinmatningsläge, ska ex aktivera kanonisk inmatningsbehandling enligt definitionen i System Interfaces-volymen av POSIX.1-2017.
Om redigeraren är i ex-textinmatningsläge:
- Om redigeringsflaggan number är satt ska ex visa en prompt med det radnummer som raden skulle få om den matas in, i det format som anges för kommandot number i ex.
- Om redigeringsflaggan autoindent är satt ska ex visa en prompt med autoindent-tecken, enligt beskrivningen av redigeringsflaggan autoindent. autoindent-tecken ska följa radnumret, om något finns.
Om redigeraren är i ex-kommandoläge:
- Om redigeringsflaggan prompt är satt ska inmatning efterfrågas med ett enda kolon, :; annars ska ingen prompt visas.
KOMMANDOBESKRIVNINGAR I EX
Följande symboler används i detta avsnitt för att representera kommandomodifierare. Vissa av dessa modifierare kan utelämnas, och då ska angivna standardvärden användas.
1addr
En enda radadress i någon av formerna som beskrivs i **Adressering i ex**. Standardvärdet ska vara aktuell rad, ., om inget annat anges.
2addr
Två adresser som anger ett inkluderande intervall av rader. Om inga adresser anges ska standardvärdet för 2addr vara endast aktuell rad, .,., om inget annat anges.
count
Ett positivt decimaltal. Om count anges ska det motsvara att en ytterligare adress anges till kommandot, om inget annat anges i kommandobeskrivningarna.
flags
Ett eller flera av tecknen +, -, #, p eller l. Flaggtecknen kan separeras med blanka tecken och anges i valfri ordning och kombination.
buffer
Ett av flera namngivna områden för att hålla text. De namngivna buffertarna anges med alfanumeriska tecken i POSIX-lokalen. Det ska också finnas en icke-namngiven buffert. När ingen buffert anges för redigeringskommandon som använder en buffert ska den icke-namngivna bufferten användas.
file
Kommandotext som används för att härleda en sökväg. Standardvärdet ska vara aktuell sökväg, enligt tidigare definition. Om ingen aktuell sökväg ännu har etablerats ska det vara ett fel, utom där annat särskilt anges i de enskilda kommandobeskrivningarna.
!
Ett tecken som kan läggas till kommandonamnet för att modifiera dess funktion, enligt detaljerna i de enskilda kommandobeskrivningarna.
Abbreviate
ab[breviate][lhs rhs]
Om lhs och rhs inte anges, skriv den aktuella listan över förkortningar och gör inget mer.
Implementationer får begränsa teckenuppsättningen som accepteras i lhs eller rhs, förutom att utskrivbara tecken och blanka tecken inte ska begränsas. Ytterligare begränsningar ska vara implementeringsdefinierade.
I både lhs och rhs kan varje tecken escapes med control-V. Då ska tecknet inte användas för att avgränsa lhs från rhs, och det escapande control-V ska kastas.
I open- och visual-textinmatningsläge, om ett icke-ordtecken eller <ESC> som inte är escapade med control-V matas in efter ett ordtecken, ska en kontroll göras efter en teckensekvens som matchar lhs i textinmatningen under detta kommando. Om den hittas ska effekten vara som om rhs matades in i stället för lhs.
Aktuell rad: oförändrad.
Aktuell kolumn: oförändrad.
Append
[1addr] a[ppend][!]
Gå in i ex-textinmatningsläge. Den inmatade texten ska placeras efter den angivna raden. Om rad noll anges ska texten placeras i början av redigeringsbufferten.
Detta kommando påverkas av redigeringsflaggorna number och autoindent. Om kommandonamnet följs av ! ska inställningen för autoindent växlas endast under detta kommando.
Aktuell rad: sätts till den sista inmatade raden. Om inga rader matades in sätts den till den angivna raden, eller till första raden i redigeringsbufferten om rad noll angavs, eller noll om redigeringsbufferten är tom.
Aktuell kolumn: sätts till icke-blankt.
Arguments
ar[gs]
Skriv den aktuella argumentlistan, med aktuell argumentlistepost, om någon finns, mellan tecknen [ och ].
Aktuell rad: oförändrad.
Aktuell kolumn: oförändrad.
Change
[2addr] c[hange][!][count]
Gå in i ex-textinmatningsläge. Den inmatade texten ska ersätta de angivna raderna. De angivna raderna ska kopieras till den icke-namngivna bufferten, som ska bli en radlägesbuffert.
Detta kommando påverkas av redigeringsflaggorna number och autoindent. Om kommandonamnet följs av ! ska inställningen för autoindent växlas endast under detta kommando.
Aktuell rad: sätts till den sista inmatade raden. Om inga rader matades in sätts den till raden före den första adressen, eller till första raden i redigeringsbufferten om det inte finns några rader före den första adressen, eller noll om redigeringsbufferten är tom.
Aktuell kolumn: sätts till icke-blankt.
Change Directory
chd[ir][!][katalog] cd[!][katalog]
Ändra aktuell arbetskatalog till katalog.
Om inget katalog-argument anges och miljövariabeln HOME är satt till ett icke-null och icke-tomt värde, ska katalog som standard få värdet i miljövariabeln HOME. Om HOME är tom eller odefinierad är standardvärdet för katalog implementeringsdefinierat.
Om inget ! läggs till kommandonamnet, och redigeringsbufferten har ändrats sedan den senaste fullständiga skrivningen, och den aktuella sökvägen inte börjar med /, ska det vara ett fel.
Aktuell rad: oförändrad.
Aktuell kolumn: oförändrad.
Copy
[2addr] co[py] 1addr [flags] [2addr] t 1addr [flags]
Kopiera de angivna raderna efter den angivna destinationsraden. Rad noll anger att raderna ska placeras i början av redigeringsbufferten.
Aktuell rad: sätts till den sista kopierade raden.
Aktuell kolumn: sätts till icke-blankt.
Delete
[2addr] d[elete][buffer][count][flags]
Ta bort de angivna raderna till en buffert, som standard den icke-namngivna bufferten, som ska bli en radlägesbuffert.
Flaggor kan följa direkt efter kommandonamnet. Se **Kommandoradstolkning i ex**.
Aktuell rad: sätts till raden efter de borttagna raderna, eller till den sista raden i redigeringsbufferten om den raden ligger efter slutet av bufferten, eller till noll om redigeringsbufferten är tom.
Aktuell kolumn: sätts till icke-blankt.
Edit
e[dit][!][+kommando][fil] ex[!][+kommando][fil]
Om inget ! läggs till kommandonamnet och redigeringsbufferten har ändrats sedan den senaste fullständiga skrivningen, ska det vara ett fel.
Om fil anges, ersätt det aktuella innehållet i redigeringsbufferten med det aktuella innehållet i fil, och sätt aktuell sökväg till fil. Om fil inte anges, ersätt innehållet i redigeringsbufferten med innehållet i filen som namnges av aktuell sökväg. Om filens innehåll av någon anledning inte kan nås ska redigeringsbufferten vara tom.
Flaggan +kommando ska avgränsas med blanka tecken. Blanka tecken i +kommando kan escapes genom att föregås av backslash. +kommando ska tolkas som ett ex-kommando omedelbart efter att redigeringsbuffertens innehåll har ersatts och aktuell rad och kolumn har satts.
Om redigeringsbufferten är tom:
Aktuell rad: sätts till 0.
Aktuell kolumn: sätts till 1.
Annars, om kommandot körs i ex-kommandoläge eller om argumentet +kommando anges:
Aktuell rad: sätts till sista raden i redigeringsbufferten.
Aktuell kolumn: sätts till icke-blankt.
Annars, om fil utelämnas eller resulterar i aktuell sökväg:
Aktuell rad: sätts till första raden i redigeringsbufferten.
Aktuell kolumn: sätts till icke-blankt.
File
f[ile][fil]
Om ett fil-argument anges ska den alternativa sökvägen sättas till aktuell sökväg, och den aktuella sökvägen sättas till fil.
Skriv ett informationsmeddelande. Om filen har en aktuell sökväg ska den inkluderas i meddelandet. Annars ska meddelandet ange att det inte finns någon aktuell sökväg. Om redigeringsbufferten innehåller rader ska aktuellt radnummer och antalet rader i redigeringsbufferten inkluderas i meddelandet. Annars ska meddelandet ange att redigeringsbufferten är tom. Om redigeringsbufferten har ändrats sedan den senaste fullständiga skrivningen ska detta inkluderas i meddelandet. Om redigeringsflaggan readonly är satt ska detta inkluderas i meddelandet. Meddelandet får innehålla annan ospecificerad information.
Aktuell rad: oförändrad.
Aktuell kolumn: oförändrad.
Global
[2addr] g[lobal] /pattern/ [commands] [2addr] v /pattern/ [commands]
Det valfria tecknet ! efter kommandot global ska motsvara att köra kommandot v.
Om pattern är tomt, till exempel //, eller inte anges, ska det senaste reguljära uttrycket som användes i redigeringskommandot användas som pattern. Mönstret kan avgränsas med snedstreck, som visas i synopsis, eller med vilket icke-alfanumeriskt och icke-blankt tecken som helst utom backslash, vertikalstreck, radslut eller dubbelt citationstecken.
Om inga rader anges ska raderna som standard vara hela filen.
Kommandona global och v är logiskt tvåstegsoperationer. Först markeras raderna inom de angivna raderna där raden, exklusive avslutande radslut, matchar global eller inte matchar v eller global! det angivna mönstret. Därefter körs de ex-kommandon som ges av commands, med aktuell rad, ., satt till varje markerad rad.
Om inga kommandon anges:
- Om redigeraren är i ex-kommandoläge ska det vara som om kommandot print angavs.
- Annars ska inget kommando köras.
Kommandona global, v och undo får inte användas i commands.
Aktuell rad: om inga kommandon körs, sätts den till den sista markerade raden. Annars enligt de körda ex-kommandona.
Aktuell kolumn: om inga kommandon körs, sätts den till icke-blankt. Annars enligt de enskilda ex-kommandona.
Insert
[1addr] i[nsert][!]
Gå in i ex-textinmatningsläge. Den inmatade texten ska placeras före den angivna raden. Om raden är noll eller 1 ska texten placeras i början av redigeringsbufferten.
Detta kommando påverkas av redigeringsflaggorna number och autoindent. Om kommandonamnet följs av ! ska inställningen för autoindent växlas endast under detta kommando.
Aktuell rad: sätts till den sista inmatade raden. Om inga rader matades in sätts den till raden före den angivna raden, eller till första raden i redigeringsbufferten om det inte finns några rader före den angivna raden, eller noll om redigeringsbufferten är tom.
Aktuell kolumn: sätts till icke-blankt.
Join
[2addr] j[oin][!][count][flags]
Sammanfoga texten från de angivna raderna till en enda rad, som ska ersätta de angivna raderna.
Om ett ! läggs till kommandonamnet ska sammanfogningen ske utan modifiering av någon rad, oberoende av aktuell lokal.
Annars, i POSIX-lokalen, sätts aktuell rad till den första av de angivna raderna, och varje efterföljande rad behandlas enligt reglerna för borttagning av inledande blanktecken och insättning av mellanrum.
Aktuell rad: sätts till den första angivna raden.
Aktuell kolumn: sätts till icke-blankt.
List
[2addr] l[ist][count][flags]
Detta kommando ska motsvara kommandot:
[2addr] p[rint][count] l[flags]
Se **Print**.
Map
map[!][lhs rhs]
Om lhs och rhs inte anges:
- Om ! anges, skriv den aktuella listan över mappningar för textinmatningsläge.
- Annars, skriv den aktuella listan över mappningar för kommandoläge.
- Gör inget mer.
Implementationer får begränsa uppsättningen tecken som accepteras i lhs eller rhs, förutom att utskrivbara tecken och blanka tecken inte ska begränsas. Ytterligare begränsningar ska vara implementeringsdefinierade.
Om tecknet ! läggs till kommandonamnet map ska mappningen gälla under textinmatningsläge i open eller visual, i stället för under kommandoläge i open eller visual.
Aktuell rad: oförändrad.
Aktuell kolumn: oförändrad.
Mark
[1addr] ma[rk] tecken [1addr] k tecken
Implementationer ska stödja tecken-värden som består av en enda liten bokstav i POSIX-lokalen samt backquote- och apostroftecknen. Stöd för andra tecken är implementeringsdefinierat.
Sätt den angivna markeringen till den angivna raden och lämplig kolumnposition. Markeringen ska förbli kopplad till raden tills markeringen återställs eller raden tas bort.
Aktuell rad: oförändrad.
Aktuell kolumn: oförändrad.
Move
[2addr] m[ove] 1addr [flags]
Flytta de angivna raderna efter den angivna destinationsraden. Destinationen rad noll anger att raderna ska placeras i början av redigeringsbufferten. Det ska vara ett fel om destinationsraden ligger inom intervallet av rader som ska flyttas.
Aktuell rad: sätts till den sista av de flyttade raderna.
Aktuell kolumn: sätts till icke-blankt.
Next
n[ext][!][+kommando][fil ...]
Om inget ! läggs till kommandonamnet och redigeringsbufferten har ändrats sedan den senaste fullständiga skrivningen, ska det vara ett fel, om inte filen skrivs framgångsrikt enligt redigeringsflaggan autowrite.
Om en eller flera filer anges:
- Sätt argumentlistan till de angivna filnamnen.
- Sätt referensen till aktuell argumentlista till den första posten i argumentlistan.
- Sätt aktuell sökväg till det första angivna filnamnet.
Annars:
- Det ska vara ett fel om det inte finns fler filnamn i argumentlistan efter det filnamn som för närvarande refereras.
- Sätt aktuell sökväg och aktuell argumentlistereferens till filnamnet efter det filnamn som för närvarande refereras i argumentlistan.
Ersätt innehållet i redigeringsbufferten med innehållet i filen som namnges av aktuell sökväg. Om filens innehåll av någon anledning inte kan nås ska redigeringsbufferten vara tom.
Detta kommando påverkas av redigeringsflaggorna autowrite och writeany.
Aktuell rad: sätts enligt beskrivningen för kommandot edit.
Aktuell kolumn: sätts enligt beskrivningen för kommandot edit.
Number
[2addr] nu[mber][count][flags] [2addr] #[count][flags]
Dessa kommandon ska motsvara kommandot:
[2addr] p[rint][count] #[flags]
Se **Print**.
Open
[1addr] o[pen] /pattern/ [flags]
Detta kommando behöver inte stödjas på blocklägesterminaler eller terminaler med otillräckliga funktioner. Om standard in, standard out eller standard error inte är terminalenheter är resultatet ospecificerat.
Gå in i open-läge.
Den avslutande avgränsaren får utelämnas från pattern vid slutet av kommandoraden. Om pattern är tomt, till exempel //, eller inte anges, ska det senaste reguljära uttrycket som användes i redigeraren användas som mönster.
Aktuell rad: sätts till den angivna raden.
Aktuell kolumn: sätts till icke-blankt.
Preserve
pre[serve]
Spara redigeringsbufferten i en form som senare kan återställas med flaggan -r eller med kommandot recover i ex. Efter att filen har bevarats ska ett e-postmeddelande skickas till användaren. Meddelandet ska kunna läsas genom att anropa verktyget mailx. Meddelandet ska innehålla filens namn, tidpunkten för bevarandet och ett ex-kommando som kan användas för att återställa filen. Ytterligare information får inkluderas i e-postmeddelandet.
Aktuell rad: oförändrad.
Aktuell kolumn: oförändrad.
[2addr] p[rint][count][flags]
Skriv de adresserade raderna. Beteendet är ospecificerat om antalet kolumner på displayen är mindre än antalet kolumner som krävs för att skriva ett enda tecken i de rader som skrivs.
Icke-utskrivbara tecken, förutom tabb, ska skrivas som implementeringsdefinierade flerteckensekvenser.
Om flaggan # anges eller redigeringsflaggan number är satt, ska varje rad föregås av sitt radnummer i följande format:
"%6d ", <radnummer>
Om flaggan l anges eller redigeringsflaggan list är satt, ska särskilda escape-sekvenser användas och radslutet markeras med $.
Långa rader ska radbrytas. Längden där radbrytning sker är ospecificerad, men bör vara lämplig för utterminalen.
Aktuell rad: sätts till den sista skrivna raden.
Aktuell kolumn: oförändrad om aktuell rad är oförändrad; annars sätts den till icke-blankt.
Put
[1addr] pu[t][buffer]
Lägg till text från den angivna bufferten, som standard den icke-namngivna bufferten, efter den angivna raden. Rad noll anger att texten ska placeras i början av redigeringsbufferten. Varje del av en rad i bufferten ska bli en ny rad i redigeringsbufferten, oberoende av buffertens läge.
Aktuell rad: sätts till den sista raden som fördes in i redigeringsbufferten.
Aktuell kolumn: sätts till icke-blankt.
Quit
q[uit][!]
Om inget ! läggs till kommandonamnet:
- Om redigeringsbufferten har ändrats sedan den senaste fullständiga skrivningen ska det vara ett fel.
- Om det finns filnamn i argumentlistan efter det filnamn som för närvarande refereras, och det senaste kommandot inte var quit, wq, xit eller ZZ, ska det vara ett fel.
Annars avslutas redigeringssessionen.
Read
[1addr] r[ead][!][fil]
Om ! inte är det första icke-blanka tecknet efter kommandonamnet, ska en kopia av den angivna filen läggas till i redigeringsbufferten efter den angivna raden. Rad noll anger att kopian ska placeras i början av redigeringsbufferten. Antalet rader och byte som lästs ska skrivas.
Om ingen fil anges ska aktuell sökväg vara standard. Om det inte finns någon aktuell sökväg ska fil bli den aktuella sökvägen. Om det varken finns aktuell sökväg eller fil-operand ska det vara ett fel.
Annars, om fil föregås av !, ska resten av raden efter ! expandera tecknen %, # och ! enligt **Kommandoradstolkning i ex**. Därefter ska ex köra programmet som anges av redigeringsflaggan shell.
Aktuell rad: om inga rader läggs till i redigeringsbufferten, oförändrad. Annars, om i open- eller visual-läge, sätts den till första raden som fördes in i redigeringsbufferten. Annars sätts den till sista raden som fördes in.
Aktuell kolumn: sätts till icke-blankt.
Recover
rec[over][!] fil
Om inget ! läggs till kommandonamnet och redigeringsbufferten har ändrats sedan den senaste fullständiga skrivningen, ska det vara ett fel.
Om ingen fil-operand anges ska aktuell sökväg användas. Om det inte finns någon aktuell sökväg eller fil-operand ska det vara ett fel.
Om ingen återställningsinformation tidigare har sparats om fil, ska kommandot recover bete sig identiskt med kommandot edit, och ett informationsmeddelande om detta ska skrivas.
Annars ska aktuell sökväg sättas till fil, och det aktuella innehållet i redigeringsbufferten ersättas med det återställda innehållet i fil.
Aktuell rad: sätts enligt beskrivningen för kommandot edit.
Aktuell kolumn: sätts enligt beskrivningen för kommandot edit.
Rewind
rew[ind][!]
Om inget ! läggs till kommandonamnet och redigeringsbufferten har ändrats sedan den senaste fullständiga skrivningen, ska det vara ett fel, om inte filen skrivs framgångsrikt enligt redigeringsflaggan autowrite.
Om argumentlistan är tom ska det vara ett fel.
Referensen till aktuell argumentlista och aktuell sökväg ska sättas till det första filnamnet i argumentlistan.
Innehållet i redigeringsbufferten ska ersättas med innehållet i filen som namnges av aktuell sökväg.
Fortsättning: Kommandobeskrivningar i ex
Set
se[t][option[=[value]] ...][nooption ...][option? ...][all]
När inga argument anges, skriv värdet för redigeringsflaggan term samt de flaggor vars värden har ändrats från standardinställningarna. När argumentet all anges, skriv alla flaggvärden.
Om ett flaggnamn följs av tecknet ? ska det aktuella värdet för den flaggan skrivas. Tecknet ? kan separeras från flaggnamnet med noll eller flera blanka tecken. Tecknet ? ska endast behövas för booleska flaggor.
Booleska flaggor kan ges värden med formen:
set option
för att slå på dem, eller:
set nooption
för att slå av dem.
Sträng- och numeriska flaggor kan tilldelas med formen:
set option=value
Blanka tecken i strängar kan inkluderas genom att varje blankt tecken föregås av ett escapande backslash. Mer än en flagga kan sättas eller listas med ett enda set-kommando genom att ange flera argument, där varje argument separeras från nästa med ett eller flera blanka tecken.
Se **Redigeringsflaggor i ex** för detaljer om specifika flaggor.
Aktuell rad: oförändrad.
Aktuell kolumn: oförändrad.
Shell
sh[ell]
Anropa programmet som anges i redigeringsflaggan shell med det enda argumentet -i, det vill säga interaktivt läge. Redigeringen återupptas när programmet avslutas.
Aktuell rad: oförändrad.
Aktuell kolumn: oförändrad.
Source
so[urce] fil
Läs och kör ex-kommandon från fil. Tomma rader i filen ska ignoreras.
Aktuell rad: enligt de enskilda ex-kommandona.
Aktuell kolumn: enligt de enskilda ex-kommandona.
Substitute
[2addr] s[ubstitute][/pattern/repl/[options][count][flags]] [2addr] &[options][count][flags]] [2addr] ~[options][count][flags]]
Ersätt den första förekomsten av mönstret pattern med strängen repl på varje angiven rad. Se **Reguljära uttryck i ex** och **Ersättningssträngar i ex**. Vilket icke-alfabetiskt och icke-blankt avgränsningstecken som helst, utom backslash, vertikalstreck, radslut eller dubbelt citationstecken, kan användas i stället för /. Backslash-tecken kan användas för att escape:a avgränsare, backslash-tecken och andra specialtecken.
Den avslutande avgränsaren kan utelämnas från pattern eller repl vid slutet av kommandoraden. Om både pattern och repl inte anges eller är tomma, till exempel //, ska det senaste s-kommandot upprepas.
Om endast pattern inte anges eller är tomt, ska det senaste reguljära uttrycket som användes i redigeraren användas som mönster.
Om endast repl inte anges eller är tomt, ska mönstret ersättas med ingenting.
Om hela ersättningsmönstret är %, ska det senaste ersättningsmönstret till ett s-kommando användas.
Att mata in ett carriage-return-tecken i repl, vilket kräver ett escapande backslash i ex-läge och ett escapande control-V i open- eller vi-läge, ska dela raden vid den punkten och skapa en ny rad i redigeringsbufferten. Carriage-return-tecknet ska kastas.
Om options innehåller bokstaven g, global, ska alla icke-överlappande förekomster av mönstret på raden ersättas.
Om options innehåller bokstaven c, confirm, ska raden skrivas före varje ersättning. Den skrivna raden ska återspegla alla tidigare ersättningar. På följande rad ska blanktecken skrivas under de tecken från raden som finns före det pattern som ska ersättas, och ^-tecken ska skrivas under de tecken som ingår i det pattern som ska ersättas. Verktyget ex ska därefter vänta på ett svar från användaren.
Ett jakande svar ska göra att ersättningen utförs, medan annan inmatning inte ska göra ersättningen. Ett jakande svar ska bestå av en rad med det jakande svaret, enligt aktuell lokal, i början av raden. Denna rad ska kunna redigeras på samma sätt som ex-kommandoraden.
Om kommandot avbryts, se avsnittet **ASYNKRONA HÄNDELSER**, ska alla ändringar som bekräftats av användaren bevaras i redigeringsbufferten efter avbrottet.
Om den ihågkomna sökriktningen inte är satt, ska s-kommandot sätta den till framåt.
I den andra synopsisformen ska kommandot & upprepa föregående substitution, som om kommandot & ersattes av:
s/pattern/repl/
där pattern och repl är de som angavs i föregående kommando s, & eller ~.
I den tredje synopsisformen ska kommandot ~ upprepa föregående substitution, som om ~ ersattes av:
s/pattern/repl/
där pattern ska vara det senaste reguljära uttrycket som angavs till redigeraren, och repl ska komma från föregående substitutionskommando, inklusive & och ~.
Dessa kommandon påverkas av miljövariabeln LC_MESSAGES.
Aktuell rad: sätts till den sista rad där en substitution skedde, eller lämnas oförändrad om ingen substitution skedde.
Aktuell kolumn: sätts till icke-blankt.
Suspend
su[spend][!] st[op][!]
Tillåt kontrollen att återgå till den anropande processen. ex ska suspendera sig själv som om det hade mottagit signalen SIGTSTP. Suspensionen ska endast ske om jobbkontroll är aktiverad i det anropande skalet.
Dessa kommandon påverkas av redigeringsflaggorna autowrite och writeany.
Det aktuella susp-tecknet, se stty(1p), ska motsvara kommandot suspend.
Tag
ta[g][!] taggsträng
Resultaten är ospecificerade om formatet på en tags-fil inte är enligt beskrivningen av verktyget ctags. Se ctags(1p).
Kommandot tag ska söka efter taggsträng i de taggfiler som anges av redigeringsflaggan tag, i den ordning de anges, tills en referens till taggsträng hittas. Filer ska sökas från början till slut. Om ingen referens hittas ska det vara ett fel och ett felmeddelande om detta ska skrivas.
Om referensen inte hittas, eller om ett fel inträffar vid bearbetning av en fil som anges i redigeringsflaggan tag, ska det vara ett fel, och ett felmeddelande ska skrivas vid den första förekomsten av ett sådant fel.
Om taggfilen innehöll ett mönster ska mönstret behandlas som ett reguljärt uttryck som används i redigeraren, till exempel för kommandot s.
Om taggsträng finns i en fil med annat namn än aktuell sökväg, ska aktuell sökväg sättas till namnet på den filen, och innehållet i redigeringsbufferten ska ersättas med innehållet i den filen. I detta fall, om inget ! läggs till kommandonamnet och redigeringsbufferten har ändrats sedan den senaste fullständiga skrivningen, ska det vara ett fel, om inte filen skrivs framgångsrikt enligt redigeringsflaggan autowrite.
Detta kommando påverkas av redigeringsflaggorna autowrite, tag, taglength och writeany.
Aktuell rad: om taggfilen innehöll ett radnummer, sätts den till det radnumret. Om radnumret är större än den sista raden i redigeringsbufferten ska ett felmeddelande skrivas och aktuell rad ska sättas enligt beskrivningen för kommandot edit.
Om taggfilen innehöll ett mönster, sätts aktuell rad till den första förekomsten av mönstret i filen. Om inget matchande mönster hittas ska ett felmeddelande skrivas och aktuell rad sättas enligt beskrivningen för kommandot edit.
Aktuell kolumn: om taggfilen innehöll en radnummerreferens och radnumret inte var större än den sista raden i redigeringsbufferten, eller om taggfilen innehöll ett mönster och mönstret hittades, sätts den till icke-blankt. Annars sätts den enligt beskrivningen för kommandot edit.
Unabbreviate
una[bbrev] lhs
Om lhs inte är en post i den aktuella listan över förkortningar, se **Abbreviate**, ska det vara ett fel. Annars ska lhs tas bort från listan över förkortningar.
Aktuell rad: oförändrad.
Aktuell kolumn: oförändrad.
Undo
u[ndo]
Ångra ändringarna som gjordes av det senaste kommandot som ändrade innehållet i redigeringsbufferten, inklusive undo självt. I detta avseende ska kommandona global, v, open och visual, samt kommandon som orsakas av buffertexekvering och expanderade tangentmappningar, betraktas som enskilda kommandon.
Om ingen åtgärd som kan ångras föregick kommandot undo, ska det vara ett fel.
Om kommandot undo återställer rader som var markerade, ska markeringen också återställas om den inte återställdes efter att raderna togs bort.
Aktuell rad:
- Om rader läggs till eller ändras i filen, sätts aktuell rad till den första rad som lades till eller ändrades.
- Sätts till raden före den första borttagna raden, om den finns.
- Sätts till 1 om redigeringsbufferten inte är tom.
- Sätts till noll.
Aktuell kolumn: sätts till icke-blankt.
Unmap
unm[ap][!] lhs
Om ! läggs till kommandonamnet och lhs inte är en post i listan över mappningsdefinitioner för textinmatningsläge, ska det vara ett fel. Annars ska lhs tas bort från listan över mappningsdefinitioner för textinmatningsläge.
Om inget ! läggs till kommandonamnet och lhs inte är en post i listan över mappningsdefinitioner för kommandoläge, ska det vara ett fel. Annars ska lhs tas bort från listan över mappningsdefinitioner för kommandoläge.
Aktuell rad: oförändrad.
Aktuell kolumn: oförändrad.
Version
ve[rsion]
Skriv ett meddelande som innehåller versionsinformation för redigeraren. Meddelandets format är ospecificerat.
Aktuell rad: oförändrad.
Aktuell kolumn: oförändrad.
Visual
[1addr] vi[sual][type][count][flags]
Om ex för närvarande är i open- eller visual-läge, ska synopsis och beteende för kommandot visual vara samma som för kommandot edit, enligt beskrivningen i **Edit**.
Annars behöver detta kommando inte stödjas på blocklägesterminaler eller terminaler med otillräckliga funktioner. Om standard in, standard out eller standard error inte är terminalenheter är resultatet ospecificerat.
Om count anges ska värdet för redigeringsflaggan window sättas till count, enligt beskrivningen i **window**. Om typtecknet ^ också angavs, ska redigeringsflaggan window sättas innan den används av typtecknet.
Gå in i visual-läge. Om type inte anges ska det vara som om typen + angavs. type ska ge följande effekter:
+
Placera början av den angivna raden högst upp på displayen.
-
Placera slutet av den angivna raden längst ned på displayen.
.
Placera början av den angivna raden i mitten av displayen.
^
Om den angivna raden är mindre än eller lika med värdet för redigeringsflaggan window, sätt raden till 1. Annars minskas raden med värdet för window minus 1. Placera början av denna rad så nära botten av de visade raderna som möjligt, samtidigt som antalet rader enligt window fortfarande visas.
Aktuell rad: sätts till den angivna raden.
Aktuell kolumn: sätts till icke-blankt.
Write
[2addr] w[rite][!][>>][fil] [2addr] w[rite][!][fil] [2addr] wq[!][>>][fil]
Om inga rader anges ska standardvärdet vara hela filen.
Kommandot wq ska motsvara ett write-kommando följt av ett quit-kommando. wq! ska motsvara write! följt av quit. I båda fallen ska quit inte försöka köras om write misslyckas.
Om kommandonamnet inte följs av ett eller flera blanka tecken, eller om fil inte föregås av !, ska skrivningen ske till en fil.
- Om argumentet >> anges och filen redan finns, ska raderna läggas till i filen i stället för att ersätta dess innehåll. Om >> anges och filen inte redan finns är det ospecificerat om skrivningen ska fortsätta som om >> inte hade angetts eller om skrivningen ska misslyckas.
- Om redigeringsflaggan readonly är satt ska skrivningen misslyckas.
- Om fil anges, inte är aktuell sökväg, och filen finns, ska skrivningen misslyckas.
- Om fil inte anges ska aktuell sökväg användas. Om det inte finns någon aktuell sökväg ska kommandot write misslyckas.
- Om aktuell sökväg används, och aktuell sökväg har ändrats av kommandona file eller read, och filen finns, ska skrivningen misslyckas. Om skrivningen lyckas ska senare write-kommandon inte misslyckas av detta skäl, såvida aktuell sökväg inte ändras igen.
- Om inte hela redigeringsbufferten skrivs och filen som ska skrivas redan finns, ska skrivningen misslyckas.
För reglerna 1, 2, 3 och 5 kan skrivningen tvingas genom att lägga till tecknet ! till kommandonamnet.
För reglerna 2, 3 och 5 kan skrivningen tvingas genom att sätta redigeringsflaggan writeany.
Ytterligare implementeringsdefinierade tester kan orsaka att skrivningen misslyckas.
Om redigeringsbufferten är tom ska en fil utan innehåll skrivas.
Ett informationsmeddelande ska skrivas med antalet rader och byte som skrevs.
Annars, om kommandot följs av ett eller flera blanka tecken och filen föregås av !, ska resten av raden efter ! expandera tecknen %, # och ! enligt **Kommandoradstolkning i ex**.
Verktyget ex ska därefter skicka två argument till programmet som anges av redigeringsflaggan shell. Det första ska vara -c och det andra ska vara de expanderade argumenten till kommandot write som ett enda argument. De angivna raderna ska skrivas till kommandots standard in. Programmets standard error och standard output, om några finns, ska skrivas enligt beskrivningen för kommandot print. Om det sista tecknet i denna utdata inte är ett radslut ska ett radslut skrivas i slutet av utdata.
Den särskilda betydelsen av ! efter kommandot write kan åsidosättas genom att escape:a det med ett backslash-tecken.
Aktuell rad: oförändrad.
Aktuell kolumn: oförändrad.
Write and Exit
[2addr] x[it][!][fil]
Om redigeringsbufferten inte har ändrats sedan den senaste fullständiga write-körningen, ska xit motsvara kommandot quit, eller, om ! läggs till kommandonamnet, quit!.
Annars ska xit motsvara kommandot wq, eller, om ! läggs till kommandonamnet, wq!.
Aktuell rad: oförändrad.
Aktuell kolumn: oförändrad.
Yank
[2addr] ya[nk][buffer][count]
Kopiera de angivna raderna till den angivna bufferten, som standard den icke-namngivna bufferten, som ska bli en radlägesbuffert.
Aktuell rad: oförändrad.
Aktuell kolumn: oförändrad.
Adjust Window
[1addr] z[!][type ...][count][flags]
Om ingen rad anges ska aktuell rad vara standardvärdet. Om även type utelämnas ska värdet för aktuell rad först ökas med 1. Om ökningen av aktuell rad skulle göra att den blir större än den sista raden i redigeringsbufferten, ska det vara ett fel.
Om det finns blanka tecken mellan argumentet type och det föregående kommandonamnet z eller det valfria !, ska det vara ett fel.
Om count anges ska värdet för redigeringsflaggan window sättas till count, enligt beskrivningen i **window**. Om count utelämnas ska standardvärdet vara två gånger värdet för redigeringsflaggan scroll, eller, om ! angavs, antalet rader i displayen minus 1.
Om type utelämnas ska count rader med början på den angivna raden skrivas. Annars ska count rader med början på raden som anges av argumentet type skrivas.
Argumentet type ska ändra vilka rader som skrivs. Möjliga värden är:
-
Den angivna raden ska minskas med följande värde:
(((antalet '-' tecken) × count) - 1)
Om beräkningen skulle resultera i ett tal mindre än 1, ska det vara ett fel. Skriv rader från redigeringsbufferten med början på det nya radvärdet, tills count rader eller den sista raden i redigeringsbufferten har skrivits.
+
Den angivna raden ska ökas med följande värde:
(((antalet '+' tecken) - 1) × count) + 1
Om beräkningen skulle resultera i ett tal större än den sista raden i redigeringsbufferten, ska det vara ett fel. Skriv rader från redigeringsbufferten med början på det nya radvärdet, tills count rader eller den sista raden i redigeringsbufferten har skrivits.
=, .
Om mer än ett enda . eller = anges ska det vara ett fel. Följande steg ska utföras:
- Om count är noll ska ingenting skrivas.
- Skriv så många av de N raderna före aktuell rad i redigeringsbufferten som finns.
- Om = angavs som typtecken, skriv en rad bestående av det mindre av antalet kolumner i displayen dividerat med två, eller 40 --tecken.
- Skriv aktuell rad.
- Upprepa steg 3.
- Skriv så många av de N raderna efter aktuell rad i redigeringsbufferten som finns.
^
Den angivna raden ska minskas med följande värde:
(((antalet '^' tecken) + 1) × count) - 1
Om beräkningen skulle resultera i ett tal mindre än 1, ska det vara ett fel. Skriv rader från redigeringsbufferten med början på det nya radvärdet, tills count rader eller den sista raden i redigeringsbufferten har skrivits.
Aktuell rad: sätts till den sista skrivna raden, om typen inte är =. Om typen är =, sätts den till den angivna raden.
Aktuell kolumn: sätts till icke-blankt.
Escape
! kommando [addr]! kommando
Innehållet på raden efter ! ska expandera tecknen %, # och ! enligt **Kommandoradstolkning i ex**. Om expansionen gör att radens text ändras ska den visas igen, föregången av ett enda !-tecken.
Verktyget ex ska köra programmet som anges av redigeringsflaggan shell. Det ska skicka två argument till programmet: det första ska vara -c, och det andra ska vara de expanderade argumenten till kommandot ! som ett enda argument.
Om inga rader anges ska programmets standard in, standard out och standard error sättas till de värden som ex-programmet hade när det anropades. Dessutom ska ett varningsmeddelande skrivas om redigeringsbufferten har ändrats sedan den senaste fullständiga skrivningen och redigeringsflaggan warn är satt.
Om rader anges ska de skickas till programmet som standard in, och programmets standard output och standard error ska ersätta dessa rader i redigeringsbufferten. Varje rad i programmets utdata ska bli en separat rad i redigeringsbufferten. Före ersättningen ska de angivna raderna kopieras till den icke-namngivna bufferten, som ska bli en radlägesbuffert.
Om redigeraren är i ex-läge ska ett enda !-tecken skrivas när programmet avslutas.
Detta kommando påverkas av redigeringsflaggorna shell och warn. Om inga rader anges påverkas kommandot också av autowrite och writeany. Om rader anges påverkas kommandot av redigeringsflaggan autoprint.
Aktuell rad:
- Om inga rader anges, oförändrad.
- Annars, sätts till den sista rad som lästes in, om några rader lästes in.
- Annars, sätts till raden före den första angivna raden, om den finns.
- Annars, sätts till första raden i redigeringsbufferten om bufferten inte är tom.
- Annars, sätts till noll.
Aktuell kolumn: om inga rader anges, oförändrad. Annars sätts den till icke-blankt.
Shift Left
[2addr] <[< ...][count][flags]
Flytta de angivna raderna mot radens början. Antalet kolumnpositioner som ska flyttas ska vara antalet kommandotecken multiplicerat med värdet för redigeringsflaggan shiftwidth. Endast inledande blanka tecken ska tas bort eller ändras till andra blanka tecken vid flyttningen. Andra tecken ska inte påverkas.
Raderna som ska flyttas ska kopieras till den icke-namngivna bufferten, som ska bli en radlägesbuffert.
Detta kommando påverkas av redigeringsflaggan autoprint.
Aktuell rad: sätts till den sista raden i de angivna raderna.
Aktuell kolumn: sätts till icke-blankt.
Shift Right
[2addr] >[> ...][count][flags]
Flytta de angivna raderna bort från radens början. Antalet kolumnpositioner som ska flyttas ska vara antalet kommandotecken multiplicerat med värdet för redigeringsflaggan shiftwidth. Flyttningen ska utföras genom att blanka tecken läggs till som prefix till raden eller genom att inledande blanka tecken ändras till andra blanka tecken. Tomma rader ska inte ändras.
Raderna som ska flyttas ska kopieras till den icke-namngivna bufferten, som ska bli en radlägesbuffert.
Detta kommando påverkas av redigeringsflaggan autoprint.
Aktuell rad: sätts till den sista raden i de angivna raderna.
Aktuell kolumn: sätts till icke-blankt.
Control-D
<control>-D
Skriv de nästa n raderna, där n är det minsta av värdena för redigeringsflaggan scroll och antalet rader efter aktuell rad i redigeringsbufferten. Om aktuell rad är den sista raden i redigeringsbufferten ska det vara ett fel.
Aktuell rad: sätts till den sista skrivna raden.
Aktuell kolumn: sätts till icke-blankt.
Skriv radnummer
[1addr] = [flags]
Om line inte anges ska standardvärdet vara den sista raden i redigeringsbufferten. Skriv radnumret för den angivna raden.
Aktuell rad: oförändrad.
Aktuell kolumn: oförändrad.
Execute
[2addr] @ buffer [2addr] * buffer
Om ingen buffert anges, eller om den anges som @ eller *, ska den senast körda bufferten användas. Om ingen tidigare buffert har körts ska det vara ett fel.
För varje rad som anges av adresserna ska aktuell rad, ., sättas till den angivna raden, och innehållet i den namngivna buffer, så som det var när kommandot @ kördes, ska köras som ex-kommandon. För varje rad i en radlägesbuffert, och alla utom den sista raden i en teckenlägesbuffert, ska ex-kommandotolkaren bete sig som om raden avslutades med ett radslut.
Om ett fel inträffar under denna process, eller om en rad som anges av adresserna inte finns när aktuell rad skulle sättas till den, eller om mer än en rad angavs av adresserna och innehållet i redigeringsbufferten ersätts, till exempel av kommandot :edit i ex, ska ett felmeddelande skrivas. Inga fler kommandon som orsakas av körningen av detta kommando ska då bearbetas.
Aktuell rad: enligt de enskilda ex-kommandona.
Aktuell kolumn: enligt de enskilda ex-kommandona.
Reguljära uttryck i ex
Verktyget ex ska stödja reguljära uttryck som är en övermängd av de grundläggande reguljära uttryck som beskrivs i Base Definitions-volymen av POSIX.1-2017, avsnitt 9.3, Basic Regular Expressions. Ett tomt reguljärt uttryck, //, ska motsvara det senaste reguljära uttryck som påträffades.
Reguljära uttryck kan användas i adresser för att ange rader och i vissa kommandon, till exempel kommandot substitute, för att ange delar av en rad som ska ersättas.
Följande konstruktioner kan användas för att utöka de grundläggande reguljära uttrycken:
<
Matcha början av ett ord. Se definitionen av ord i början av **Kommandobeskrivningar i ex**.
>
Matcha slutet av ett ord.
~
Matcha ersättningsdelen i det senaste substitute-kommandot. Tilde-tecknet, ~, kan escape:as i ett reguljärt uttryck för att bli ett vanligt tecken utan särskild betydelse. Backslash-tecknet ska då kastas.
När redigeringsflaggan magic inte är satt ska de enda tecken med särskild betydelse vara ^ i början av ett mönster, $ i slutet av ett mönster, och backslash. Tecknen ., *, [ och ~ ska behandlas som vanliga tecken om de inte föregås av backslash. När de föregås av backslash ska de återfå sin särskilda betydelse, eller i fallet backslash hanteras som ett enda backslash. Backslash-tecken som används för att escape:a andra tecken ska kastas.
Ersättningssträngar i ex
Tecknet &, eller & om redigeringsflaggan magic inte är satt, i ersättningssträngen ska stå för texten som matchades av mönstret som ska ersättas.
Tecknet ~, eller ~ om magic inte är satt, ska ersättas av ersättningsdelen i föregående substitute-kommando.
Sekvensen \n, där n är ett heltal, ska ersättas av texten som matchades av motsvarande bakåtreferensuttryck. Om motsvarande bakåtreferensuttryck inte matchar ska tecknen \n ersättas av den tomma strängen.
Strängarna \l, \u, \L och \U kan användas för att ändra skiftläge på element i ersättningssträngen. Strängen \l ska göra att följande tecken konverteras till gemen. Strängen \u ska göra att följande tecken konverteras till versal. Strängen \L ska göra att alla efterföljande tecken konverteras till gemener medan de infogas av substitutionen, tills strängen \e eller \E, eller slutet av ersättningssträngen, påträffas. Strängen \U fungerar på motsvarande sätt men konverterar till versaler.
Annars ska varje tecken som följer ett backslash behandlas som det bokstavliga tecknet, och det escapande backslash-tecknet ska kastas.
Exempel på skiftlägeskonvertering med kommandot s:
:p The cat sat on the mat. :s/\<.at\>/\u&/gp The Cat Sat on the Mat. :s/S\(.*\)M/S\U\1\eM/p The Cat SAT ON THE Mat.
Redigeringsflaggor i ex
Verktyget ex har ett antal flaggor som ändrar dess beteende. Dessa flaggor har standardinställningar som kan ändras med kommandot set.
Flaggor är booleska om inget annat anges.
autoindent, ai
Standard: inte satt
Om autoindent är satt ska varje rad i inmatningsläge dras in, först med så många tabbtecken som möjligt enligt redigeringsflaggan tabstop, och därefter med blanktecken, för att justeras mot en annan rad.
I open- eller visual-läge och när textinmatningen är del av ett radorienterat kommando ska indragningen justeras till första kolumnen.
Annars ska indragningen sättas utifrån föregående infogad rad, föregående aktuell rad eller första kolumnen, beroende på sammanhang.
För kommandona a, i och c i ex ska indragningen sättas enligt kommandots placering och föregående text.
autoprint, ap
Standard: satt
Om autoprint är satt ska aktuell rad skrivas efter varje ex-kommando som ändrar innehållet i den aktuella redigeringsbufferten, samt efter varje tag-kommando där taggens sökmönster hittades eller taggens radnummer var giltigt, utom i vissa fall:
- Kommandot kördes i open- eller visual-läge.
- Kommandot kördes som del av ett global- eller v-kommando eller en @-buffertexekvering.
- Kommandot var den form av read som läser en fil till redigeringsbufferten.
- Kommandot var append, change eller insert.
- Kommandot avslutades inte av ett radslut.
- Den aktuella raden ska skrivas av en flagga som angavs till kommandot.
autowrite, aw
Standard: inte satt
Om autowrite är satt, och redigeringsbufferten har ändrats sedan den senast skrevs fullständigt till någon fil, ska innehållet i redigeringsbufferten skrivas som om kommandot write i ex hade angetts utan argument, innan varje kommando som påverkas av autowrite körs.
Att lägga till tecknet ! till kommandonamnet för något av ex-kommandona utom ! ska förhindra skrivningen. Om skrivningen misslyckas ska det vara ett fel och kommandot ska inte köras.
beautify, bf
Standard: inte satt
Om beautify är satt ska alla icke-utskrivbara tecken, utom tabb-, radsluts- och sidmatningstecken, kastas från text som läses in från filer.
directory, dir
Standard: implementeringsdefinierad
Värdet för denna flagga anger den katalog där redigeringsbufferten ska placeras. Om katalogen inte är skrivbar för användaren ska redigeraren avslutas.
edcompatible, ed
Standard: inte satt
Gör att närvaron av suffixen g och c på substitute-kommandon koms ihåg och växlas genom att suffixen upprepas.
errorbells, eb
Standard: inte satt
Om redigeraren är i ex-läge, terminalen inte stöder framhävningsläge, och errorbells är satt, ska felmeddelanden föregås av att terminalen avger en varning.
exrc
Standard: inte satt
Om exrc är satt ska ex läsa eventuell .exrc-fil i den aktuella katalogen enligt beskrivningen i **Initiering i ex och vi**. Om exrc inte är satt ska ex ignorera eventuell .exrc-fil i den aktuella katalogen under initiering, om inte den aktuella katalogen är den som anges av miljövariabeln HOME.
ignorecase, ic
Standard: inte satt
Om ignorecase är satt ska tecken som har både versala och gemena representationer betraktas som ekvivalenta vid jämförelse med reguljära uttryck.
Redigeringsflaggan ignorecase ska påverka alla ihågkomna reguljära uttryck. Om ignorecase stängs av ska till exempel ett senare n-kommando i vi söka efter det senaste grundläggande reguljära uttrycket skiftlägeskänsligt.
list
Standard: inte satt
Om list är satt ska rader i redigeringsbufferten som skrivs i ex-kommandoläge skrivas enligt kommandot print med flaggan l. I open- eller visual-läge ska varje rad i redigeringsbufferten visas enligt kommandot print i ex med flaggan l.
I open- eller visual-textinmatningsläge, när markören inte vilar på något tecken i raden, ska den vila på tecknet $ som markerar radens slut.
magic
Standard: satt
Om magic är satt ändras tolkningen av tecken i reguljära uttryck och substitutionsersättningssträngar. Se **Reguljära uttryck i ex** och **Ersättningssträngar i ex**.
mesg
Standard: satt
Om mesg är satt ska behörigheten för andra att använda kommandona write eller talk för att skriva till terminalen slås på i open- eller visual-läge.
Skalkommandot:
mesg n
ska ha företräde framför varje inställning av flaggan mesg i ex.
number, nu
Standard: inte satt
Om number är satt ska rader i redigeringsbufferten som skrivs i ex-kommandoläge skrivas med radnummer, i det format som anges av kommandot print med flaggan #. I ex-textinmatningsläge ska varje rad föregås av det radnummer den kommer att ha i filen.
I open- eller visual-läge ska varje rad i redigeringsbufferten visas med ett föregående radnummer. Radnumret ska inte betraktas som del av raden vid utvärdering av aktuell kolumn.
paragraphs, para
Standard i POSIX-lokalen: IPLPPPQPP LIpplpipbp
Redigeringsflaggan paragraphs ska definiera ytterligare styckegränser för kommandon i open- och visual-läge. Flaggan kan sättas till en teckensträng som består av noll eller flera teckenpar. Det ska vara ett fel att sätta den till ett udda antal tecken.
prompt
Standard: satt
Om prompt är satt ska inmatning i ex-kommandoläge efterfrågas med ett kolon, :'. Om den inte är satt ska ingen prompt skrivas.
readonly
Standard: se text
Om redigeringsflaggan readonly är satt ska skrivskyddat läge aktiveras. Se **Write**.
Flaggan readonly ska initieras som satt om något av följande villkor är sant:
- Kommandoradsflaggan -R angavs.
- Åtgärder motsvarande funktionen access() med aktuell sökväg och konstanten W_OK visar att filen saknar skrivbehörighet.
Flaggan readonly får initieras som satt av andra implementeringsdefinierade skäl. Den ska inte initieras som osatt baserat på särskilda privilegier hos användaren eller processen.
Flaggan readonly ska initieras om varje gång innehållet i redigeringsbufferten ersätts, till exempel av kommandot edit eller next, om inte användaren uttryckligen har satt den. I så fall ska den förbli satt tills användaren uttryckligen stänger av den.
redraw
Standard: inte satt
Redigeraren simulerar en intelligent terminal på en dum terminal. Eftersom detta sannolikt kräver en stor mängd utdata till terminalen är det endast användbart vid höga överföringshastigheter.
remap
Standard: satt
Om remap är satt ska map-översättning tillåta mappningar definierade i termer av andra mappningar. Översättningen ska fortsätta tills ett slutligt resultat erhålls. Om flaggan inte är satt ska endast enstegsöversättning göras.
report
Standard: 5
Värdet för redigeringsflaggan report anger hur många rader som måste läggas till, kopieras, tas bort eller ändras i redigeringsbufferten för att ett informationsmeddelande ska skrivas till användaren.
Meddelandet ska innehålla antalet rader som lades till, kopierades, togs bort eller ändrades, men är i övrigt ospecificerat.
scroll, scr
Standard: (antalet rader i displayen - 1) / 2
Värdet för redigeringsflaggan scroll bestämmer antalet rader som rullas av kommandona control-D och z i ex. För kommandona control-D och control-U i vi ska det vara det initiala antalet rader som rullas när inget tidigare control-D- eller control-U-kommando har körts.
sections
Standard i POSIX-lokalen: NHSHH HUnhsh
Redigeringsflaggan sections ska definiera ytterligare sektionsgränser för kommandon i open- och visual-läge. Flaggan kan sättas till en teckensträng som består av noll eller flera teckenpar. Det ska vara ett fel att sätta den till ett udda antal tecken.
shell, sh
Standard: från miljövariabeln SHELL
Värdet för denna flagga ska vara en sträng. Standardvärdet ska tas från miljövariabeln SHELL. Om SHELL är null eller tom, ska verktyget sh, se sh(1p), vara standard.
shiftwidth, sw
Standard: 8
Värdet för denna flagga ska ange bredden i kolumner för en indragningsnivå som används vid automatisk indragning och av skiftkommandona < och >.
showmatch, sm
Standard: inte satt
Funktionen som beskrivs för redigeringsflaggan showmatch behöver inte stödjas på blocklägesterminaler eller terminaler med otillräckliga funktioner.
Om showmatch är satt i open- eller visual-läge, och ett ) eller } skrivs, och motsvarande ( eller { för närvarande är synligt på displayen, ska motsvarande tecken markeras genom att markören flyttas till dess plats under en ospecificerad tid.
showmode
Standard: inte satt
Om showmode är satt ska aktuellt redigeringsläge visas på displayens sista rad i open- eller visual-läge. Kommandoläge och textinmatningsläge ska särskiljas. Andra ospecificerade lägen och implementeringsdefinierad information får visas.
slowopen
Standard: inte satt
Om slowopen är satt under textinmatningsläge i open och visual, ska redigeraren inte uppdatera andra delar av displayen än de displaykolumner som visar tecknen som användaren matar in.
tabstop, ts
Standard: 8
Värdet för denna redigeringsflagga ska ange kolumngränsen som används av ett tabbtecken på displayen.
taglength, tl
Standard: 0
Värdet för denna redigeringsflagga ska ange det maximala antalet tecken som betraktas som signifikanta i det användarangivna taggnamnet och i taggnamnet från tags-filen. Om värdet är noll ska alla tecken i båda taggnamnen vara signifikanta.
tags
Standard: se text
Värdet för denna redigeringsflagga ska vara en sträng av sökvägar till filer som används av kommandot tag, avgränsade med blanka tecken. Standardvärdet är ospecificerat.
term
Standard: från miljövariabeln TERM
Värdet för denna redigeringsflagga ska vara en sträng. Standardvärdet ska tas från miljövariabeln TERM. Om TERM är tom eller null är standardvärdet ospecificerat. Redigeraren ska använda värdet för denna flagga för att bestämma typen av displayenhet.
Resultaten är ospecificerade om användaren ändrar värdet för redigeringsflaggan term efter att redigeraren har initierats.
terse
Standard: inte satt
Om terse är satt får felmeddelanden vara mindre utförliga. Med detta undantag är felmeddelanden ospecificerade. Alla felmeddelanden behöver inte ändras för olika inställningar av denna flagga.
warn
Standard: satt
Om warn är satt, och innehållet i redigeringsbufferten har ändrats sedan det senast skrevs fullständigt, ska redigeraren skriva ett varningsmeddelande före vissa !-kommandon. Se **Escape**.
window
Standard: se text
Ett värde som används i open- och visual-läge av kommandona control-B och control-F, och i visual-läge för att ange antalet rader som visas när skärmen ritas om.
Om kommandoradsflaggan -w inte anges, ska standardvärdet sättas till värdet för miljövariabeln LINES. Om LINES är tom eller null ska standardvärdet vara antalet rader i displayen minus 1.
Om redigeringsflaggan window sätts till noll eller till ett värde större än antalet rader i displayen minus 1, ska window sättas till antalet rader i displayen minus 1.
Terminalradens baudrate får ändra standardvärdet på ett implementeringsdefinierat sätt.
wrapmargin, wm
Standard: 0
Om värdet för denna redigeringsflagga är noll ska den inte ha någon effekt.
Om aktuell lokal inte är POSIX-lokalen är effekten av denna flagga implementeringsdefinierad.
Annars ska den ange ett antal kolumner från terminalens högermarginal.
Under textinmatningsläge i open och visual ska redigeraren, för varje tecken där någon del av tecknet visas i en kolumn som ligger mindre än wrapmargin kolumner från displayradens slutmarginal, bete sig enligt reglerna för automatisk radbrytning.
Om redigeringsflaggan autoindent är satt och de beskrivna radbrytningshändelserna utförs, ska alla blanka tecken vid eller efter markören på den aktuella raden kastas.
Slutmarginalen ska bestämmas av systemet eller åsidosättas av användaren enligt beskrivningen för COLUMNS i avsnittet **MILJÖVARIABLER**.
wrapscan, ws
Standard: satt
Om wrapscan är satt ska sökningar, det vill säga adresserna / eller ? i ex, eller kommandona /, ?, N och n i open- och visual-läge, fortsätta runt början eller slutet av redigeringsbufferten. Om flaggan inte är satt ska sökningar stoppa vid början eller slutet av redigeringsbufferten.
writeany, wa
Standard: inte satt
Om writeany är satt ska vissa av kontrollerna som utförs vid körning av kommandot write i ex undertryckas, enligt beskrivningen för redigeringsflaggan autowrite.
EXITSTATUS
Följande exitvärden ska returneras:
0 Lyckad körning. >0 Ett fel inträffade.
KONSEKVENSER AV FEL
När ett fel påträffas och standard in inte är en terminalenhetsfil, ska ex inte skriva filen eller återgå till kommando- eller textinmatningsläge, utan ska avsluta med en exitstatus som inte är noll.
Annars, när ett oåterställbart fel påträffas, ska det motsvara en asynkron SIGHUP-händelse.
Annars, när ett fel påträffas, ska redigeraren bete sig enligt beskrivningen i **Kommandoradstolkning i ex**.
Följande avsnitt är informativa.
ANVÄNDNING I PROGRAM
Om en SIGSEGV-signal tas emot medan ex sparar en fil, kanske filen inte sparas framgångsrikt.
Kommandot next kan acceptera mer än en fil, så användning som:
next `ls [abc]*`
är giltig. Den skulle till exempel inte vara giltig för kommandona edit eller read, eftersom de förväntar sig endast en fil och ospecificerade resultat uppstår.
EXEMPEL
Inga.
FRAMTIDA RIKTNING
Ingen.
SE ÄVEN
Section 2.9.1.1, Command Search and Execution, ctags(1p), ed(1p), sed(1p), sh(1p), stty(1p), vi(1p)
The Base Definitions volume of POSIX.1-2017, Table 5-1, Escape Sequences and Associated Actions, Chapter 8, Environment Variables, Section 9.3, Basic Regular Expressions, Section 12.2, Utility Syntax Guidelines
The System Interfaces volume of POSIX.1-2017, access(3p)
UPPHOVSRÄTT
Delar av denna text är återtryckta och återgivna i elektronisk form från IEEE Std 1003.1-2017, Standard for Information Technology -- Portable Operating System Interface (POSIX), The Open Group Base Specifications Issue 7, 2018 Edition, Copyright (C) 2018 av Institute of Electrical and Electronics Engineers, Inc. och The Open Group.
Vid eventuell avvikelse mellan denna version och den ursprungliga standarden från IEEE och The Open Group är den ursprungliga standarden från IEEE och The Open Group det avgörande dokumentet. Den ursprungliga standarden kan erhållas online på:
[1](http://www.opengroup.org/unix/online.html)
Eventuella typografiska eller formateringsfel som förekommer på denna sida har sannolikt införts under konverteringen av källfilerna till manualsidesformat. För att rapportera sådana fel, se:
[2](https://www.kernel.org/doc/man-pages/reporting_bugs.html)
Manualsidans sidfot:
IEEE/The Open Group 2017 EX(1P)
Sidor som hänvisar till denna sida
HTML-rendering
HTML-renderingen skapades 2026-01-16 av Michael Kerrisk, författare till The Linux Programming Interface.
För information om fördjupade utbildningar i Linux/UNIX-systemprogrammering, se:
[3](https://man7.org/training/)
Sidslut
Orginalhemsidan på Engelska https://man7.org/linux/man-pages/man1/ex.1p.html
Det här är en maskinöversättning av Linux man sidor till svenska. Om du hittar fel är vi tacksamma om du rapporterar dem via formuläret som finns på
https://www.linux.se/kontaka-linux-se/
Tack till Datorservice som har sponsrat Linux.se med webbhotell.