1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
|
===============================================================================
= V ä l k o m m e n t i l l M N V - h a n d l e d n i n g e n =
= - Version 1.7 =
===============================================================================
= K A P I T E L T V Å =
===============================================================================
Hic Sunt Dracones: om detta är din första kontakt med MNV och du
avsåg att börja med introduktionskapitlet, skriv vänligen
:q!<ENTER> och kör mnvtutor för kapitel 1 istället.
Den ungefärliga tiden för att slutföra detta kapitel är 8-10 minuter,
beroende på hur mycket tid som läggs på experimentering.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lektion 2.1.1: BEMÄSTRA TEXTOBJEKT
** Arbeta på logiska textblock med precision med hjälp av textobjekt **
1. Öva på ordoperationer:
- Placera markören på valfritt ord i raden nedan
- Skriv diw för att radera INRE ord (ord utan omgivande mellanslag)
- Skriv daw för att radera ETT ORD (inklusive efterföljande mellanslag)
- Prova med andra operatorer: ciw (ändra), yiw (kopiera), gqiw (formatera)
---> Öva på: "MNVs", (text_objekt), och 'kraftfulla' ord här.
2. Arbeta med innehåll inom parenteser:
- Placera markören inuti något () {} [] <> par nedan
- Skriv di( eller dib (radera inuti parentes)
- Skriv da( eller dab (radera runt parenteser)
- Prova samma med i"/a" för citattecken, it/at för HTML/XML-taggar
---> Testfall: {klamrar}, [hakparenteser], <vinkelparenteser>, och "citerade" objekt.
3. Stycke- och meningsmanipulering:
- Använd dip för att radera inre stycke (markören var som helst i stycket)
- Använd vap för att visuellt markera hela stycket
- Prova das för att radera en mening (fungerar mellan .!? skiljetecken)
4. Avancerade kombinationer:
- ciwnew<ESC> - Ändra nuvarande ord till "new"
- ciw"<CTRL-R>-"<ESC> - Omslut nuvarande ord med citattecken
- gUit - Gör HTML-tagginnehåll till versaler
- va"p - Markera citerad text och klistra över den
---> Slutövning: (Ändra "denna" text) genom att [tillämpa {olika} operationer]<
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lektion 2.1.2: NAMNGIVNA REGISTER
** Lagra två kopierade ord samtidigt och klistra sedan in dem **
1. Flytta markören till raden nedan markerad --->
2. Navigera till valfri punkt på ordet 'Edward' och skriv "ayiw
MINNESREGEL: till register(") namngivet (a) (y)ank (kopiera) (i)nre (w)ord (ord)
3. Navigera framåt till ordet 'kaka' (fk eller 3fc eller $2b eller /ka<ENTER>)
och skriv "byiw
4. Navigera till valfri punkt på ordet 'Vince' och skriv ciw<CTRL-R>a<ESC>
MINNESREGEL: (c)hange (ändra) (i)nre (w)ord (ord) med <innehåll från (r)egister> namngivet (a)
5. Navigera till valfri punkt på ordet 'tårta' och skriv ciw<CTRL-R>b<ESC>
---> a) Edward kommer hädanefter att ansvara för kaka-ransonerna
b) I denna egenskap kommer Vince ha ensam tårta-beslutanderätt
OBS: Radering fungerar också till register, dvs. "sdiw raderar ordet under
markören till register s.
REFERENS: Register :h registers
Namngivna register :h quotea
Förflyttning :h motion.txt<ENTER> /inner<ENTER>
CTRL-R :h insert<ENTER> /CTRL-R<ENTER>
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lektion 2.1.3: UTTRYCKSREGISTRET
** Infoga resultat av beräkningar direkt **
1. Flytta markören till raden nedan markerad --->
2. Navigera till valfri punkt på det angivna numret
3. Skriv ciw<CTRL-R> följt av =60*60*24<ENTER>
4. På nästa rad, gå in i infogningsläge och lägg till dagens datum med
<CTRL-R> följt av =system('date')<ENTER>
OBS: Alla anrop till system är OS-beroende, t.ex. på Windows använd
system('date /t') eller :r!date /t
---> Jag har glömt det exakta antalet sekunder på en dag, är det 84600?
Dagens datum är:
OBS: samma sak kan uppnås med :pu=system('date')
eller, med färre tangenttryckningar :r!date
REFERENS: Uttrycksregister :h quote=
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lektion 2.1.4: NUMRERADE REGISTER
** Tryck yy och dd för att se deras effekt på registren **
1. Flytta markören till raden nedan markerad --->
2. Kopiera noll-raden, sedan inspektera register med :reg<ENTER>
3. Radera rad 0. med "cdd, sedan inspektera register
(Var förväntar du dig att rad 0 ska vara?)
4. Fortsätt radera varje efterföljande rad, inspektera :reg medan du gör det
OBS: Du bör märka att gamla helradsraderingar flyttas nedåt i listan
när nya helradsraderingar läggs till
5. Nu (p)asta följande register i ordning; c, 7, 4, 8, 2. dvs. "7p
---> 0. Detta
9. vinglar
8. hemliga
7. är
6. på
5. axel
4. ett
3. krig
2. meddelande
1. hyllning
OBS: Helradsraderingar (dd) lever mycket längre i de numrerade registren
än helradskopieringar, eller raderingar med mindre förflyttningar
REFERENS: Numrerade register :h quote0
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lektion 2.1.5: SPECIALREGISTER
** Använd systemets urklipp och svarta hålet för avancerad redigering **
Obs: Urklippsanvändning kräver X11/Wayland-bibliotek på Linux-system OCH
en MNV byggd med "+clipboard" (vanligtvis en Huge-byggning). Kontrollera med
":version" och ":echo has('clipboard_working')"
1. Urklippsregister + och * :
- "+y - Kopiera till systemets urklipp (t.ex. "+yy för nuvarande rad)
- "+p - Klistra in från systemets urklipp
- "* är primärmarkering på X11 (mittenklick), "+ är urklipp
---> Prova: "+yy sedan klistra in i ett annat program med Ctrl-V eller Cmd+V
2. Svarta hålet-register _ kastar text:
- "_daw - Radera ord utan att spara till något register
- Användbart när du inte vill skriva över ditt standard " register
- Observera att detta använder "ett Ord" textobjekt, introducerat i en
tidigare lektion
- "_dd - Radera rad utan att spara
- "_dap - Radera stycke utan att spara
- Kombinera med antal: 3"_dw
---> Öva: "_diw på valfritt ord för att radera det utan att påverka kopieringshistorik
3. Kombinera med visuella markeringar:
- Markera text med V sedan "+y
- För att klistra in från urklipp i infogningsläge: <CTRL-R>+
- Prova att öppna ett annat program och klistra in från urklipp
4. Kom ihåg:
- Urklippsregister fungerar mellan olika MNV-instanser
- Urklippsregister fungerar inte alltid
- Svarta hålet förhindrar oavsiktlig registerskrivning
- Standard " register är fortfarande tillgängligt för normal kopiering/inklistring
- Namngivna register (a-z) förblir privata för varje MNV-session
5. Urklippsfelsökning:
- Kontrollera stöd med :echo has('clipboard_working')
- 1 betyder tillgängligt, 0 betyder inte inkompilerat
- På Linux kan mnv-gtk eller mnv-x11 paket behövas
(kontrollera :version utdata)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lektion 2.1.6: SKÖNHETEN MED MARKERINGAR
** Kodapans aritmetik-undvikande **
OBS: ett vanligt problem vid kodning är att flytta runt stora kodblock.
Följande teknik hjälper till att undvika radnummerberäkningar associerade
med operationer som "a147d eller :945,1091d a eller ännu värre att använda
i<CTRL-R> följt av =1091-945<ENTER> först
1. Flytta markören till raden nedan markerad --->
2. Gå till första raden av funktionen och markera den med ma
OBS: exakt position på raden är INTE viktigt!
3. Navigera till slutet av raden och sedan slutet av kodblocket
med $%
4. Radera blocket till register a med "ad'a
MINNESREGEL: till register(") namngivet (a) lägg (d)eletionen (raderingen) från markören till
RADEN som innehåller markering(') (a)
5. Klistra in blocket mellan BBB och CCC "ap
OBS: öva denna operation flera gånger för att bli flytande ma$%"ad'a
---> AAA
function detBlevStortSnabbt() {
if ( nagotArSant ) {
gorDet()
}
// vår funktions taxonomi har ändrats och den
// är inte längre alfabetiskt logisk på sin nuvarande plats
// tänk dig hundratals rader kod
// naivt kunde du navigera till början och slutet och spela in eller
// komma ihåg varje radnummer
}
BBB
CCC
OBS: markeringar och register delar inte namnrymd, därför är register a
helt oberoende av markering a. Detta gäller inte register och
makron.
REFERENS: Markeringar :h marks
Markeringsförflyttningar :h mark-motions (skillnad mellan ' och `)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lektion 2.1 SAMMANFATTNING
1. Textobjekt ger precisionsredigering:
- iw/aw - inre/runt ord
- i[/a[ - inre/runt hakparentes
- i"/a" - inre/runt citattecken
- it/at - inre/runt tagg
- ip/ap - inre/runt stycke
- is/as - inre/runt mening
2. För att lagra (kopiera, radera) text till, och hämta (klistra in) från, totalt
26 register (a-z)
3. Kopiera ett helt ord från var som helst inom ett ord: yiw
4. Ändra ett helt ord från var som helst inom ett ord: ciw
5. Infoga text direkt från register i infogningsläge: <CTRL-R>a
6. Infoga resultat av enkla aritmetiska operationer: <CTRL-R> följt av
=60*60<ENTER>
i infogningsläge
7. Infoga resultat av systemanrop: <CTRL-R> följt av
=system('ls -1')<ENTER>
i infogningsläge
8. Inspektera register med :reg
9. Lär dig slutdestinationen för helradsraderingar: dd i de numrerade
registren, dvs. fallande från register 1 - 9. Uppskatta att hel-
radsraderingar bevaras längre i de numrerade registren än någon
annan operation
10. Lär dig slutdestinationen för alla kopieringar i de numrerade registren och
hur flyktiga de är
11. Placera markeringar från kommandoläge m[a-zA-Z0-9]
12. Flytta radvis till en markering med '
13. Specialregister:
- "+/"* - Systemets urklipp (OS-beroende)
- "_ - Svarta hålet (kasta raderad/kopierad text)
- "= - Uttrycksregister
- "- - Register för små raderingar
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Detta avslutar kapitel två av MNV-handledningen. Det är ett pågående arbete.
Detta kapitel skrevs av Paul D. Parker och Christian Brabandt.
Svensk översättning av Daniel Nylander.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|