Χρήση 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'