Ε
χοντας μάθει κανείς τους βασικούς τρόπους για να κι-
νείται μέσα στο περιβάλλον του Vim, πώς να «μιλάει»
στο πρόγραμμα και να δίνει εντολές, καθώς και λίγα
πράγματα για το αρχείο παραμετροποίησής του, είναι ώρα
«να μάθει 5 πράγματα παραπάνω»...
Γρηγορότερη μετακίνηση σε αρχείο
Η μετακίνηση μέσα σε ένα αρχείο με τα βέλη ή τα πλήκτρα
h, j, k, l, όπως είχε αναφερθεί στο προηγούμενο άρθρο, δεν
είναι, φυσικά, ό,τι γρηγορότερο, αλλά υπάρχουν κάποιες συ-
ντομεύσεις του Vim που κάνουν τη ζωή του χρήστη πολύ πιο
εύκολη. Υπάρχει η δυνατότητα να διαφοροποιείται ο τρόπος
μετακίνησης σε ένα αρχείο ανάλογα με τα περιεχόμενά του.
Διαφορετικές ανάγκες μετακίνησης έχει κανείς μέσα σε ένα
αρχείο κειμένου και διαφορετικές μέσα σε ένα αρχείο κώδι-
κα. Για τα αρχεία κειμένου, σε normal mode, η μετακίνηση
στην αρχή ή στο τέλος μιας παραγράφου γίνεται με την { και
την } αντίστοιχα. Στην ουσία, η μετακίνηση θα γίνει προς την
πρώτη κενή γραμμή πάνω ή κάτω από την παράγραφο που
βρίσκεται αυτή τη στιγμή προς επεξεργασία. Για τη μετακίνη-
ση στην προηγούμενη ή στην επόμενη πρόταση μπορεί κα-
νείς να χρησιμοποιήσει τις ( και ).
Για τη μετακίνηση μέσα σε αρχείο με κώδικα, το Vim έχει τη
δυνατότητα να καταλαβαίνει τα λογικά blocks κώδικα για διά-
φορες γλώσσες και επιτρέπει τη μετακίνηση στην αρχή ή το
τέλος τους. Για παράδειγμα, σε ένα κομμάτι κώδικα C που
περιέχει ένα for loop, πατώντας το % μετακινείται κανείς ανά-
μεσα στις { }. Πατώντας το % στη γραμμή ορισμού ενός if,
μετακινείται κανείς μεταξύ των ( ), καθώς και από το #if στο
#else και στο #endif ενός definition. Φυσικά, μεταξύ ενός
block κώδικα που περιβάλλεται από { } είναι σύνηθες να
υπάρχουν και άλλα τέτοια blocks στο εσωτερικό τους, οπότε,
αν βρίσκεται κανείς στο εσωτερικό block, πατώντας το % δεν
γίνεται να μετακινηθεί στην αρχή του function. Αυτό μπορεί να
το καταφέρει, όμως, χρησιμοποιώντας τα [[ και ]], με τα
οποία μπορεί κανείς να μετακινηθεί στην αρχή του προηγού-
μενου function και στην αρχή του επόμενου function, αντίστοι-
χα. Με τα [] και ][ γίνεται η μετακίνηση στο τέλος του προη-
γούμενου function και στο τέλος του επόμενου, αντίστοιχα.
Ακόμα μία χρήσιμη συντόμευση για τη μετακίνηση μέσα σε
ένα αρχείο, ανεξαρτήτως περιεχομένου, είναι η μετακίνηση
μεταξύ των γραμμών που έχουν γίνει οι τελευταίες αλλαγές.
Έχοντας ένα αρχείο ανοιχτό, το Vim κρατάει μέχρι και τις τε-
λευταίες 999 αλλαγές και μπορεί κανείς να μετακινηθεί μετα-
ξύ αυτών των σημείων. Για δει κάποιος όλες τις αποθηκευμέ-
νες αλλαγές, μπορεί να γράψει σε command mode (πατώ-
ντας :) «changes». Σε normal mode πατώντας «g;» θα μετακι-
νηθεί στην προηγούμενη αλλαγή, ενώ έχοντας πάει κάποιες
αλλαγές πίσω, μπορεί να μετακινηθεί στις επόμενες με το
συνδυασμό «g,». Τέλος, για τη μετακίνηση απευθείας στην κο-
ρυφή του αρχείου αρκεί να δώσει κανείς σε normal mode
«gg», ενώ για να μετακινηθεί στο τέλος «G».
Έλεγχος ορθογραφίας
Στην έκδοση 7.0 του Vim έχει προστεθεί εγγενής έλεγχος
ορθογραφίας. Έτσι, είναι δυνατόν το Vim να ελέγχει ένα κεί-
μενο για ορθογραφικά λάθη ταυτόχρονα σε πολλαπλές
γλώσσες και να προτείνει ακόμα και διορθώσεις. Η ενεργο-
ποίηση του ελέγχου ορθογραφίας γίνεται με την εντολή
set spell
σε command mode. Μετά από αυτό το Vim θα δείχνει τις λέ-
Linux Inside
80
Τις εντολές set XXXXX που χρειάζεται κανείς σε
μόνιμη βάση, πρέπει να τις περνάει στο αρχείο
ρυθμίσεων του χρήστη του (~/.vimrc).
Του Γιώργου Καργιωτάκη <kargig@void.gr>
Linux Labs – Vim Tricks
Αν θέλετε να βελτιώσετε την παραγωγικότητά σας,
τότε σας χρειάζεται ένας κειμενογράφος σαν τον
Vim.
Εργαλεία:
Vim
Δυσκολία:
URL:
http://www.vim.org
Το blog του
Γιώργου
Καθαρίστε με το Vim
(Μέρος 2ο)
Ο Γιώργος εργάζεται στο Εθνικό Δίκτυο Έρευνας και Τεχνολογίας ως διαχειριστής συστημάτων.
Μετακίνηση & Λέξεις
Όσοι δοκίμασαν να μετακινηθούν μέσα σε μία πρόταση με το w, b,
θα είδαν ότι το vim θεωρεί ως λέξεις ακόμα και το κόμμα, την τε-
λεία κ.λπ.
Στην πραγματικότητα, το vim έχει δύο κατηγορίες: τις «λέξεις»,
που αποτελούνται από αλφαριθμητικά σύμβολα, παύλα και κάτω
παύλα, και τις «ΛΕΞΕΙΣ» που αποτελούνται από οτιδήποτε εκτός
από κενούς χαρακτήρες (space ή tab). Για να μετακινηθεί κανείς
μία ΛΕΞΗ μπροστά ή πίσω, αρκεί να πατήσει W ή B, αντίστοιχα. Για
παράδειγμα, για να μετακινηθεί κανείς στην παρακάτω έκφραση
«ένα, δύο, τρία-τέσσερα. Πέντε, έξι. Επτά», από το «ένα» στο
«Πέντε», μπορεί είτε να πατήσει «8w» είτε «3W». Φυσικά, θα
μπορούσε να το κάνει πατώντας απλά και την ).
Έχοντας ενεργοποιήσει τον ορθογραφικό έλεγχο, το Vim μας
ειδοποιεί ότι γράψαμε λάθος τη λέξη «πρόβλημα»...