Χρήση Vim¶
Περιγραφή¶
Το Vim είναι ένας επεξεργαστής κειμένου για Unix που συνοδεύει τα Linux, BSD και macOS. Είναι γνωστό ότι είναι γρήγορος και ισχυρός, εν μέρει επειδή είναι ένα μικρό πρόγραμμα που μπορεί να εκτελεστεί σε ένα τερματικό. Κυρίως επειδή μπορεί να διαχειριστεί εντελώς από το πληκτρολόγιο, χωρίς μενού ή ποντίκι. Βασίζεται στον επεξεργαστή κειμένου Vi, αλλά με πρόσθετες δυνατότητες.
Εγκατάσταση¶
Για να εγκαταστήσετε το Vim, επισκεφθείτε εδώ, όπου υπάρχουν οδηγίες εγκατάστασης ανάλογα με το λειτουργικό σύστημα που χρησιμοποιείτε.
Χρήση¶
Στο Vim, υπάρχουν διαφορετικές λειτουργίες (Modes) για τη διαχείριση ενός αρχείου. Τα πιο συνηθισμένα Modes είναι Normal mode(ξεκινάτε σε αυτό το mode όταν ανοίγετε το Vim), Insert mode, Visual mode και Command-Line mode.
Normal mode¶
Αυτό το mode επιτρέπει στο χρήστη να περιηγείται στο αρχείο του, να κάνει αντιγραφή/επικόλληση κειμένου, να διαγράφει κομμάτια κειμένου, να κάνει undo προηγούμενων αλλαγών και γενικότερα να εκτελεί οποιαδήποτε εντολή θέλει για επεξεργασία κειμένου. Η περιήγηση μπορεί να γίνει είτε με τα βελάκια είτε με τον παραδοσιακό τρόπο, στον οποίο οφείλεται και η ταχύτητα εκτέλεσης ενεργειών, δηλαδή πατώντας το πλήκτρο h για αριστερά, το πλήκτρο j για κάτω, το πλήκτρο k για πάνω και το πλήκτρο l για δεξιά.
Insert mode¶
Αυτό το mode επιτρέπει στο χρήστη να γράφει/εισάγει κείμενο όπως ακριβώς και άλλοι επεξεργαστές κειμένου και ο χρήστης μπορεί να μεταβεί σε αυτό το mode από τo Normal mode πατώντας το πλήκτρο i. Για να επιστρέψει στo Normal mode, ο χρήστης μπορεί να πατήσει Esc ή Ctrl+C.
Visual mode¶
Αυτό το mode επιτρέπει στο χρήστη να επιλέγει και να επεξεργάζεται τμήματα/μπλοκ κειμένου και ο χρήστης μπορεί να μεταβεί σε αυτό το mode από το Normal mode πατώντας v ή V. Εάν ο χρήστης μεταβεί σε αυτό το mode χρησιμοποιώντας το v, τότε επιλέγεται ο χαρακτήρας του δρομέα και με τα πλήκτρα πλοήγησης, ο χρήστης μπορεί να επιλέξει λέξεις και γραμμές. Εάν ο χρήστης μεταβεί σε αυτό το mode χρησιμοποιώντας το V, επιλέγεται η γραμμή στην οποία βρίσκεται ο δρομέας και μπορεί επίσης να επιλέξει γραμμές με την πλοήγηση, αλλά Όχι μεμονωμένες λέξεις. Για να επιστρέψει στο Normal mode, ο χρήστης μπορεί να πατήσει Esc ή Ctrl+C.
Command-line Mode¶
Αυτό το mode επιτρέπει στο χρήστη να εκτελεί εντολές επεξεργασίας για το αρχείο που επεξεργάζεται. Για να μεταβεί σε αυτό το mode από το Normal mode, ο χρήστης πρέπει να πατήσει το πλήκτρο : και στη συνέχεια να πληκτρολογήσει την εντολή που θέλει να εκτελέσει, ακολουθούμενος από το πλήκτρο Enter. Για παράδειγμα, η εντολή :%s/<old text>/<new text>/g αλλάζει κάθε εμφάνιση του <old text> με το <new text>. Επιπλέον, ο χρήστης μπορεί να εκτελέσει τις εντολές του τερματικού γράφοντας :! <command> (π.χ. :!ls ή :!grep -r "search_term" /path/to/search). Για να επιστρέψει στo Normal mode, ο χρήστης μπορεί να πατήσει Esc ή Ctrl+C.
Αποθήκευση και έξοδος από το Vim¶
Για να βγει από το Vim, ο χρήστης πρέπει να εκτελέσει την εντολή :q (quit). Ο χρήστης μπορεί να αποθηκεύσει αρχεία εκτελώντας την εντολή :w (write), ενώ η αποθήκευση ενός αρχείου και η έξοδος μπορεί να επιτευχθεί εκτελώντας την εντολή :wq (write quit). Αν ο χρήστης προσπαθήσει να εξέλθει χωρίς να αποθηκεύσει τις αλλαγές, η εντολή :q θα αποτύχει. Σε περίπτωση που ο χρήστης θέλει να εξέλθει χωρίς αποθήκευση, θα πρέπει να χρησιμοποιήσει την εντολή :q! (force quit).
Χρήσιμα Keybinds¶
Μερικά από τα πιο βασικά και χρήσιμα keybinds, τα οποία εκτελεί ο χρήστης ενώ βρίσκεται στο Normal mode ή στο Visual mode είναι τα παρακάτω:
- d+d : Διαγραφή της γραμμής στην οποία βρίσκεται ο κέρσορας και αποθήκευσή της στον default register.
- y+y : Αντιγραφή της γραμμής στην οποία βρίσκεται ο κέρσορας και αποθήκευσή της στον default register.
- /
<keyword>: Αναζήτηση του<keyword>στο αρχείο. - y : Αντιγραφή του επιλεγμένου κειμένου στον default register.
- p : Επικόλληση του περιεχόμενου που είναι αποθηκευμένο στον default register.
- d : Διαγραφή του επιλεγμένου κειμένου και αποθήκευσή του στον default register.
- u : Αναίρεση της τελευταίας αλλαγής (undo).
- Ctrl+r` : Επαναφορά της τελευταίας αλλαγής που αναιρέθηκε (redo).
- Shift+z+Shift+z : Κλείσιμο του
Vimμε αποθήκευση των αλλαγών. - g+g : Μετακίνηση του κέρσορα στην αρχή του αρχείου.
- Shift+g : Μετακίνηση του κέρσορα στο τέλος του αρχείου.
Για περισσότερες πληροφορίες σχετικά με τις συντομεύσεις, δείτε εδώ
Ρύθμιση Vim¶
Για την ρύθμιση του Vim, ο χρήστης πρέπει να μεταβεί στο σημείο που βρίσκεται το αρχείο ρυθμίσεων (.vimrc) του Vim(συνήθως ~/.vimrc στα Linux. Αν το αρχείο δεν υπάρχει, θα πρέπει να δημιουργηθεί).
Αυτό το αρχείο θα αποθηκεύσει τις ρυθμίσεις του χρήστη.
Αν ο χρήστης δεν θέλει να δημιουργήσει το δικό του .vimrc από την αρχή, υπάρχουν έτοιμες ρυθμίσεις όπως αυτό το απλό vimrc (που είναι ένα καλό σημείο για να αρχίσει κάποιος), αυτό το προχωρημένο vimrc (που περιέχει πολλά plugins ρυθμισμένα keybinds), κτλ.
Εγκατάσταση ρύθμισης απλού VIMRC¶
Για να εγκαταστήσει την προτεινόμενη απλή ρύθμιση στα Linux, o χρήστης πρέπει να ακολουθήσει αυτά τα βήματα:
- Μετάβαση στο αρχικό directory
(cd ~) - Κλωνοποίηση του repository και τοποθέτηση του περιεχομένου σε ένα directory με όνομα vim_runtime
(git clone https://github.com/amix/vimrc vim_runtime) - Εκτέλεση του script εγκατάστασης για το vimrc basic
(sh vim_runtime/install_basic_vimrc.sh)
Τώρα που η ρύθμιση έχει αντιγραφεί, ο χρήστης μπορεί να διαργάψει το directory με όνομα vim_runtime.
Εγκατάσταση ρύθμισης προχωρημένου VIMRC¶
Για να εγκαταστήσει την προτεινόμενη προχωρημένη ρύθμιση στα Linux, o χρήστης πρέπει να ακολουθήσει αυτά τα βήματα:
- Μετάβαση στο αρχικό directory
(cd ~) - Κλωνοποίηση του repository και τοποθέτηση του περιεχομένου σε ένα directory με όνομα vim_runtime
(git clone https://github.com/captbaritone/dotfiles vim_runtime) - Μετακίνηση του φακέλου vim που είναι στο vim_runtime στο ~/.vim
(mv ~/vim_runtime/vim ~/.vim) - Μετακίνηση του αρχείου αρχείο vimrc που είναι στο vim_runtime στο ~/.vimrc
(mv ~/vim_runtime/vimrc ~/.vimrc) - Εκτέλεση του vim (
vim) για εγκατάσταση των plugins και πάτημαEnterαπό το χρήστη όταν του ζητηθεί.
Τώρα που η ρύθμιση έχει αντιγραφεί, ο χρήστης μπορεί να διαργάψει το directory με όνομα vim_runtime.
Ρύθμιση επιλογών¶
Στο Vim, ο χρήστης μπορεί να ρυθμίσει ένα option προσθέτοντας την ακόλουθη γραμμή στο .vimrc του.
set {option} όπου {option} είναι η επιλογή που θα οριστεί.
Παράδειγμα επιλογών:
set number κάνει το vim να δείχνει τους αριθμούς γραμμής.
Ρύθμιση Keybinds¶
Τα Keybinds επιτρέπουν στους χρήστες να δεσμεύσουν έναν συνδυασμό πλήκτρων για την γρήγορη εκτέλεση εντολών ή συναρτήσεων.
Προκειμένου να δημιουργήσει ο χρήστης ένα keybind, πρέπει να μεταβεί στο αρχείο .vimrc και να προσθέσει την ακόλουθη γραμμή:
MODE <KEYBIND> <COMMAND>
MODE έιναι το mode στο οποίο θα λειτουργεί το keybind (πχ. nnoremap για Normal mode, inoremap για Insert mode, vnoremap για visual mode).
KEYBIND είναι ο συνδυασμός κλειδιών που πρέπει να πατηθεί για να εκτελεστεί το COMMAND.
COMMAND είναι η ενέργεια που θα εκτελέσει το Vim όταν ενεργοποιείται το keybind.
Παράδειγμα Keybind:
nnoremap <f5> :w <CR>:!clear <CR>:!python3 % <CR>
Αυτό το keybind θα αποθηκεύσει και θα εκτελέσει το τρέχον αρχείο python πατώντας το πλήκτρο F5 στο Normal mode.
Ρύθμιση Plugin¶
Εγκατάσταση ενός Plugin manager¶
Για να ρυθμίσει/εγκαταστήσει plugins, ο χρήστης πρέπει πρώτα να εγκαταστήσει έναν plugin manager, όπως το vim-plug. Αν ο χρήστης έχει εγκαταστήσει την ρύθμιση προχωρημένου VIMRC, μπορεί να παραλείψει αυτό το βήμα.
Για την εγκατάσταση του vim-plug, ο χρήστης πρέπει να προσθέσει τις ακόλουθες γραμμές στο .vimrc (πριν την προσθήκη plugin)
let data_dir = has('nvim') ? stdpath('data') . '/site' : '~/.vim'
if empty(glob(data_dir . '/autoload/plug.vim'))
silent execute '!curl -fLo '.data_dir.'/autoload/plug.vim --create-dirs https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim'
autocmd VimEnter * PlugInstall --sync | source $MYVIMRC
endif
Εγκατάσταση ενός Plugin¶
Ο χρήστης μπορεί να προσθέσει ένα plugin με το vim-plug προσθέτοντας τις ακόλουθες γραμμές στο .vimrc (μετά την εγκατάσταση του vim-plug)
call plug#begin()
Plug 'PluginCreator/Plugin'
call plug#end()
PluginCreator είναι ο δημιουργός του plugin και Plugin είναι το plugin που θέλει να εγκαταστήσει ο χρήστης.
Για παράδειγμα, αν ο χρήστης θέλει να εγκαταστήσει το plugin sensible.vim, το Plug 'PluginCreator/Plugin' πρέπει να αντικατασταθεί με Plug 'tpope/vim-sensible'