Πρώτο commit
Αυτό το commit περιλαμβάνεται σε:
commit
8ec8e9bee2
451 αρχεία άλλαξαν με 46736 προσθήκες και 0 διαγραφές
569
content/articles/22/03_vi.md
Κανονικό αρχείο
569
content/articles/22/03_vi.md
Κανονικό αρχείο
|
@ -0,0 +1,569 @@
|
|||
+++
|
||||
title = 'Οι βασικές λειτουργίες του VI'
|
||||
date = '1999-03-01T00:00:00Z'
|
||||
description = ''
|
||||
author = 'Ζανικόλας Σεραφείμ(mailto:serzan@it.teithe.gr)'
|
||||
issue = ['Magaz 22']
|
||||
issue_weight = 3
|
||||
+++
|
||||
|
||||
----------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
|
||||
*Αυτό το έγγραφο φιλοδοξεί να παρουσιάσει με κατανοητό και γρήγορο τρόπο τις βασικές λειτουργίες του `VI`, ενός από τους καθιερωμένους επεξεργαστές κειμένου των
|
||||
UNIX λειτουργικών συστημάτων.*
|
||||
|
||||
----------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
|
||||
**1. Σχετικά\...**
|
||||
---------------------------------------
|
||||
|
||||
**2. Εισαγωγή**
|
||||
------------------------------------
|
||||
|
||||
**3. Μετακίνηση**
|
||||
--------------------------------------
|
||||
|
||||
- [3.1 Στα όρια της ενεργής γραμμής](#ss3.1)
|
||||
- [3.2 Σε σχέση με την οθόνη](#ss3.2)
|
||||
- [3.3 Σε όλο το κείμενο](#ss3.3)
|
||||
|
||||
**4. Επεξεργασία Κειμένου**
|
||||
------------------------------------------------
|
||||
|
||||
- [4.1 Εισαγωγή](#ss4.1)
|
||||
- [4.2 Διαγραφή](#ss4.2)
|
||||
- [4.3 Αντικατάσταση](#ss4.3)
|
||||
- [4.4 Αλλες χρήσιμες εντολές επεξεργασίας](#ss4.4)
|
||||
|
||||
**5. Αναζήτηση**
|
||||
-------------------------------------
|
||||
|
||||
- [5.1 Στα όρια της ενεργής γραμμής](#ss5.1)
|
||||
- [5.2 Σε όλο το κείμενο](#ss5.2)
|
||||
|
||||
**6. Διαχείρηση Αρχείων**
|
||||
----------------------------------------------
|
||||
|
||||
**7. Διαχείριση περιοχών μνήμης προσωρινής αποθήκευσης (buffers)**
|
||||
---------------------------------------------------------------------------------------
|
||||
|
||||
**8. Διάφορες εντολές**
|
||||
--------------------------------------------
|
||||
|
||||
**9. Παραδείγματα**
|
||||
----------------------------------------
|
||||
|
||||
|
||||
### [1. Σχετικά\...]{#s1}
|
||||
|
||||
Όπως δηλώνει σαφώς και ο τίτλος, σε καμμία περίπτωση δεν αποτελεί πλήρη οδηγό του VI. Η ομαδοποίηση των εντολών έγινε αυθαίρετα έχοντας υπ\'όψη την -όσο το
|
||||
δυνατόν- ευκολότερη εκμάθηση τους. Για παρατηρήσεις / προτάσεις, επικοινωνήστε στην παραπάνω διεύθυνση. Τέλος το έγγραφο θα το βρείτε στη διεύθυνση
|
||||
http://aetos.it.teithe.gr/\~serzan/vi/vi.html
|
||||
|
||||
|
||||
### [2. Εισαγωγή]{#s2}
|
||||
|
||||
**Καταστάσεις Λειτουργίας, Εντολές**
|
||||
|
||||
: Ο `VI`(sual editor) έχει δύο βασικές καταστάσεις λειτουργίας:
|
||||
|
||||
- κατάσταση εντολών (command mode)
|
||||
- κατάσταση εισαγωγής κειμένου (text entry mode)
|
||||
|
||||
Κατά τη κατάσταση εντολών οτιδήποτε πληκτρολογείτε μεταφράζεται ως εντολή. Φροντίστε να είστε προσεκτικοί γιατί δε φαίνονται οι εντολές που δίνετε, βλέπετε
|
||||
μόνο τα αποτελέσματά τους. Εξαίρεση αποτελούν οι εντολές που αρχίζουν από \":\" (άνω κάτω τελεία) οι οποίες εμφανίζονται στο κάτω μέρος της οθόνης και
|
||||
εκτελούνται αφού πατήσετε `<CR>` (enter). Σε κατάσταση εισαγωγής κειμένου -σχεδόν- ο,τιδήποτε πληκτρολογείτε εισάγεται στο κείμενο.
|
||||
|
||||
**Εισαγωγή - Διαγραφή**
|
||||
|
||||
: Πατώντας `<ESC>` ή `^[` (control-\[) μπορείτε να είστε σίγουροι πως ο `VI` είναι σε κατάσταση εντολών. Βασικοί τρόποι για να περάσετε σε κατάσταση εισαγωγής
|
||||
κειμένου είναι: πατώντας `i` (insert - εισαγωγή κειμένου στη θέση του δρομέα), `a` (append - εισαγωγή κειμένου στην πρώτη θέση στα δεξιά του δρομέα) ή `o`
|
||||
(open(?) - εισαγωγή κειμένου σε νέα γραμμή κάτω από την ενεργή). Χρησιμοποιήστε το `x` για να διαγράψετε το χαρακτήρα στη θέση του δρομέα.
|
||||
|
||||
**Μετακίνηση**
|
||||
|
||||
: Για να κινηθείτε μέσα στο κείμενο, αφού βεβαιωθείτε πως είστε σε κατάσταση εντολών, χρησιμοποιήστε τα `h j k l` για αριστερά, κάτω, πάνω και δεξιά.
|
||||
Εναλλακτικά μπορείτε να χρησιμοποιήσετε τα βελάκια, κάτι που δε συνίσταται για λόγους ταχύτητας.
|
||||
|
||||
**Χειρισμός Αρχείων, Εξοδος**
|
||||
|
||||
: Οσο επεξεργάζεστε ένα αρχείο στον `VI`, ουσιαστικά δουλεύετε σε ένα αντίγραφο του αρχείου σε μία προσωρινή μνήμη (buffer). Οι αλλαγές που κάνετε στην
|
||||
προσωρινή μνήμη δεν αποθηκεύονται μέχρι τη στιγμή που θα δώσετε την εντολή `:w<CR>` (από το write). Εάν το αρχείο είναι read only μπορείτε να γράψετε μόνο
|
||||
με `:w!<CR>`, με την προυπόθεση φυσικά πως έχετε δικαίωμα εγγραφής στο αρχείο (write permission). Γράφοντας
|
||||
`:e filename<CR>` μπορείτε να ανοίξετε ένα νέο αρχείο για επεξεργ ασία, ενώ τερματίζετε τον `VI` με `:q<CR>`. Εφόσον δεν
|
||||
έχετε αποθηκεύσει τις αλλαγές που κάνατε ο `VI` θα διαμαρτυρηθεί και δε θα εκτελέσει την εντολή σας, σε αυτή την περίπτωση χρησιμοποιήστε `:e! filename<CR>`
|
||||
και `:q!<CR>` αντίστοιχα.
|
||||
|
||||
**Αντιγραφή, Διαγραφή, Επικόλληση**
|
||||
|
||||
: Οι εντολές `c[E]`, `y[E]` και `d[E]` (change-αλλαγή, yank-copy-αντιγραφή σε προσωρινή μνήμη, delete-διαγραφή και αντιγραφή στην προσωρινή μνήμη), επιδρούν
|
||||
σε περιοχή κειμένου που προσδιορίζεται από το επίθεμά `[E]` πχ. `yw` (yank word to buffer). Η επανάληψη (`cc`, `yy`, `dd)` υποδηλώνει την επίδρασή τους στην
|
||||
τρέχουσα γραμμή πχ. το `yy` αντιγράφει το περιεχόμενο της τρέχουσας γραμμής στην προσωρινή μνήμη (yank line to buffer). Επικόλληση κειμένου από την
|
||||
προσωρινή μνήμη γίνεται μ ε το `p`.
|
||||
|
||||
**Η Λογική Των Εντολών**
|
||||
|
||||
: Οι περισσότερες εντολές του `VI` μπορούν να δεχτούν ένα αριθμητικό πρόθεμα, με το οποίο δηλώνουμε πόσες φορές επιθυμούμε την εκτέλεση τους. Ετσι λοιπόν εκεί
|
||||
που το `dd` θα έσβηνε την τρέχουσα γραμμή το `3dd` σβήνει 3 γραμμές.
|
||||
|
||||
Ακολουθούν κάποια παραδείγματα. Είναι επιθυμητό ο αναγνώστης να εξοικειωθεί με όσα αναφέρθηκαν μέχρι στιγμής δεδομένου ότι οι εντολές των επόμενων κεφαλαίων
|
||||
ενδέχεται να προκαλέσουν σύγχιση.
|
||||
|
||||
**Παραδείγματα**
|
||||
|
||||
:
|
||||
|
||||
**`14l`**
|
||||
|
||||
: μεταφορά του δρομέα 14 θέσεις προς τα δεξιά
|
||||
|
||||
**`10j`**
|
||||
|
||||
: μεταφορά του δρομέα 10 σειρές προς τα κάτω
|
||||
|
||||
**`10x`**
|
||||
|
||||
: διαγραφή 10 χαρακτήρων, ξεκινώντας από το δρομέα προς τα δεξιά
|
||||
|
||||
**`cwtext`**
|
||||
|
||||
: αλλαγή λέξης με το text
|
||||
|
||||
**`3cctext`**
|
||||
|
||||
: αλλαγή τριών γραμμών με το text
|
||||
|
||||
**`7yw`**
|
||||
|
||||
: αντιγραφή 7 λέξεων στην προσωρινή μνήμη
|
||||
|
||||
**`3yy`**
|
||||
|
||||
: αντιγραφή 3 γραμμών στην προσωρινή μνήμη
|
||||
|
||||
**`5dw`**
|
||||
|
||||
: διαγραφή 5 λέξεων (και αντιγραφή στην προσωρινή μνήμη)
|
||||
|
||||
**`2dd`**
|
||||
|
||||
: διαγραφή 2 γραμμών (και αντιγραφή στην προσωρινή μνήμη)
|
||||
|
||||
|
||||
### [3. Μετακίνηση]{#s3}
|
||||
|
||||
Οι εντολές που δέχονται αριθμητικό πρόθεμα φαίνονται με το χαρακτήρα \[N\] ενώ εκείνες που μπορούν να χρησιμοποιηθούν ως επίθεμα των εντολών `y d c` με \[E\]
|
||||
|
||||
### [3.1 Στα όρια της ενεργής γραμμής]{#ss3.1}
|
||||
|
||||
**`[N][E] w b e`**
|
||||
|
||||
: μετακίνηση στην επόμενη λέξη, στην αρχή ή στο τέλος λέξης (οι λέξεις αποτελούνται από γράμματα και ψηφία, οτιδήποτε άλλο θεωρείται διαχωριστικό λέξης)
|
||||
|
||||
**`[N][E] W B E`**
|
||||
|
||||
: μετακίνηση στην επόμενη λέξη, στην αρχή ή στο τέλος λέξης (οι λέξεις αποτελούντα από οποιουσδήποτε χαρακτήρες εκτός από το κενό, που έιναι διαχωριστικό
|
||||
λέξης)
|
||||
|
||||
**`[E] 0`**
|
||||
|
||||
: μεταφορά του δρομέα στην πρώτη στήλη της ενεργής γραμμής
|
||||
|
||||
**`[E] n|`**
|
||||
|
||||
: μεταφορά του δρομέα στην νιοστή στήλη της ενεργής γραμμής ή στην πρώτη εάν δεν προσδιοριστεί το `n`
|
||||
|
||||
**`[E] $`**
|
||||
|
||||
: μετακίνηση του δρομέα στο τέλος της ενεργής γραμμής
|
||||
|
||||
### [3.2 Σε σχέση με την οθόνη]{#ss3.2}
|
||||
|
||||
**`[E] H`**
|
||||
|
||||
: μετακίνηση στην πρώτη γραμμή της οθόνης
|
||||
|
||||
**`[E] M`**
|
||||
|
||||
: μετακίνηση στη γραμμή στη μέση της οθόνης
|
||||
|
||||
**`[E] L`**
|
||||
|
||||
: μετακίνηση στην τελευταία γραμμή της οθόνης
|
||||
|
||||
**`^F`**
|
||||
|
||||
: μετακίνηση μία οθόνη προς τα κάτω
|
||||
|
||||
**`^B`**
|
||||
|
||||
: μετακίνηση μία οθόνη προς τα πάνω
|
||||
|
||||
### [3.3 Σε όλο το κείμενο]{#ss3.3}
|
||||
|
||||
**`[N] h j k l`**
|
||||
|
||||
: αριστερά, κάτω, πάνω, δεξιά (εναλλακτικά χρησιμοποιήστε τα βελάκια)
|
||||
|
||||
**`[E] nG`**
|
||||
|
||||
: μετακίνηση στη νιοστή γραμμή ή στο τέλος του αρχείου (χωρίς το `n`)
|
||||
|
||||
**`:n<CR>`**
|
||||
|
||||
: μετακίνηση στη νιοστή γραμμή
|
||||
|
||||
**`[E] 'a`**
|
||||
|
||||
: μετακίνηση στην πρώτη στήλη της γραμμής που σημειώθηκε ως `a`, αυτό γίνεται με την εντολή `ma` όπου `a` ένα οποιοδήποτε μικρό γράμμα του λατινικού αλφαβήτου
|
||||
|
||||
**`` [E] `a ``**
|
||||
|
||||
: μετακίνηση στη στήλη και στη γραμμή που σημειώθηκε ως `a`, αυτό γίνεται με την εντολή `ma` όπου `a` ένα οποιοδήποτε μικρό γράμμα του λατινικού αλφαβήτου
|
||||
|
||||
|
||||
### [4. Επεξεργασία Κειμένου]{#s4}
|
||||
|
||||
Οι εντολές που δέχονται αριθμητικό πρόθεμα φαίνονται με το χαρακτήρα \[N\] ενώ εκείνες που μπορούν να χρησιμοποιηθούν ως επίθεμα των εντολών `y d c` με \[E\]
|
||||
|
||||
### [4.1 Εισαγωγή]{#ss4.1}
|
||||
|
||||
**`atext`**
|
||||
|
||||
: γράφει το `text` στα δεξιά της θέσης του δρομέα (append)
|
||||
|
||||
**`A`text**
|
||||
|
||||
: γράφει το `text` στο τέλος της ενεργής γραμμής
|
||||
|
||||
**`itext`**
|
||||
|
||||
: γράφει το `text` στη θέση του δρομέα (insert)
|
||||
|
||||
**`Itext`**
|
||||
|
||||
: γράφει το `text` στην αρχή της ενεργής γραμμής
|
||||
|
||||
**`otext`**
|
||||
|
||||
: γράφει το `text` στην αρχή μιας νέας γραμμής που ανοίγει κάτω από την ενεργή (open)
|
||||
|
||||
**`Otext`**
|
||||
|
||||
: γράφει το `text` στην αρχή μιας νέας γραμμής που ανοίγει πάνω από την ενεργή
|
||||
|
||||
### [4.2 Διαγραφή]{#ss4.2}
|
||||
|
||||
Κάθε φορά που διαγράφετε κάτι, αυτό αντιγράφετε αυτόματα στη γενικής χρήσεως προσωρινή μνήμη (buffer).
|
||||
|
||||
**`[N] x`**
|
||||
|
||||
: διαγραφή του χαρακτήρα στον οποίο βρίσκεται ο δρομέας
|
||||
|
||||
**`[N] X`**
|
||||
|
||||
: διαγραφή του χαρακτήρα αριστερά του δρομέα
|
||||
|
||||
**`[N] d[E]`**
|
||||
|
||||
: διαγραφή από τη θέση του δρομέα εώς το σημείο που προσδιορίζει το `[E]`
|
||||
|
||||
**`[N] dd`**
|
||||
|
||||
: διαγραφή τρέχουσας γραμμής
|
||||
|
||||
**`D`**
|
||||
|
||||
: διαγραφή από τη θέση του δρομέα εώς το τέλος της γραμμής (ισοδύναμο με `d$`)
|
||||
|
||||
**`:d<CR>`**
|
||||
|
||||
: διαγραφή τρέχουσας γραμμής (ισοδύναμο με `dd`)
|
||||
|
||||
**`:nd<CR>`**
|
||||
|
||||
: διαγραφή νιοστής γραμμής, όπου `n` ακέραιος αριθμός που προσδιορίζει τον αριθμό γραμμής
|
||||
|
||||
**`:x,yd<CR>`**
|
||||
|
||||
: διαγραφή από την γραμμή `x` εώς και την `y`. Όπου `x` και `y` μπορεί να είναι: α) οποιοσδήποτε αριθμός γραμμής β). (τελεία - ενεργή γραμμή) γ) \$ (τελευταία
|
||||
γραμμή) δ) τα (β) ή (γ) + - αριθμητική σταθερά
|
||||
|
||||
### [4.3 Αντικατάσταση]{#ss4.3}
|
||||
|
||||
#### Στα όρια της ενεργής γραμμής
|
||||
|
||||
**`[N] c[E]text`**
|
||||
|
||||
: αλλαγή (change) του κειμένου, από το δρομέα εώς τη θέση που προσδιορίζει το `[E]`, με το `text`
|
||||
|
||||
**`[N] cctext`**
|
||||
|
||||
: αλλαγή ενεργής γραμμής με το `text`
|
||||
|
||||
**`Ctext`**
|
||||
|
||||
: αλλαγή του κειμένου, από το δρομέα εώς το τέλος της γραμμής, με το `text` (ισοδύναμο με `c$text`)
|
||||
|
||||
**`:s/re1/re2/<CR>`**
|
||||
|
||||
: αντικατάσταση (subtitute), ΜΟΝΟ της πρώτης συμβολοσειράς `re1` ή αυτής που προσδιορίζεται από την κανονική έκφραση `re1` (relative expression), που θα
|
||||
βρεθεί στην ενεργή γραμμή, με τη συμβολοσειρά `re2` ή αυτήν που προσδιορίζεται από την κανονική έκφραση `re2`
|
||||
|
||||
**`:s/re1/re2/g<CR>`**
|
||||
|
||||
: το ίδιο με τη διαφορά πως θα αντικαταστήσει ΟΛΑ τα `re1`, της ενεργής γραμμής, με το `re2` και όχι μόνο το πρώτο
|
||||
|
||||
**`:s/re1/re2/c<CR>`**
|
||||
|
||||
: το ίδιο με τη διαφορά πως θα σας ζητήσει επιβεβαίωση για κάθε αλλαγή που θα κάνει. Οι επιλογές `g` (global) και `c` (confirm) είναι προαιρετικές και μπορούν
|
||||
να χρησιμοποιηθούν και ταυτόχρονα
|
||||
|
||||
#### Σε όλο το κείμενο
|
||||
|
||||
**`:x,y s/re1/re2/<CR>`**
|
||||
|
||||
: αντικατάσταση, ΜΟΝΟ της πρώτης συμβολοσειράς `re1` ή αυτής που προσδιορίζεται από την κανονική έκφραση `re1` (relative expression), που θα βρεθεί στις
|
||||
γραμμές που προσδιορίζονται από τα `x` και `y`, με τη συμβολοσειρά `re2` ή αυτήν που προσδιορίζεται από την κανονική έκφραση `re2`. Όπου `x` και `y` μπορεί
|
||||
να είναι: α) οποιοσδήποτε αριθμός γραμμής β). (τελεία - ενεργή γραμμή) γ) \$ (τελευταία γραμμή) δ) τα (β) ή (γ) + - αριθμητική σταθε ρά
|
||||
|
||||
### [4.4 Αλλες χρήσιμες εντολές επεξεργασίας]{#ss4.4}
|
||||
|
||||
**`[N] ~`**
|
||||
|
||||
: αλλάζει το χαρακτήρα στη θέση του δρομέα, από μικρό σε κεφαλαίο ή αντίστροφα, και κινείται μία θέση δεξιά (μόνο για λατινικούς χαρακτήρες)
|
||||
|
||||
**`[N] u`**
|
||||
|
||||
: ακυρώνει μία ή περισσότερες ενέργεις (undo)
|
||||
|
||||
**`J`**
|
||||
|
||||
: ενώνει την ενεργή γραμμή με την επόμενη
|
||||
|
||||
|
||||
### [5. Αναζήτηση]{#s5}
|
||||
|
||||
Οι εντολές που δέχονται αριθμητικό πρόθεμα φαίνονται με το χαρακτήρα \[N\] ενώ εκείνες που μπορούν να χρησιμοποιηθούν ως επίθεμα των εντολών `y d c` με \[E\]
|
||||
|
||||
### [5.1 Στα όρια της ενεργής γραμμής]{#ss5.1}
|
||||
|
||||
**`[N][E] fa Fa`**
|
||||
|
||||
: μεταφορά του δρομέα στο πρώτο `a` που θα βρεθεί στη γραμμή προς τα δεξιά (`fa`) ή προς τα αριστερά (`Fa`)
|
||||
|
||||
**`[N][E] , ;`**
|
||||
|
||||
: επανάληψη τελευταίας αναζήτησης προς τα αριστερά (`,`) ή προς τα δεξιά (`;`)
|
||||
|
||||
### [5.2 Σε όλο το κείμενο]{#ss5.2}
|
||||
|
||||
**`/re`**
|
||||
|
||||
: αναζήτηση, προς τα εμπρός, του `re`, όπου `re` μια οποιαδήποτε συμβολοσειρά ή κανονική έκφραση
|
||||
|
||||
**`?re`**
|
||||
|
||||
: αναζήτηση, προς τα πίσω, του `re`, όπου `re` μια οποιαδήποτε συμβολοσειρά ή κανονική έκφραση
|
||||
|
||||
**`n`**
|
||||
|
||||
: επανάληψη τελευταίας αναζήτησης προς τα κάτω
|
||||
|
||||
**`N`**
|
||||
|
||||
: επανάληψη τελευταίας αναζήτησης προς τα πάνω
|
||||
|
||||
|
||||
### [6. Διαχείρηση Αρχείων]{#s6}
|
||||
|
||||
**`:w<CR>`**
|
||||
|
||||
: αποθήκευση αλλαγών στο αρχικό αρχείο
|
||||
|
||||
**`:w filename<CR>`**
|
||||
|
||||
: αποθήκευση αλλαγών στο `filename`
|
||||
|
||||
**`:wq<CR>`**
|
||||
|
||||
: αποθήκευση αλλαγών στο αρχικό αρχείο και τερματισμός του `VI`
|
||||
|
||||
**`:e filename<CR>`**
|
||||
|
||||
: ανοίγει το `filename` (αν δεν υπάρχει δημιουργεί ένα άδειο), θα εμφανιστεί προειδοποίηση σε περίπτωση που δεν έχουν αποθηκευτεί οι αλλαγές του αρχικού
|
||||
αρχείου
|
||||
|
||||
**`:e! filename<CR>`**
|
||||
|
||||
: ανοίγει το `filename` ανεξάρτητα από το αν έχουν αποθηκευτεί οι αλλαγές του πρώτου ή όχι
|
||||
|
||||
**`:r filename<CR>`**
|
||||
|
||||
: προσθέτει τα περιεχόμενα του αρχείου `filename` στη θέση του δρομέα
|
||||
|
||||
**`:r <!unix_cmd><CR>`**
|
||||
|
||||
: προσθέτει την έξοδο της εντολής `unix_cmd` στη θέση του δρομέα
|
||||
|
||||
**`:q <CR>`**
|
||||
|
||||
: έξοδος από τον `VI`, θα εμφανιστεί προειδοποίηση σε περίπτωση που δεν έχουν αποθηκευτεί οι αλλαγές
|
||||
|
||||
**`:q! <CR>`**
|
||||
|
||||
: έξοδος από τον `VI`, ανεξάρτητα από το αν έχουν αποθηκευτεί οι αλλαγές του αρχείου
|
||||
|
||||
|
||||
### [7. Διαχείριση περιοχών μνήμης προσωρινής αποθήκευσης (buffers)]{#s7}
|
||||
|
||||
Εκτός από την γενικής χρήσης ή ανώνυμη μνήμη αποθήκευσης υπάρχουν και οι επώνυμες, μία για κάθε (μικρό) γράμμα του λατινικού αλφαβήτου.
|
||||
|
||||
**`y[E]`**
|
||||
|
||||
: αντιγραφή του κειμένου, από το δρομέα εώς το σημείο που προσδιορίζει το `[E]`, στη γενικής χρήσης μνήμη
|
||||
|
||||
**`Y`**
|
||||
|
||||
: αντιγραφή της ενεργής γραμμής στη γενικής χρήσης μνήμη, ισοδύναμο του `yy`
|
||||
|
||||
**`"ay[E]`**
|
||||
|
||||
: αντιγραφή του κειμένου, από το δρομέα εώς το σημείο που προσδιορίζει το `[E]`, στην επώνυμη μνήμη `a`, όπου `a` οποιοδήποτε μικρό γράμμα του λατινικού
|
||||
αλφαβήτου
|
||||
|
||||
**`p P`**
|
||||
|
||||
: επικόλληση του περιεχομένου της γενικής χρήσης προσωρινής μνήμης μετά ή πριν τη θέση του δρομέα ή την ενεργή γραμμή (ανάλογα με το αν η μνήμη έχει λέξεις ή
|
||||
γραμμές)
|
||||
|
||||
**`"ap "aP`**
|
||||
|
||||
: επικόλληση του περιεχομένου της προσωρινής μνήμης `a` μετά ή πριν τη θέση του δρομέα
|
||||
|
||||
|
||||
### [8. Διάφορες εντολές]{#s8}
|
||||
|
||||
**`:sh`\<CR\>**
|
||||
|
||||
: προσωρινή έξοδος στο κέλυφος (shell), επιστροφή με `exit`
|
||||
|
||||
**`:!unix_cmd`\<CR\>**
|
||||
|
||||
: εκτέλεση της εντολής `unix_cmd`
|
||||
|
||||
**`:cd dir_name`\<CR\>**
|
||||
|
||||
: αλλαγή ενεργού καταλόγου στον `dir_name`
|
||||
|
||||
**`^G`**
|
||||
|
||||
: εμφανίζει το όνομα του αρχείου, ένδειξη τροποποίησης ή όχι, αρ.γραμμής και θέση του δρομέα στο αρχείο σε ποσοστό %
|
||||
|
||||
**`^Z`**
|
||||
|
||||
: προσωρινή διακοπή του `VI`, επιστροφή με fg
|
||||
|
||||
|
||||
### [9. Παραδείγματα]{#s9}
|
||||
|
||||
**`c4Wtext`**
|
||||
|
||||
: αλλαγή των 4 επόμενων λέξεων με το `text` (όπου λέξη οποιαδήποτε σειρά χαρακτήρων δεν περιέχει το κενό)
|
||||
|
||||
**`d4wtext`**
|
||||
|
||||
: διαγραφή των 4 επόμενων λέξεων (όπου λέξη οποιαδήποτε σειρά γραμμάτων και ψηφίων)
|
||||
|
||||
**`d0`**
|
||||
|
||||
: διαγραφή του κειμένου από τη θέση του δρομέα εώς την αρχή της γραμμής
|
||||
|
||||
**`d$`**
|
||||
|
||||
: διαγραφή του κειμένου από τη θέση του δρομέα εώς το τέλος της γραμμής
|
||||
|
||||
**`dN|`**
|
||||
|
||||
: διαγραφή του κειμένου από τη θέση του δρομέα εώς τη στήλη `N`
|
||||
|
||||
**`:11d<CR>`**
|
||||
|
||||
: διαγραφή της 11ης γραμμής
|
||||
|
||||
**`:.,.+3d<CR>`**
|
||||
|
||||
: διαγραφή της ενεργής γραμμής και των τριών επόμενων
|
||||
|
||||
**`:.,$d<CR>`**
|
||||
|
||||
: διαγραφή από την ενεργή γραμμή εώς το τέλος του αρχείου
|
||||
|
||||
**`4~`**
|
||||
|
||||
: αλλαγή των κεφαλαίων γραμμάτων σε μικρών και αντίστροφα, για τους επόμενους τέσσερεις χαρακτήρες
|
||||
|
||||
**`3u`**
|
||||
|
||||
: ακυρώνει τις τρεις τελευταίες ενέργειες (undo)
|
||||
|
||||
**`f*`**
|
||||
|
||||
: μετακίνηση του δρομέα στο πρώτο `*`
|
||||
|
||||
**`3f*`**
|
||||
|
||||
: μετακίνηση του δρομέα στο τρίτο `*`
|
||||
|
||||
**`y2fB`**
|
||||
|
||||
: αντιγραφή του κειμένου από το δρομέα εώς το δεύτερο B, στη γενικής χρήσης (ανώνυμη) μνήμη
|
||||
|
||||
**`d5fa`**
|
||||
|
||||
: διαγραφή του κειμένου από το δρομέα εώς το πέμπτο a, αντιγραφή στη γενικής χρήσης (ανώνυμη) μνήμη
|
||||
|
||||
**`c5fatext`**
|
||||
|
||||
: αλλαγή του κειμένου από το δρομέα εώς το πέμπτο a με το `text`
|
||||
|
||||
**`:s/text1/text2/<CR>`**
|
||||
|
||||
: αντικατάσταση του πρώτου `text1` που θα βρεθεί στην ενεργή γραμμή με το `text2`
|
||||
|
||||
**`:s/text1/text2/g<CR>`**
|
||||
|
||||
: αντικατάσταση όλων των `text1` που θα βρεθούν στην ενεργή γραμμή με το `text2`
|
||||
|
||||
**`:s/text1/text2/gc<CR>`**
|
||||
|
||||
: αντικατάσταση όλων των `text1` που θα βρεθούν στην ενεργή γραμμή, με το `text2`, μετά από επιβεβαίωση
|
||||
|
||||
**`:5,11 s/text1/text2/<CR>`**
|
||||
|
||||
: αντικατάσταση του πρώτου `text1` που θα βρεθεί στις γραμμές 5 εώς και 11, με το `text2`
|
||||
|
||||
**`:.,.+3 s/text1/text2/gc<CR>`**
|
||||
|
||||
: αντικατάσταση όλων των `text1` που θα βρεθούν στην ενεργή γραμμή και στις 3 επόμενες, με το `text2`, μετά από επιβεβαίωση
|
||||
|
||||
**`:.,$ s/text1/text2/gc<CR>`**
|
||||
|
||||
: αντικατάσταση όλων των `text1` που θα βρεθούν από την ενεργή γραμμή εώς και το τέλος του αρχείου, με το `text2`, μετά από επιβεβαίωση
|
||||
|
||||
**`"ayf.`**
|
||||
|
||||
: αντιγραφή του κειμένου από το δρομέα εώς την πρώτη τελεία, στην επώνυμη μνήμη `a`
|
||||
|
||||
**`"ap`**
|
||||
|
||||
: επικόλληση του περιεχομένου της επώνυμης μνήμης `a`, στα δεξιά του δρομέα
|
||||
|
||||
**`"zy2f)`**
|
||||
|
||||
: αντιγραφή του κειμένου από το δρομέα εώς τη δεύτερη παρένθεση, στην επώνυμη μνήμη `z`
|
||||
|
||||
**`"zP`**
|
||||
|
||||
: επικόλληση του περιεχομένου της επώνυμης μνήμης `z`, στη θέση του δρομέα
|
||||
|
Φόρτωση…
Προσθήκη πίνακα
Προσθήκη υπερσυνδέσμου
Παράθεση σε νέο ζήτημα