Μετάβαση στο περιεχόμενο

Χρήση 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 χρήστης πρέπει να ακολουθήσει αυτά τα βήματα:

  1. Μετάβαση στο αρχικό directory
    (cd ~)
  2. Κλωνοποίηση του repository και τοποθέτηση του περιεχομένου σε ένα directory με όνομα vim_runtime
    (git clone https://github.com/amix/vimrc vim_runtime)
  3. Εκτέλεση του script εγκατάστασης για το vimrc basic
    (sh vim_runtime/install_basic_vimrc.sh)

Τώρα που η ρύθμιση έχει αντιγραφεί, ο χρήστης μπορεί να διαργάψει το directory με όνομα vim_runtime.

Εγκατάσταση ρύθμισης προχωρημένου VIMRC

Για να εγκαταστήσει την προτεινόμενη προχωρημένη ρύθμιση στα Linux, o χρήστης πρέπει να ακολουθήσει αυτά τα βήματα:

  1. Μετάβαση στο αρχικό directory
    (cd ~)
  2. Κλωνοποίηση του repository και τοποθέτηση του περιεχομένου σε ένα directory με όνομα vim_runtime
    (git clone https://github.com/captbaritone/dotfiles vim_runtime)
  3. Μετακίνηση του φακέλου vim που είναι στο vim_runtime στο ~/.vim
    (mv ~/vim_runtime/vim ~/.vim)
  4. Μετακίνηση του αρχείου αρχείο vimrc που είναι στο vim_runtime στο ~/.vimrc
    (mv ~/vim_runtime/vimrc ~/.vimrc)
  5. Εκτέλεση του 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'