Παξάξηεκα Α Α Ο επεμεξγαζηήο θεηκέλνπ vi O vi είλαη ν βαζηθφο επεμεξγαζηήο θεηκέλνπ πνπ δεκηνπξγήζεθε γηα ην UNIX θαη απεπζπλφηαλ ζε «ζλεηνχο ρξήζηεο». Πξηλ απφ ηνλ vi, νη επεμεξγαζηέο θεηκέλνπ δελ είραλ ηε ζεκεξηλή κνξθή θαη ιεηηνπξγία. Ο βαζηθφο επεμεξγαζηήο θεηκέλνπ (γηα UNIX αιιά θαη γηα DOS) ήηαλ ν ed (editor). Ο ed αλήθε ζηελ θαηεγνξία πνπ νλνκάδεηαη line editor. Γελ ππήξρε πξνβνιή ηνπ αξρείνπ, αιιά ν ρξήζηεο πιεθηξνινγνχζε ην θείκελφ ηνπ κε εληνιέο, παξάδεηγκα: «πξφζζεζε ηε γξακκή κε θείκελν xyz». Πξνθαλψο, ηέηνηνπ ηχπνπ επεμεξγαζία θεηκέλνπ ήηαλ βαζαληζηηθή γηα ηνπο ρξήζηεο. Ο vi ήηαλ απφ ηηο πξψηεο εθαξκνγέο ζηελ νπνία ν ρξήζηεο έβιεπε ην θείκελν θαη κπνξνχζε λα κεηαθηλεζεί κε ηα βειάθηα ζε θάπνην ζεκείν ηνπ θεηκέλνπ θαη λα θάλεη αιιαγέο/πξνζζήθεο. H αξρηθή έθδνζε ηνπ vi δεκηνπξγήζεθε ην 1976, ελψ κέρξη ζήκεξα έρνπλ δεκηνπξγεζεί πάξα πνιινί θιψλνη. Ζ έθδνζε θιψλνο πνπ ρξεζηκνπνηείηαη ζήκεξα πεξηζζφηεξν είλαη ν vim (vi IMproved). Δπίζεο, εθηφο απφ ηηο παξαδνζηαθέο εθδφζεηο πνπ ιεηηνπξγνχλ ζε ηεξκαηηθφ, έρνπλ δεκηνπξγεζεί θαη γξαθηθέο εθαξκνγέο φπσο ν gvim, kvim θ.ά., νη νπνίεο εθηφο απφ ηηο βαζηθέο ιεηηνπξγίεο ηνπ vi εκθαλίδνπλ ζε παξάζπξν κελνχ επηινγψλ θαζψο θαη toolbar κε ηηο ζπρλφηεξεο ιεηηνπξγίεο. ην παξφλ παξνπζηάδνπκε ηε βαζηθή έθδνζε, φκσο, φια απηά πνπ αλαθέξνληαη ιεηηνπξγνχλ ζε φινπο ηνπο θιψλνπο θαη παξαιιαγέο ηνπ vi. Ο vi έρεη δπν θχξηεο θαηαζηάζεηο ιεηηνπξγίαο: 1. Καηάζηαζε Δληνιψλ (command mode). 2. Καηάζηαζε Δηζαγσγήο (insert mode). Με ηελ έλαξμε ηνπ vi βξηζθφκαζηε ζε Καηάζηαζε Δληνιψλ. ηελ «Καηάζηαζε Δληνιψλ» νπνηνδήπνηε πιήθηξν θαη λα παηήζνπκε αληηζηνηρεί ζε. Φαληαζηείηε ηηο ζπληνκεχζεηο (shortcuts) ζε κηα εθαξκνγή φπσο ζην Microsoft Word. Δλεξγνπνηνχληαη κε ην πιήθηξν Control. Παξάδεηγκα, ζην Microsoft Word, ην "Cntrl-S" θάλεη απνζήθεπζε ηνπ αξρείνπ. Ζ "Καηάζηαζε Δληνιψλ" ηνπ vi, είλαη ΑΝ λα έρνπκε παηεκέλν ην Cntrl θαη πεξηκέλεη λα παηήζνπκε θαη αθφκε έλα πιήθηξν γηα λα εθηειέζεη ηελ αληίζηνηρε ζπληφκεπζε. Όηαλ βξηζθφκαζηε ζε "Καηάζηαζε Δηζαγσγήο", ηφηε φ,ηη πιεθηξνινγνχκε πξνζηίζεηαη ζην αξρείν, φπσο ζε έλαλ επεμεξγαζηή θεηκέλνπ ηχπνπ notepad. Πσο, φκσο, κπαίλνπκε ζε «Καηάζηαζε Δηζαγσγήο»; Ζ απάληεζε είλαη: κε ηελ εληνιή (ζπληφκεπζε) πνπ καο κεηαθέξεη ζε απηήλ ηελ θαηάζηαζε. Ζ πεξηζζφηεξν ζπρλή εληνιή γηα είζνδν ζε «Καηάζηαζε Δηζαγσγήο» είλαη ε εληνιή "i". Τπάξρνπλ θαη άιιεο εληνιέο πνπ καο κεηαθέξνπλ ζε «Καηάζηαζε Δηζαγσγήο», φπσο θαίλνληαη ζηνλ Πίλαθα Α.1. θεθηείηε ην γεγνλφο φηη φηαλ δεκηνπξγήζεθε ην vi, δελ ππήξραλ παξαζπξηθά πεξηβάιινληα νχηε πνληίθηα. πλεπψο, γηα ηε γξήγνξε επεμεξγαζία θεηκέλσλ ζε θαηάζηαζε ηεξκαηηθνχ θαη ηδίσο αξρείσλ πνπ πεξηέρνπλ θψδηθα, δεκηνπξγήζεθαλ ζηνλ vi εθαηνληάδεο εληνιέο ζρεδφλ γηα φιεο ηηο πεξηπηψζεηο πνπ ρξεηάδεηαη έλαο πξνγξακκαηηζηήο. Γηα απηφλ ηνλ ιφγν βιέπνπκε έμη εληνιέο πνπ καο κεηαθέξνπλ ζε «Καηάζηαζε Δηζαγσγήο», αιιά κε δηαθνξεηηθφ ηξφπν, ψζηε λα ειαρηζηνπνηεζεί ην πιήζνο πιήθηξσλ πνπ ρξεηάδεηαη λα παηήζεη θάπνηνο. Πίλαθαο Α.1: Δληνιέο Δηζόδνπ ζε "Καηάζηαζε Δηζαγσγήο". i a Δίζνδνο ζε "Καηάζηαζε Δηζαγσγήο" θαη ν θέξζνξαο παξακέλεη ζηε ζέζε ηνπ. Δίζνδνο ζε "Καηάζηαζε Δηζαγσγήο" θαη ν θέξζνξαο κεηαθέξεηαη ακέζσο κεηά απφ ηελ ηξέρνπζα ζέζε. 199
I A o Ο Δίζνδνο ζε "Καηάζηαζε Δηζαγσγήο" θαη ν θέξζνξαο κεηαθέξεηαη ζηελ αξρή ηεο ηξέρνπζαο γξακκήο. Αλ ππάξρνπλ ζηεινζέηεο ζηελ αξρή ηεο γξακκήο, ν θέξζνξαο ζα κεηαθεξζεί πξηλ απφ ηελ πξψηε ιέμε ηεο ηξέρνπζαο γξακκήο. Δίζνδνο ζε "Καηάζηαζε Δηζαγσγήο" θαη ν θέξζνξαο κεηαθέξεηαη ζην ηέινο ηεο ηξέρνπζαο γξακκήο κεηά απφ ηνλ ηειεπηαίν ραξαθηήξα. Δίζνδνο ζε "Καηάζηαζε Δηζαγσγήο" θαη λέα γξακκή. Γίλεηαη εηζαγσγή λέαο γξακκήο κεηά απφ ηελ ηξέρνπζα θαη ν θέξζνξαο κεηαθέξεηαη ζε απηήλ ηε γξακκή. Δίζνδνο ζε "Καηάζηαζε Δηζαγσγήο" θαη λέα γξακκή. Γίλεηαη εηζαγσγή λέαο γξακκήο πξηλ απφ ηελ ηξέρνπζα θαη ν θέξζνξαο κεηαθέξεηαη ζε απηήλ ηε γξακκή. ηνλ Πίλαθα Α.2 βιέπνπκε ηηο πεξηζζφηεξν ζπρλέο εληνιέο γηα ηνλ ρεηξηζκφ ηεο επεμεξγαζίαο, δειαδή εληνιέο γηα αληηγξαθή-επηθφιιεζε, αλαίξεζε, επαλάιεςε θηι. Δδψ πξέπεη λα ζεκεησζεί πσο γηα ηηο εληνιέο πνπ απνηεινχληαη απφ πεξηζζφηεξα ηνπ ελφο πιήθηξα, δελ βιέπνπκε ηνπο ραξαθηήξεο πνπ πιεθηξνινγνχκε. Απιά ζα δνχκε ην απνηέιεζκα ηεο εληνιήο, φηαλ νινθιεξσζεί ε πιεθηξνιφγεζή ηεο. Πίλαθαο Α.2: Βαζηθέο Δληνιέο Δπεμεξγαζίαο. u Αλαίξεζε (undo).. Δπαλάιεςε ηειεπηαίαο εληνιήο (redo). dd Ndd dw Νdw D ND yy Νyy yw Νyw Τ Τ 200 Γηαγξαθή ηεο ηξέρνπζαο γξακκήο θαη αληηγξαθή ηεο ζηελ πξνζσξηλή κλήκε (buffer ή Δπαλάιεςε ηεο εληνιήο Γηαγξαθήο Ν θνξέο. Οπζηαζηηθά δηαγξαθή Ν γξακκψλ μεθηλψληαο απφ ηελ ηξέρνπζα. Οη γξακκέο ζα αληηγξαθνχλ ζηελ πξνζσξηλή κλήκε (buffer ή Γηαγξαθή ηεο ηξέρνπζαο ιέμεο θαη αληηγξαθή ηεο ζηελ πξνζσξηλή κλήκε (buffer ή Γηαγξαθή Ν ιέμεσλ μεθηλψληαο απφ ηελ ηξέρνπζα ιέμε θαη αληηγξαθή ηνπο ζηελ πξνζσξηλή κλήκε Γηαγξαθή απφ ην ζεκείν ηνπ θέξζνξα κέρξη ην ηέινο γξακκήο θαη αληηγξαθή απηψλ πνπ δηαγξάθεθαλ ζηελ πξνζσξηλή κλήκε Γηαγξαθή απφ ην ζεκείν ηνπ θέξζνξα θαη ησλ επφκελσλ Ν-1 γξακκψλ θαη αληηγξαθή απηψλ πνπ δηαγξάθεθαλ ζηελ πξνζσξηλή κλήκε Αληηγξαθή ηεο ηξέρνπζαο γξακκήο ζηελ πξνζσξηλή κλήκε Αληηγξαθή Ν γξακκψλ (μεθηλψληαο απφ ηελ ηξέρνπζα γξακκή) ζηελ πξνζσξηλή κλήκε Αληηγξαθή Ν γξακκψλ (μεθηλψληαο απφ ηελ ηξέρνπζα γξακκή) ζηελ πξνζσξηλή κλήκε Αληηγξαθή Ν ιέμεσλ μεθηλψληαο απφ ηελ ηξέρνπζα ιέμε ζηελ πξνζσξηλή κλήκε (buffer ή Αληηγξαθή απφ ην ζεκείν ηνπ θέξζνξα κέρξη ην ηέινο γξακκήο ζηελ πξνζσξηλή κλήκε Αληηγξαθή απφ ην ζεκείν ηνπ θέξζνξα θαη ησλ επφκελσλ Ν-1 γξακκψλ ζηελ πξνζσξηλή κλήκε
P p x Nx cw Ncw r Νr ~ Ν~ Δπηθφιιεζε ησλ πεξηερνκέλσλ ηεο πξνζσξηλήο κλήκεο πξηλ ηνλ θέξζνξα. Αλ ε πξνζσξηλή κλήκε πεξηέρεη νιφθιεξεο γξακκέο, ηφηε γίλεηαη εηζαγσγή γξακκψλ πξηλ ηελ ηξέρνπζα γξακκή. Δπηθφιιεζε ησλ πεξηερνκέλσλ ηεο πξνζσξηλήο κλήκεο κεηά ηνλ θέξζνξα. Αλ ε πξνζσξηλή κλήκε πεξηέρεη νιφθιεξεο γξακκέο, ηφηε γίλεηαη εηζαγσγή γξακκψλ κεηά ηελ ηξέρνπζα γξακκή. Γηαγξαθή ηνπ ραξαθηήξα πνπ βξίζθεηαη θάησ απφ ηνλ θέξζνξα θαη αληηγξαθή ηνπ ζηελ πξνζσξηλή κλήκε. Γηαγξαθή ηνπ ραξαθηήξα πνπ βξίζθεηαη θάησ απφ ηνλ θέξζνξα θαη ησλ επφκελσλ Ν-1 (ηεο ηξέρνπζαο γξακκήο) θαη αληηγξαθή ηνπο ζηελ πξνζσξηλή κλήκε. Αληηθαηάζηαζε ηεο ηξέρνπζαο ιέμεο. Γηαγξάθεηαη ε ηξέρνπζα ιέμε θαη κπαίλνπκε ζε «Καηάζηαζε Δηζαγσγήο Κεηκέλνπ» γηα ηελ πιεθηξνιφγεζε. Θα πξέπεη λα παηεζεί ην πιήθηξν Esc γηα ηέινο αληηθαηάζηαζεο. Αληηθαηάζηαζε ηεο ηξέρνπζαο ιέμεο θαη ησλ Ν-1 επφκελσλ ιέμεσλ. Γηαγξάθνληαη νη Ν ιέμεηο θαη κπαίλνπκε ζε «Καηάζηαζε Δηζαγσγήο Κεηκέλνπ» γηα ηελ πιεθηξνιφγεζε. Θα πξέπεη λα παηεζεί ην πιήθηξν Esc γηα ηέινο αληηθαηάζηαζεο. Αληηθαηάζηαζε ηνπ ηξέρνληνο ραξαθηήξα (πνπ βξίζθεηαη θάησ απφ ηνλ θέξζνξα). Ακέζσο κεηά ην "r" ζα πξέπεη λα παηήζνπκε ηνλ ραξαθηήξα αληηθαηαζηάηε. Αληηθαηάζηαζε ηνπ ηξέρνληνο ραξαθηήξα (πνπ βξίζθεηαη θάησ απφ ηνλ θέξζνξα) θαη ησλ Ν-1 επφκελσλ. Ακέζσο κεηά ην "r" ζα πξέπεη λα παηήζνπκε ηνλ ραξαθηήξα αληηθαηαζηάηε. Θα γίλνπλ Ν αληηθαηαζηάζεηο. Μεηαηξνπή ηνπ ηξέρνληνο ραξαθηήξα (πνπ βξίζθεηαη θάησ απφ ηνλ θέξζνξα) απφ πεδφ ζε θεθαιαίν ή ην αληίζηξνθν. Μεηαηξνπή ηνπ ηξέρνληνο ραξαθηήξα θαη ησλ Ν-1 επφκελσλ απφ πεδνχο ζε θεθαιαίνπο ή ην αληίζηξνθν. Όπσο είλαη ζρεδφλ πξνθαλέο απφ ηνλ πξνεγνχκελν πίλαθα, ε ιεηηνπξγία επαλάιεςεο κπνξεί λα εθαξκνζηεί ζε νπνηαδήπνηε εληνιή. Πιεθηξνινγνχκε έλαλ αξηζκφ, κεηά ηελ εληνιή θαη ε εληνιή επαλαιακβάλεηαη ηφζεο θνξέο, φζεο θαη ν αξηζκφο πνπ δφζεθε. Πξνθαλψο, ν αξηζκφο κπνξεί λα είλαη κνλνςήθηνο, δηςήθηνο ή νπνηνπδήπνηε κεγέζνπο. Παξάδεηγκα, αλ παηήζνπκε "16p", ζα γίλεη 16 θνξέο ε εληνιή επηθφιιεζεο, δειαδή φ,ηη ππάξρεη ζηελ πξνζσξηλή κλήκε ζα επηθνιιεζεί 16 θνξέο. Αλ παηήζνπκε "12~", ζα κεηαηξαπνχλ 12 ραξαθηήξεο απφ πεδνί ζε θεθαιαίνπο (ή ην αληίζηξνθν). ηελ «Καηάζηαζε Δηζαγσγήο Δληνιψλ», άιιεο εληνιέο αληηζηνηρνχλ ζε πεδά γξάκκαηα θαη άιιεο ζε θεθαιαία. Παξάδεηγκα, είλαη δηαθνξεηηθή ε εληνιή "i" απφ ηελ εληνιή "I". Γηα απηφ απαηηείηαη πξνζνρή ζηε ρξήζε ηνπ "Caps Lock" θαη θαιφ είλαη λα είλαη πάληα απελεξγνπνηεκέλν. Δπίζεο, ν vi, δελ θαηαιαβαίλεη εληνιέο ζηα ειιεληθά. Παξάδεηγκα, αλ έρνπκε επηιεγκέλν ην ειιεληθφ πιεθηξνιφγην, ηφηε ην πιήθηξν "i" ζε θαηάζηαζε Δληνιψλ ζα αληηζηνηρεί ζηνλ ραξαθηήξα "η" (γηψηα κηθξφ), ην νπνίν γηα ηνλ vi δελ είλαη εληνιή. Τπάξρεη, βέβαηα, ε δπλαηφηεηα λα ξπζκηζηεί ν vi, ψζηε λα θαηαιαβαίλεη σο εληνιέο θαη ηνπο ειιεληθνχο ραξαθηήξεο, απαηηεί, φκσο, αξθεηέο ξπζκίζεηο γηα ηελ επνηθνδνκεηηθή ιεηηνπξγία θαη δελ πεξηγξάθνληαη ζην παξφλ. Τπάξρνπλ πάξα πνιιέο εληνιέο κεηαθίλεζεο. Θπκεζείηε πσο, φηαλ δεκηνπξγήζεθε ν vi δελ ππήξραλ πνληίθηα. Δπίζεο, φια ηα πιεθηξνιφγηα δελ είραλ πιήθηξα κεηαθίλεζεο (βειάθηα) ή θαη αλ είραλ, δελ ήηαλ φια ζπκβαηά κεηαμχ ηνπο. ηνλ Πίλαθα Α.3 αλαθέξνπκε κεξηθέο κφλν απφ ηηο εληνιέο κεηαθίλεζεο. 201
Πίλαθαο Α.3: Δληνιέο Μεηαθίλεζεο ζε "Καηάζηαζε Δληνιώλ". h,j,k,l ^ Μεηαθίλεζε αξηζηεξά ( ), θάησ ( ), επάλσ ( ), δεμηά ( ). Δίλαη αληίζηνηρα κε ηα πιήθηξα κεηαθίλεζεο ηα νπνία δνπιεχνπλ θαη απηά ζε φιεο ηηο λέεο εθδφζεηο ηνπ vi. Μεηαθίλεζε ζηελ αξρή γξακκήο. $ Μεηαθίλεζε ζην ηέινο γξακκήο. G NG w W e,δ b,b Ζ % Μεηαθίλεζε ζηελ ηειεπηαία γξακκή ηνπ αξρείνπ. Μεηαθίλεζε ζηε N-νζηή γξακκή ηνπ αξρείνπ (πρ 5G ζηελ 5ε γξακκή). Μεηαθίλεζε ζηελ επφκελε ιέμε, ζπκπεξηιακβάλνληαο σο ιέμε θαη ηα ζεκεία ζηίμεο. Μεηαθίλεζε ζηελ επφκελε ιέμε, αγλνψληαο ηα ζεκεία ζηίμεο. Μεηαθίλεζε ην ηέινο ηεο ιέμεο, ζπκπεξηιακβάλνληαο ή φρη ηα ζεκεία ζηίμεο. Μεηαθίλεζε ζηελ πξνεγνχκελε ιέμε ζπκπεξηιακβάλνληαο ή φρη ηα ζεκεία ζηίμεο. Μεηαθίλεζε ζηελ πξψηε γξακκή πνπ θαίλεηαη ζηελ νζφλε (κπνξεί λα είλαη ε πξψηε γξακκή ηνπ αξρείνπ ή φρη). Μεηαθίλεζε ζηελ παξέλζεζε ( "(", ")" ) ή αγθχιε( "[", "]" ) ή άγθηζηξν ( "{", "}" ) πνπ ηαηξηάδεη. (, ) Μεηαθίλεζε ζηελ πξνεγνχκελε ή επφκελε πξφηαζε. {, } Μεηαθίλεζε ζηελ αξρή ηεο ηξέρνπζαο ή ηεο επφκελεο παξαγξάθνπ. Όια ηα παξαπάλσ κπνξνχλ λα ζπλδπαζηνχλ κε ηελ επαλάιεςε εληνιήο, πρ: "3}" ζα κεηαθέξεη ηνλ θέξζνξα 3 παξαγξάθνπο κεηά. Δπίζεο, κπνξνχλ λα ζπλδπαζηνχλ κε ηηο εληνιέο δηαγξαθήο ή αληηγξαθήο. Παξάδεηγκα, έρνληαο ηνλ θέξζνξα ζε έλα άγθηζηξν πνπ αλνίγεη ({), αλ παηήζνπκε "d%", ζα δηαγξάςεη κέρξη ην άγθηζηξν πνπ θιείλεη. Αλ ζε κηα παξάγξαθν παηήζνπκε "3y}", ζα αληηγξάςεη ηηο επφκελεο 3 παξαγξάθνπο. I, i, A, a, o, O Καηάζηαζε Εηζαγωγήο (insert mode) : Esc Enter or Esc Καηάζηαζε Εληνιώλ (command mode) Καηάζηαζε Γξακκήο Εληνιώλ (command line mode)! Γξακκή εληνιώλ θειύθνπο (shell command mode) /,? Καηάζηαζε Αλαδήηεζεο (search mode) Enter or Esc ρήκα Α.1: Οη θαηαζηάζεηο ιεηηνπξγίαο ηνπ vi. Δθηφο απφ ηηο δπν βαζηθέο θαηαζηάζεηο ιεηηνπξγίαο πνπ πεξηγξάςακε (Δηζαγσγήο θαη Δληνιψλ), ππάξρνπλ θαη άιιεο θαηαζηάζεηο ιεηηνπξγίαο. Κάπνηεο εληνιέο είηε κπνξεί λα είλαη πεξίπινθεο είηε πνιχ 202
ζεκαληηθέο, νπφηε θαη πξέπεη λα ηηο βιέπνπκε θαζψο ηηο πιεθηξνινγνχκε. Έηζη, ππάξρεη ε «Καηάζηαζε Γξακκήο Δληνιψλ». ε απηήλ ηελ θαηάζηαζε κπνξνχκε λα κεηαβνχκε παηψληαο ηελ εληνιή ":" φηαλ βξηζθφκαζηε ζε «Καηάζηαζε Δληνιψλ». Σφηε ζηελ ηειεπηαία γξακκή ηνπ ηεξκαηηθνχ εκθαλίδεηαη ν ραξαθηήξαο ":" θαη αλακέλεη λα πιεθηξνινγεζεί εληνιή. Οη εληνιέο ζε «Καηάζηαζε Γξακκήο Δληνιψλ» είλαη δηαθνξεηηθέο απφ ηηο εληνιέο ζε «Καηάζηαζε Δληνιψλ». ε απηήλ ηελ θαηάζηαζε, νη δπν πνιχ ζεκαληηθέο εληνιέο είλαη ε εληνιή γηα απνζήθεπζε ηνπ αξρείνπ θαη γηα ηεξκαηηζκφ ηνπ πξνγξάκκαηνο. Πίλαθαο Α.4: Δληνιέο ζε "Καηάζηαζε Γξακκήο Δληνιώλ". :w Απνζήθεπζε ηνπ αξρείνπ (write). :w filename :q :q! :w! :wq Απνζήθεπζε ηνπ αξρείνπ κε λέν φλνκα. Δίλαη αληίζηνηρε ηεο ιεηηνπξγίαο "Απνζήθεπζε Χο" ή "Save As". Σν φλνκα αξρείνπ κπνξεί λα είλαη κφλν φλνκα, νπφηε θαη ζα απνζεθεπηεί ζηνλ ηξέρνληα θάθειν ή δηαδξνκή (απφιπηε ή ζρεηηθή) πξνο φλνκα αξρείνπ. Παξαδείγκαηα: :w file.txt ή :w /tmp/file2.txt ή :w../file3.txt Έμνδνο απφ ην πξφγξακκα (quit). ηελ πεξίπησζε πνπ δελ έρεη απνζεθεπηεί ε ηειεπηαία ηξνπνπνίεζε ηνπ αξρείνπ, ζα εκθαληζηεί κήλπκα πξνεηδνπνίεζεο θαη δελ ζα εθηειεζηεί ε ιεηηνπξγία εμφδνπ. Έμνδνο απφ ην πξφγξακκα αγλνψληαο ηπρφλ πξνεηδνπνίεζε. Θα ηεξκαηίζεη ηνλ vi αθφκε θαη αλ δελ έρεη απνζεθεπηεί ε ηειεπηαία έθδνζε ηνπ αξρείνπ. Απνζήθεπζε ηνπ αξρείνπ θαη αγλφεζε πξνεηδνπνίεζεο. πλήζσο πξνθχπηεη πξνεηδνπνίεζε γηα κεηαβνιή ελφο αξρείνπ πνπ έρεη νξηζηεί "κφλν γηα αλάγλσζε" (read-only). Απνζήθεπζε ηνπ αξρείνπ θαη κεηά έμνδνο. Απφ ηελ «Καηάζηαζε γξακκήο εληνιψλ» βγαίλνπκε απηφκαηα κε ηελ εθηέιεζε ηεο εληνιήο, δειαδή κφιηο παηήζνπκε ην πιήθηξν "Enter". ηελ πεξίπησζε πνπ έρνπκε μεθηλήζεη ηελ πιεθηξνιφγεζε κηαο εληνιήο, αιιά ηειηθά δελ επηζπκνχκε ηελ εθηέιεζή ηεο, κπνξνχκε λα παηήζνπκε "Esc", νπφηε θαη αθπξψλεηαη ε εληνιή θαη επηζηξέθνπκε ζε «Καηάζηαζε Δληνιψλ». ηελ Καηάζηαζε Γξακκήο Δληνιψλ, ν vi δέρεηαη θαη φιεο ζρεδφλ ηηο εληνιέο ηνπ πξνγξάκκαηνο sed. Όληαο ζε «Καηάζηαζε Γξακκήο Δληνιψλ», κπνξνχκε λα πιεθηξνινγήζνπκε ηνλ ραξαθηήξα "!" θαη κεηά κηα εληνιή ηνπ θειχθνπο. Παξάδεηγκα:!ls -l. Ο vi ζα εθηειέζεη έλα θέιπθνο θαη κέζα ζε απηφ ηελ εληνιή πνπ δφζεθε. Θα εκθαληζηνχλ ηα απνηειέζκαηα ηεο εληνιήο θαη ζα ππάξρεη ε πξνηξνπή λα παηήζνπκε "Enter" γηα επηζηξνθή ζηνλ vi θαη ζηελ «Καηάζηαζε Δληνιψλ». Απφ «Καηάζηαζε Δληνιψλ» παηψληαο ην πιήθηξν «/» ή ην "?" κπαίλνπκε ζε «Καηάζηαζε Αλαδήηεζεο» (Search Mode). Δδψ, πξέπεη λα πιεθηξνινγήζνπκε ην θείκελν γηα αλαδήηεζε. Με ηελ νινθιήξσζε ηεο πιεθηξνιφγεζεο (παηψληαο Enter) κεηαθέξεηαη ν θέξζνξαο ζηελ πξψηε εκθάληζε ηνπ θεηκέλνπ πνπ αλαδεηήζακε. Με ηελ εληνιή n κεηαθεξφκαζηε ζηελ επφκελε εκθάληζε. Με ηελ εληνιή «Ν» κεηαθεξφκαζηε ζηελ πξνεγνχκελε εκθάληζε. Με ην "/" ε αλαδήηεζε γίλεηαη πξνο ηα θάησ, κε ην "?" ε αλαδήηεζε γίλεηαη πξνο ηα πίζσ. ηελ «Καηάζηαζε Αλαδήηεζεο» ν vi δέρεηαη θαη ην βαζηθφ ζχλνιν θαλνληθψλ εθθξάζεσλ, γηα ην νπνίν γίλεηαη ιφγνο ζην Κεθάιαην 6. Σέινο, ζε απηφ ην ζεκείν λα παξαηεξήζνπκε φηη νη δπλαηφηεηεο θαη νη ιεηηνπξγίεο ηνπ vi είλαη πνιχ πεξηζζφηεξεο απφ απηέο πνπ αλαθέξνληαη ζην παξφλ θεθάιαην. Γηα πεξηζζφηεξεο πιεξνθνξίεο αλαηξέμηε ζην εγρεηξίδην ρξήζεο ηνπ vi. 203