Page 67 - Linux_7

Basic HTML Version

Linux Inside
67
μπορεί κανείς να σβήσει το χαρακτήρα κάτω από τον cursor
πατώντας το ‘x’.
Όπως βλέπετε, στο Vim πρέπει κανείς να «μιλάει». Οι εντο-
λές προέρχονται από αγγλικές λέξεις και έτσι δεν χρειάζεται
κάποιος να αποστηθίσει συντομεύσεις, αρκεί να του «λέει» τι
θέλει να κάνει. Αυτό θα φανεί έντονα στα παρακάτω παρα-
δείγματα. Έχοντας πλέον κάποιος τη δυνατότητα να γράψει
και να σβήσει κείμενο, καθώς και να μετακινηθεί μέσα σε αυ-
τό, τίθεται το πρώτο βασικό πρόβλημα. «Μα πώς μπορώ να
κάνω copy paste;» Όπως ειπώθηκε παραπάνω, ο Vim ξεκίνη-
σε ως line editor, οπότε ο πιο απλός τρόπος για να αντιγρά-
ψει κανείς κάτι είναι σε επίπεδο γραμμής. Όντας σε Normal
mode και έχοντας φτάσει με τα πλήκτρα/βέλη στη γραμμή
που θέλουμε να αντιγράψουμε, πρέπει να πατήσουμε ‘yy’
(yank-yank). Έπειτα, πάλι με τα πλήκτρα να κινηθούμε στο
σημείο κάτω από το οποίο θέλουμε να γίνει επικόλληση της
γραμμής που έχουμε αντιγράψει, και να την εκτελέσουμε πα-
τώντας το ‘p’ (paste).
Για να διαγράψει κανείς μία γραμμή ο απλούστερος τρό-
πος είναι να πάει στη γραμμή εκείνη και να πατήσει ‘dd’
(delete). Προφανώς, για το cut-n-paste αρκεί να δώσουμε
‘dd’ και έπειτα ‘p’ στο σημείο όπου θέλουμε να γίνει η επικόλ-
ληση. Οι παραπάνω εντολές όμως μπορούν να δουλέψουν
και με πολλαπλασιαστές, βάζοντας δηλαδή έναν αριθμό
μπροστά από κάθε εντολή, αυτή επαναλαμβάνεται τόσες φο-
ρές όσες και ο αριθμός. Για παράδειγμα με την εντολή 6yy
αντιγράφει κανείς έξι συνεχόμενες γραμμές, ενώ με την 2p
μπορεί να επικολλήσει δύο φορές αυτό που έχει αντιγράψει
παραπάνω. Αντίστοιχα, η εντολή 3dd σβήνει τρεις γραμμές.
Ήδη οι πρώτοι σκεπτικιστές θα παραπονεθούν για το γεγο-
νός πως όλα γίνονται σε επίπεδο γραμμής. Αν κάποιος θέλει
να αντιγράψει δύο λέξεις ή επτά χαρακτήρες τότε τι γίνεται;
Εκτός λοιπόν από τους πολλαπλασιαστές γραμμών που μπαί-
νουν πριν από τις εντολές, υπάρχουν και ειδικοί τελεστές που
μπαίνουν μετά από αυτές και καθορίζουν το πεδίο εφαρμο-
γής τους. Για παράδειγμα, η εντολή 3yw αντιγράφει τις τρεις
επόμενες λέξεις (w->word) μετά τον cursor. Αντίστοιχα η
εντολή 7yl (yank-last) αντιγράφει τους επόμενους επτά χαρα-
κτήρες και η 4x σβήνει τους επόμενους τέσσερις χαρακτή-
ρες.
Προσαρμογή του vim.
Για να χρησιμοποιήσει κάποιος αποδοτικά έναν επεξεργα-
στή κειμένου, πρέπει και να μπορεί να τον τροποποιήσει θεμα-
τικά όπως του αρέσει. Στην περίπτωση που το Vim χρησιμο-
ποιείται από κάποιο τερματικό, τότε, για να αλλάξει η γραμμα-
τοσειρά, πρέπει να αλλαχθεί το font του τερματικού. Ο Vim
διαθέτει δυνατότητες αλλαγής των χρησιμοποιούμενων χρω-
μάτων του (theming) μέσω της εντολής ‘:colorscheme’. Αφή-
νοντας ένα κενό μετά το :colorscheme και πατώντας TAB,
μπορεί κανείς να δει όλα τα θέματα που είναι διαθέσιμα. Η
επιλογή ενός καλού θέματος είναι πάρα πολύ σημαντική, γιατί
επηρεάζει τον τρόπο με τον οποίο γίνονται highlight τα κομμά-
τια του κειμένου/κώδικα που διαβάζει ή επεξεργάζεται κανείς.
Εκτός από τα θέματα που θα βρει κανείς προεγκατεστημένα,
υπάρχουν και πάρα πολλά διαθέσιμα στο Internet. Καλό είναι
να δοκιμάσει κάποιος αρκετά, ανοίγοντας και διαφορετικού
τύπου αρχεία πριν αποφασίσει να κρατήσει κάποιο, ώστε να
δει τις διαφορές πιο αναλυτικά. Για να γίνει η αλλαγή του θέ-
ματος μόνιμη, πρέπει να ανοίξει κανείς, με το vim φυσικά, το
αρχείο ~/.vimrc και να προσθέσει μία γραμμή όπως η παρα-
κάτω:
colorscheme XXXXXX
όπου ΧΧΧΧΧΧ το όνομα του θέματος. Φυσικά, έχοντας τις
κατάλληλες γνώσεις μπορεί κανείς να τροποποιήσει τα θέμα-
τα ώστε να τον βολεύουν ακόμα περισσότερο.
Άλλο ένα πολύ χρήσιμο στοιχείο του vim είναι η μπάρα κα-
τάστασης που υπάρχει στο κάτω μέρος. Εκεί μπορεί κανείς
να εμφανίσει χρήσιμα στοιχεία, όπως το file format του τρέχο-
ντος ανοιχτού αρχείου, τον τύπο του αρχείου, τη θέση του
cursor μέσα στο αρχείο και άλλα διάφορα. Η παρακάτω
γραμμή στο ~/.vimrc θα σας δώσει μερικά από αυτά:
set statusline=%F%m%r%h%w\ [FORMAT=%{&ff}]\
[TYPE=%Y]\ [ASCII=\%04.8b]\ [HEX=\%04.4B]\
[POS=%04l,%04v][%p%%]\ [LEN=%L]
Πολύ βολική κατά τη διάρκεια προγραμματισμού αλλά και
κατά τη συγγραφή κειμένων είναι η προσθήκη της ένδειξης
της τρέχουσας γραμμής στα αριστερά του κειμένου. Αυτό στο
Vim γίνεται με την προσθήκη του set number στο ~/.vimrc,
ενώ αν διαθέτει κανείς έκδοση Vim 7.3 και άνω, τότε η εντολή
set relativenumber
δείχνει την απόσταση των υπόλοιπων γραμμών από την τρέ-
χουσα, γεγονός ιδιαίτερα χρήσιμο όταν θέλει κανείς να αντι-
γράψει/διαγράψει ένα κομμάτι κειμένου που αποτελείται από
αρκετές γραμμές. Το relativenumber μάς ενημερώνει για τον
αριθμό τους, χωρίς να χρειάζεται εμείς να τις μετρήσουμε.
Το άρθρο αυτό ήταν μία πολύ βασική εισαγωγή σε δομικά
στοιχεία του vim. Σε επόμενα άρθρα θα δίνονται όλο και πιο
εκτενείς λεπτομέρειες χρήσης στοιχείων του vim. •
Linux Labs – Vim Tricks
Μάθετε νέα κόλπα!
Όσους ανθρώπους που χρησιμοποιούν Vim και να γνωρίσετε, πά-
ντα κάποιος θα ξέρει και κάποιες άλλες εντολές ή μερικούς πιο
αποδοτικούς τρόπους επεξεργασίας ενός κειμένου που εσείς δεν
είχατε σκεφτεί μέχρι τώρα. Όσο χρησιμοποιείτε τον Vim θα ανακα-
λύπτετε συνεχώς τρόπους να κάνετε τη δουλειά σας όλο και πιο
αποδοτικά. Οπότε μην ντρέπεστε! Ρωτήστε φίλους και γνωστούς
για τα αγαπημένα τους «κόλπα» στο vim.
Σύνδεσμοι
[1] Vim: http://www.vim.org/
[2] Vim wiki: http://vim.wikia.com/wiki/Vim_Tips_Wiki
[3] Το δικό μου vimrc: http://www.void.gr/kargig/dot/vimrc
Το Vim με όλα τα κολπάκια που ενεργοποιήσαμε...
2