Οι επεξεργαστες κειμενου ειναι τα βασικα μας εργαλεια για να μεταβαλλουμε τα περιεχομενα των αρχειων μας κατα βουληση. Υπαρχουν πολλοι editors και η επιλογη ενος η περισσοτερων απο το χρηστη βασιζεται στις αναγκες και τις προσωπικες του προτιμησεις. Ενας editor πρεπει να επιλεγει βασει των δυνατοτητων του να κανει τις εργασιες που κανουμε συνηθως αποδοτικα. Εμεις εχουμε να σας προτεινουμε τον επεξεργαστη emacs που κατα τη γνωμη μας ειναι ο πληρεστερος ιδιαιτερα για οσους ασχοληθουν με προγραμματισμο, η χρηση του για τις κοινες εργασιες επεξεργασιας απλη και διαισθητικη καθως και η δυνατοτητα του να διαμορφωθει απο το χρηστη κατα το δοκουν οταν αυτος εξοικειωθει περισσοτερο μαζι του μεγαλη.
Στην αρχη ο emacs μπορει να σας φανει δυσκολος εξ'αιτιας του μεφαλου αριθμου λειτουργιων/εντολων που εχει. Μην ... πηξετε. Εχετε στο νου σας οτι για τις απλες εργασιες επεξεργασιας δεν σας χρειαζονται ολες οι δυνατοτητες του emacs.
Για να καλεσετε τον emacs γραψτε στη γραμμη
εντολων
emacs &
η προσθεστε το ονομα του αρχειου <file> που θελετε να επεξεργαστητε:
emacs <file> &
Για να καλεσετε τον emacs στο τερματικο σας
χωρις να ανοιξετε ειδικο παραθυρο για τον emacs, χρησιμοποιηστε την εντολη
emacs -nw
Για να γραψετε Ελληνικα ειναι επιθυμητο να δηλωσετε τη γραμματοσειρα
που θα σας δειχνει ελληνικους χαρακτηρες. Μια επιλογη ειναι:
emacs --unibyte -fn -greek-lucidatypewriter-medium-r-normal-sans-12-120-75-75-m-80-iso8859-7
Μια και η εντολη ειναι αρκετα μεγαλη, μπορειτε να επαναορισετε την
εντολη emacs στο αρχειο ~/.tcshrc προσθετοντας την γραμμη:
alias emacs "emacs --unibyte -fn -greek-lucidatypewriter-medium-r-normal-sans-12-120-75-75-m-80-iso8859-7"
Ο επεξεργαστης emacs εχει πολλα
πλεονεκτηματα, μπορει ομως να μην ειναι η επιλογη σας. Μπορειτε επισης
να μαθετε σιγα σιγα και αλλους editors και να τους χρησιμοποιητε για
διαφορετικες εργασιες. Ενας ελαφρυς και ευκολος editor που τρεχει στο
τερματικο σας ειναι ο pico, ενω απλοι στην
εκμαθηση ειναι και οι nedit και gedit. Οι παραπανω επιλεχτηκαν γιατι ειναι
δυνατον να γραψετε και να διαβασετε ελληνικα με αυτους.
Οταν χρησιμοποιοντας τον editor επεξεργαζεστε ενα αρχειο, τοτε στην πραγματικοτητα γινεται ο εξης κυκλος:
Οταν ξεκινα ο emacs εμφανιζεται ενα
παραθυρο με ενα buffer, το mode line, το minibuffer και τα menu.
Αν εχετε ηδη ανοιξει ενα αρχειο (ειτε δινοντας την εντολη find-file
ειτε δινοντας το ονομα του
αρχειου σαν ορισμα στην γραμμη εντολων του φλοιου που καλεσατε τον
emacs) τα περιεχομενα του αρχειου
εμφανιζονται στο κυριως buffer.
Το mode line ειναι στο κατω μερος του παραθυρου και μας δινει χρησιμες
πληροφοριες:
Στη συγκεκριμενη περιπτωση μας λεει το ονομα του αρχειου (index.html),
οτι ειναι αρχειο γλωσσας HTML (γλωσσα μορφοποιησης μετα-κειμενου για
το διαδικτυο), οτι βρισκομαστε στην γραμμη 26 (L26 = Line 26) και στη
στηλη 22 (C22 = Column 22) του buffer και οτι κοιταζουμε τα πρωτα 3%
του αρχειου. Τα δυο αστερακια (-:**) σημαινουν οτι εχουμε κανει
αλλαγες στον buffer που πρεπει καποια στιγμη να σωσουμε. Οταν σωσουμε
το αρχειο γινονται παυλες (-:--).
Κατω απο το mode line βλεπουμε το miniuffer.
Ειναι η "γραμμη εντολων" του emacs και
μπορουμε εκει να πληκτρολογησουμε τα ονοματα των εντολων.
Στην κορυφη του παραθυρου βλεπουμε τα menu. Απο εκει μπορουμε με το
ποντικι μας να επιλεξουμε εντολες:
Τελος, το κοκκινο τετραγωνακι πανω απο το χαρακτηρα "γ" της λεξης
"επιλεγει" ειναι ο cursor. Αυτο ειναι το σημειο οπου μπορω να αρχισω
λ.χ. να προσθετω χαρακτηρες στον buffer.
Υπαροχουν τρεις βασικοι τροποι εισαγωγης εντολων στον emacs:
Στη δευτερη περιπτωση ακολουθουμε την εξης συμβαση: Οταν γραφουμε C-<char> εννοουμε πως παταμε το πληκτρο Ctrl ταυτοχρονα με το πληκτρο <char>. Π.χ. C-x C-f σημαινει κρατα το πλητρο Ctrl διαρκως πατημενο και πατα ταυτοχρονα διαδοχικα τα πληκτρα x και f. Στην περιπτωση του Μ-<char> εννοουμε πως παταμε το πληκτρο Alt μαζι με το πληκτρο <char>. Π.χ. M-x σημαινει κρατα το πληκτρο Alt πατημενο ταυτοχρονα με το πληκτρο x. Ισοδυναμα μπορουμε να πατησουμε το πληκτρο Esc, να το αφησουμε και μετα να πατησουμε το x. Αυτο ειναι ιδιαιτερα χρησιμο σε τερματικα που δεν εχουν κανονησει το πληκτρο Alt να κανει την δουλεια του πληκτρου meta.
Στην τριτη περιπτωση μεταβαινουμε στο minibuffer με την εντολη M-x Γραφουμε το ονομα της συναρτησης (π.χ. save-buffer) και παταμε Enter ωστε να εκτελεστει η εντολη. Αν θελουμε να φυγουμε απο το minibuffer ή να ακυρωσουμε μια εντολη, αρκει να πατησουμε το πληκτρο C-g μια ή περισσοτερες φορες για να ξεφυγουμε. Αυτο ειναι το "Escape" πληκτρο του emacs και ποτε δεν πρεπει να φοβομαστε να το παταμε οσες φορες θελουμε!!!
Για να φερουμε τα περιεχομενα ενος αρχειου στο buffer, βαζουμε το
ονομα του αρχειου σαν ορισμα στη γραμμη εντολων που καλεσε τον emacs, η δινουμε την εντολη: M-x find-file
στο minibuffer ή την
ακολουθια χαρακτηρων C-x C-f ή απο το
File menu επιλεγουμε Open
file και γραφουμε το path του αρχειου.
Τοποθετουμε τον cursor εκει που επιθυμουμε να προσθεσουμε
κειμενο. Πληκτρολογουμε το κειμενο που θελουμε να προσθεσουμε. Για να
γραψουμε ελληνικα μπορουμε να πατησουμε το πληκτρο M-g και να εισαγουμε ελληνικους
χαρακτηρες. Πατωντας το ξανα επιστρεφουμε στους λατινικους
χαρακτηρες. Παρατηρηστε το mode line σε καθε περιπτωση:
Για να τονισουμε ενα φωνηεν, παταμε το χαρακτηρα ; πριν να πατησουμε το φωνηεν. Για να βαλουμε
διαλυτικα παταμε : πριν το φωνηεν. Για
διαλυτικα και τονο μαζι παταμε : ; και
μετα το φωνηεν. Για να βαλουμε ερωτηματικο ή ανω-κατω τελεια παταμε
τους αντιστοιχους χαρακτηρες δυο φορες η το πληκτρο q, Q. Για να γραψουμε ς παταμε το w
κ.ο.κ (κανετε δοκιμες).
Για να διορθωσουμε λαθη που καναμε σβηνουμε χαρακτηρες προς τα πισω με το πληκτρο Back Space και προς τα εμπρος με C-d. Μια ολοκληρη γραμμη μπορει να σβησει με το πληκτρο C-k. Μπορουμε να ανοιξουμε μια γραμμη με το πληκτρο C-o. Ο cursor μετακινηται σε αλλα σημεια του buffer με τα βελακια ή κανοντας το με ποντικι αριστερο κλικ εκει που θελουμε.
Στην αρχη και στο τελος του buffer μεταφερομαστε με τις εντολες M-< και M->
ή πατωντας τα πληκτρα Home End. Εναλλακτικα, απο το minibuffer:
M-x beginning-of-buffer
M-x end-of-buffer
Μπορουμε να μετακινηθουμε σελιδα-σελιδα με τα πληκτρα
C-V και
M-V ή με τα πληκτρα
Pg Dn και
Pg Up
Με τον curson μπορουμε να κινησουμε την πλαινη μπαρα (scrollbar) και
να τοποθετηθουμε σε οποιο σημειο του buffer θελουμε.
Επισης μπορουμε να κεντραρουμε το κειμενο και να ξαναζωγραφισουμε το
παραθυρο αν για καποιο λογο γινει μπερδεμα με το πληκτρο
C-l
Στην αρxη και στο τελος της τρεχουσας γραμμης μεταφερομαστε με τα πληκτρα C-a και C-e.
Για να σωσουμε τη δουλεια μας εκτελουμε την εντολη απο το minibuffer
M-x save-buffer
ή
παταμε το πληκτρο C-x C-s ή απο το File menu επιλεγουμε Save
(current buffer)
Για να κλεισουμε τον emacs:
M-x
save-buffers-kill-emacs
ή
παταμε το πληκτρο C-x C-c ή απο το File menu επιλεγουμε Exit
Emacs
Η αποκολληση του κειμενου της περιοχης γινεται με την εντολη C-w Η αντιγραφη με την εντολη M-w Η επικολληση με την εντολη C-y. Εναλλακτικα απο τα menu Edit βρισκω τις επιλογες Cut, Copy, Paste και Select and Paste.
Στην περιπτωση που χρησιμοποιω το ποντικι με τους δυο πρωτους τροπους, η αντιγραφη εχει ηδη γινει, η αποκοπη μπορει να γινει με δευτερο δεξι κλικ του ποντικιου και η επικολληση με μεσαιο κλικ (σε ποντικια με δυο κουμπια παταμε δεξι και αριστερο ταυτοχρονα). Η αντιγραφη/επικολληση γινεται και απο αλλες παραθυρικες εφαρμογες οπως το mozilla, τερματικα, αλλα παραθυρα του emacs κλπ.
Επισης μπορει να γινει αποκοπη ολοκληρης γραμμης κειμενου με την εντολη C-k και στη συνεχεια να επικολληθει αλλου με την C-y
Σε πολλες περιπτωσεις οι αλλαγες που καναμε δεν μας ικανοποιουν ή
κανουμε καταστροφικα λαθη. Δινοντας διαδοχικα την εντολη
M-x undo
η πατωντας το πληκτρο C-x u μπορουμε να
επαναφερουμε το κειμενο μας στην αρχικη του μορφη! Η εντολη
undo υπαρχει και στο μενου
Edit ->
Undo
Η αναζητηση κειμενου γινεται με την εντολη
isearch-forward
για αναζητηση εμπροσθεν του point και με την εντολη
isearch-backward
για αναζητηση πισω απο το point. Πιο συντομα οι εντολες δινονται με τα
πληκτρα C-s και C-r αντιστοιχα.
Για να αντικαταστησω κειμενο, δινω την εντολη
query-replace
και γραφω στο minibuffer το κειμενο προς αντικατασταση και πατω
Enter Εισαγω το νεο κειμενο και πατω παλι
Enter O emacs με ρωταει αν θελω την
αντικατασταση και απαντω με y (yes),
n (no) ή q
(quit).
Ο emacs εχει ενα πολυ καλο συστημα βοηθειας για τον χρηστη που ξεκιναει αλλα και για τον προχωρημενο χρηστη. Ο συνδυασμος πληκτρων C-h <key> <key> = f,k,a,b,m,t,i μας δινει προσβαση στο συστημα βοηθειας:
Γενικα παρατηρηστε οτι υπαρχει μια λογικη και στα ονοματα των συναρτησεων αλλα και στην επιλογη των πληκτρων συντομευσης. Τα πληκτρα συντομευσης αναφερονται και στα menu απο οπου μπορειτε να ...φρεσκαρετε τη μνημη σας. Χρησιμοποιηστε κατα κορον την συμπληρωση εντολων με το Tab στο minibuffer αλλα και στο συστημα βοηθειας (π.χ. C-h f) για να αφηνετε τον emacs να σας θυμιζει οτι χρειαζεστε. Για τη μνημη σας υπαρχουν και οι καρτες του emacs-survival emacs-refcard και μπορειτε να τισ κατεβασετε απο τους πιο πανω συνδεσμους.
Ο emacs επεξεργαζεται τα buffers θετοντας το περιβαλλον σε ορισμενους "τροπους" (modes). Οταν για παραδειγμα εργαζεστε σε ενα αρχειο γλωσσας προγραμματισμου FORTRAN ο emacs αυτοματα εισαγει την fortran-mode, σε ενα αρχειο γλωσσας C ο emacs αυτοματα εισαγει την c-mode κ.ο.κ. Σε καθε mode η λειτουργια των πληκτρων αλλαζει και εισαγονται καινουργιες συντομευσεις για εντολες που χρειαζεται συνηθως καποιος οταν επεξεργαζεται το αναλογο αρχειο.
Για παραδειγμα η χρηση του πληκτρου Tab ειναι διαφορετικη στη fortran-mode απο οτι σε ενα απλο αρχειο κειμενου: Τοποθετει τον κωδικα στη σωστη στηλη κατι που οποιος προγραμματιζει σε Fortran θα χαρει πολυ να γινεται αυτοματα. Επισης οι εντολες, συναρτησεις, μεταβλητες, σχολια κλπ θα χρωματιστουν με αλλο χρωμα (για αυτο μπορειτε να παρετε ηδη μια γευση απο το αρχειο html που φαινεται στην παραπανω εικονα του emacs). Οι παρενθεσεις, αγκυλες, loops θα μαρκαριστουν με βολικο τροπο για τον προγραμματιστη. Περα απο την βολικοτητα και καλη αισθητικη, ο προγραμματιστης θα γλυτωσει απο πολλα πιθανως ανοητα λαθη!
Ενα απλο αρχειο κειμενου μπαινει στον λεγομενο fundamental-mode, ενω αρχεια γλωσσων προγραμματισμου στους αναλογους modes: fortran-mode για Fortran, c-mode για C, perl-mode για Perl, lisp-mode για Lisp, sh-mode για shell scripting κλπ κλπ. Οι modes δεν περιοριζονται σε γλωσσες προγραμματιμου: Εχουμε latex-mode για μορφοποιηση κειμενου σε LaTeX, html-mode για μορφοποιηση κειμενου σε HTML, mail-mode για συνθεση μυνηματος ηλεκτρονικου ταχυδρομειου (email) κλπ.
Εκτος απο τους παραπανω κυριους τροπους λειτουργιας (major modes)
υπαρχουν και minor modes τα οποια μπορουν να "τρεχουν" σε συνδυασμο με
οποιοδηποτε αλλο mode. Για παραδειγμα εχουμε τον
greek-mode για να γραφουμε ελληνικα,
auto-fill-mode για να αλλαζει η γραμμη
αυτοματα οταν φτανουμε στο οριο στηλων που εχουμε θεσει,
scroll-bar-mode για να εχουμε scroll bar
για τη μετακινηση του παραθυρου,
overwrite-mode για να προσθετουμε χαρακτηρες
πανω απο τους ηδη υπαρχοντες,
font-lock-mode για να χρωματιζονται οι
ειδικες λεξεις σε καθε mode. Οι modes μπορουν να κληθουν και απο το
minibuffer οπως μια οποιαδηποτε αλλη εντολη και το αποτελεσμα ειναι η
διαδοχικη εκκινηση/σταματημα του συγκεκριμενου mode. Δωστε για
παραδειγμα την εντολη
M-x scroll-bar-mode
μερικες φορες και παρατηρηστε τις αλλαγες που γινονται στο παραθυρο.
Οταν ενα αρχειο μεγαλωνει σε μεγεθος ή η επεξεργασια του αυξανει σε πολυπλοκοτητα ειναι πολυ βολικο να μπορουμε να δουμε διαφορετικα τμηματα του ιδιου αρχειου, να συγκρινουμε με αλλα αρχεια ή να αντιγραψουμε τμηματα αλλων αρχειων ή και του ιδιου στο σημειο επεξεργασιας. Με τον emacs εχουμε τη δυνατοτητα να χωρισουμε ενα παραθυρο σε δυο η περισσοτερα μερη ή να ανοιξουμε καινουργια παραθυρα (frames) αν εργαζομαστε σε γραφικο περιβαλλον.
Με την εντολη
M-x
split-window-vertically
(συντομευση C-x 2) χωριζουμε το υπαρχον
παραθυρο σε δυο μερη ενω με την εντολη
M-x delete-other-windows
(συντομευση C-x 1) σβηνουμε τα υπολοιπα
παραθυρα. Σε καθε παραθυρο μπορουμε να κινηθουμε ανεξαρτητα στο ιδιο ή
αλλο buffer και να ανοιξουμε αλλο αρχειο η να διαλεξουμε αλλο buffer.
Για να μεταφερθουμε σε αλλο παραθυρο κανουμε αριστερο κλικ με το
ποντικι η με την εντολη other-window (C-x o) Για να αλλαξουμε τα μεγεθη των παραθυρων
σερνουμε με το ποντικι μας το αντιστοιχο line mode.
Σε καθε παραθυρο μπορουμε να ανοιξουμε καινουργιο αρχειο (C-x C-f) ή να μεταφερθουμε σε αλλο buffer με την την εντολη C-x b (switch-to-buffer). Ακομα πιο απλα μπορουμε να επιλεξουμε αλλο buffer με το ποντικι μας απο το menu Buffers. Οταν τα buffers γινουν πολλα, μπορουμε να βαλουμε ... ταξη με την εντολη C-x C-b (list-buffers).
Η καθιερωμενη συμπεριφορα του emacs μπορει να τροποποιηθει ή/και να εμπλουτιστει απο το αρχειο ~/.emacs Οταν ο emacs ξεκιναει, διαβαζει το αρχειο αυτο και εκτελει τις εντολες που ειναι γραμμενες σ' αυτο. Εκει μπορει π.χ. ο χρηστης να (επανα)οριζει την λειτουτγια των πληκτρων, καινουργιες συναρτησεις που να κανουν συνθετες λειτουργιες χρησιμες γι'αυτον, την εμφανιση του παραθυρου, του line mode κλπ.
Οι εντολες στο αρχειο αυτο ειναι γραμμενες σε μια παραλλαγη της
γλωσσας lisp, την Emacs Lisp. Για να κανουμε απλες ρυθμισεις δεν
χρειαζεται να γνωριζουμε τη γλωσσα στη λεπτομερεια της. Κατεβαστε τα
παρακατω αρχεια και δειτε πως δουλευουν. Σωστε τα στην περιοχη σας με
το ονομα ~/.emacs και επανεκινηστε τον emacs Εναλλακτικα δωστε την εντολη
M-x load-file Enter
~/.cshrc
Δοκιμαστε τωρα πως δουλευουν τα πληκτρα F1 -
F12.
Αν θελετε μπορειτε να δοκιμασετε και καποιους απο τους αλλους editors που βρισκονται στο συστημα σας. Λαμβανοντας υπ'οψην την απλοτητα χρησης και την αναγκη να γραφετε ελληνικα, προτενουμε τους pico, nedit και gedit.
Για να γραψετε Ελληνικα, θα πρεπει το τερματικο σας να δουλευει σε
καποιο απο τα ελληνικα fonts. Εδω αυτο πρεπει να γινεται απο μονο
του, αν εχετε προβλημα στην δικια σας εγκατασταση, βρητε τα ελληνικα
fonts που εχετε στο συστημα σας με την εντολη
xlsfonts | grep
8859-7
διαλεξτε ενα απο αυτα και καλεστε ενα τερματικο π.χ. με την εντολη:
xterm -fn -greek-lucidatypewriter-medium-r-normal-sans-12-120-75-75-m-80-iso8859-7
Μετα θα πρεπει να εχετε στο συστημα σας το προγραμμα xgrk (πηγαινετε στον δικτυακο τοπο του
XGRK αν
δεν το εχετε για να το κατεβασετε). Δωστε την εντολη
xgrk &
Με το πληκτρο
Alt-Shift αλλαζετε απο ελληνικους σε
λατινικους χαρακτηρες. Ισοδυναμα, μπορειτε να κανετε και κλικ στη
σημαιουλα.
nedit <myfile>
&