vi Tips: Practical leaflet
Description: This is issue 27 of Magaz, the Hellenic LinuxMagazine
Keywords: magaz hellenic greek hellas greece hellug linux magazine

Magaz, The Greek Linux Magazine
Τεύχος #27
Περιληπτικά Περιεχόμενα Αναλυτικά Περιεχόμενα Mirrors Links Πληροφορίες Συντάκτες Αναζήτηση Επικοινωνία
Επόμενο Περιεχόμενα ### 1. Practical leaflet tip 1: Για να βλέπετε στο κάτω μέρος της οθόνης την τρέχουσα γραμμή και στήλη:
    :set ruler
(αν θέλετε τέτοιες ρυθμισεις να ισχύουν πάντα δημιουργείστε στο $HOME σας ένα αρχείο .vimrc και γράψτε εκεί την παραπάνω εντολή). tip 2: Διαλέξτε κομμάτια κειμένου με τα πλήκτρα (σαν να χρηιμοποιείτε ποντίκι): Πατήστε v για VISUAL MODE. Με τα πλήκτρα διαλέξτε τις γραμμές του κείμενο που θέλετε. Λειτουργεί το page-up, page-down για να διαλέξετε ολόκληρες οθόνη. Μπορείτε να χρησιμοποιείσετε regular expressions (π.χ. /test) για να επιλέξω το κείμενο μέχρι την πρώτη εμφάνιση της λέξης test. Εναλλακτικά,. πατήστε Ctrl-v για VISUAL BLOCK και διαλέξτε το κείμενο που θέλετε κατά στήλες (κατακόρυφα). Αντιγράφετε το κείμενο. Με p κάνετε επικόλληση (paste). Με d διαγράφετε το μαρκαρισμένο κείμενο. tip 3: Πως αφαιρούμε ΟΛΑ τα html tags από μια html σελίδα και μένει μόνο plain text κείμενο:
    :g/<[^>]*>/s///g
tip 4: Πώς σβήνουμε το mail header από ένα email, ώστε να μείνει μόνο το body του:
    :1,/^$/d
(ουσιαστικά σβήνουμε από την 1η γραμμή μέχρι να βρούμε την πρώτη κενή γραμμή) tip 5: Πως αντικαθιστούμε τη λέξη καλό με τη λέξη πολύ καλό σε όλο το κείμενο και σε όλες τις εμφανίσεις σε κάθε γραμμή, με χρήση του τελεστή &:
    :%s/καλό/πολύ &/g
    (εναλλακτικά :%s/καλό/πολύ καλό/g, αν και δεν είναι και τόσο δυναμικό)
tip 6: Πως κλείνουμε σε /* ... */ την τρέχουσα γραμμή:
    :s/.*/\/* & *\//
tip 7: Πως βάζουμε τις 5 πρώτες γραμμές σε σχόλια τύπου shell (#):
    :1,5s/.*/# &/
    (ή ισοδύναμα :1,5s/^/# /)
tip 8: Πως διαγράφουμε όλες τις κενές γραμμές του κειμένου:
    :g/^$/d
tip 9: Πως σβήνουμε τα κενά πριν από κάθε γραμμή
    :g/^   *\(.*\)/s//\1/g
    (ή ισοδύναμα :g/^   */s///g)
tip 10: Πως διπλασιάζουμε τον αριθμό των κενών μεταξύ των λέξεων
    :%s/  */&&/g
tip 11: Ανταλλαγή μέρας-μήνα. Η ημερομηνία από τη μορφή 21-03-1999 θα γίνει 03-21-1999
    :%s/\([0-9]\{1,2\}\)-\([0-9]\{1,2\}\)-\([0-9]\{4\}\)/\2-\1-\3/g
tip 12: Πώς αντιστρέφουμε 2 στήλες που διαχωρίζονται μεταξύ τους με άνω κάτω τελεία :
    :%s/\(.*\):\(.*\)/\2:\1/g
    (ναι, με awk είναι πιο εύκολο, όντως!)
tip 13: Πως διαγράφουμε τους 4 πρώτους χαρακτήρες σε κάθε γραμμή του κειμένου
    :%s/^....//g
tip 14: Σε περίπτωση που γράφουμε ένα βιβλίο με references της μορφής "Δείτε το κεφάλαιο ΧΧ.ΥΥ", όπου Χ και Y αριθμοί, και θέλουμε να βάλουμε τέτοιες εμφανίσεις σε παρενθέσεις:
    :%s/Δείτε το Κεφάλαιο [1-9][0-9]*\.[1-9][0-9]*/(&)/g
tip 16: Βαρεθήκατε να χρησιμοποιείτε το \ σαν unescape χαρακτήρα για τον χαρακτήρα /; Αλλάξτε το διαχωριστή (delimiter) / της εντολής s (π.χ. με τον χαρακτήρα θαυμαστικό !). Παράδειγμα: Θέλω να αντικαταστήσω το /usr/doc/HOWTO /usr1/doc2/HOWTO3:
    :%s/\/usr\/doc\/HOWTO/\/usr1\/doc2\/HOWTO3 (ο παλιός δύσκολος τρόπος)
    :%s!/usr/doc/HOWTO!/usr1/doc2/HOWTO3! (ο νέος και εύκολος)
tip16: Α....εννοείτε πως για να ψάξουμε για μια έκφραση (π.χ. lalakis) η εντολή είναι:
    /lalakis
Επόμενο Περιεχόμενα