Χρήση Neovim¶
Περιγραφή¶
Το Neovim
ή αλλιώς Nvim
είναι ένας επεξεργαστής κειμένου (Text Editor
) που εκτελείται από το τερματικό. Το γεγονός πως εκτελείται στο τερματικό, χωρίς διεπαφή χρήστη, το καθιστά εξαιρετικά γρήγορο και αποτελεσματικό. Εμπίπτει στην κατηγορία των Personalized Development Environment (PDE), σε αντίθεση με άλλα διαδεδομένα Integrated Development Environments (IDE) όπως το VSCode
, IntelliJ
κτλ. Δηλαδή επιτρέπει στον χρήστη να παραμετροποιήσει στον απόλυτο βαθμό τις συντομεύσεις πληκτρολογίου (Keybinds
), το περιβάλλον εργασίας και τις επεκτάσεις (plugins
) που χρησιμοποιεί. Είναι βασισμένος στον επεξεργαστή κειμένου Vim
(Vi Improved
), ο οποίος με τη σειρά του βασίζεται στο Vi
, προσθέτοντας όμως πολλές νέες λειτουργικότητες.
Εγκατάσταση του Neovim¶
Για να εγκαταστήσετε το Neovim
, μεταβείτε εδώ, όπου υπάρχουν οδηγίες εγκατάστασης αναλόγως με το λειτουργικό σύστημα που χρησιμοποιείτε.
Χρήση¶
Στο Neovim
, υπάρχουν διαφορετικές λειτουργίες (Modes
) για τη διαχείριση ενός αρχείου. Τα πιο συνηθισμένα Modes
είναι Normal mode
(ξεκινάτε σε αυτό το mode
όταν ανοίγετε το Neovim
), Insert mode
, Visual mode
και Command-Line mode
.
Normal mode¶
Αυτό το mode
επιτρέπει στο χρήστη να περιηγείται στο αρχείο του, να κάνει αντιγραφή/επικόλληση κειμένου, να διαγράφει κομμάτια κειμένου, να κάνει undo προηγούμενων αλλαγών και γενικότερα να εκτελεί οποιαδήποτε εντολή θέλει για επεξεργασία κειμένου. Η περιήγηση μπορεί να γίνει είτε με τα βελάκια είτε με τον παραδοσιακό τρόπο, στον οποίο οφείλεται και η ταχύτητα εκτέλεσης ενεργειών, δηλαδή πατώντας το πλήκτρο h για αριστερά, το πλήκτρο j για κάτω, το πλήκτρο k για πάνω και το πλήκτρο l για δεξιά.
Insert mode¶
Για την εισαγωγή κειμένου χρησιμοποιείται αυτό το mode
στο οποίο για να εισέλθει ο χρήστης πρέπει ενώ βρίσκεται σε Normal mode
να πατήσει το πλήκτρο i. Έπειτα από αυτό, το Neovim
συμπεριφέρεται όπως ένας απλός text editor με τον οποίον γράφουμε σε ένα αρχείο.
Για να εξέλθει κάποιος από το Insert mode
και να πάει στο Normal mode
το κάνει πατώντας το πλήκτρο Esc ή το συνδυασμό Ctrl+C.
Visual mode¶
Αυτό το mode
δίνει τη δυνατότητα επιλογής και επεξεργασίας τμημάτων του κειμένου. Η ενεργοποίηση αυτού του mode γίνεται πατώντας το πλήκτρο v ή το V. Αν ο χρήστης εισέλθει σε αυτό το mode με v, τότε το Neovim
επιλέγει αυτόν τον χαρακτήρα και με τα πλήκτρα περιήγησης, μπορεί να επιλέξει λέξεις ή και προτάσεις. Αν εισέλθει πατώντας το V τότε αυτόματα επιλέγεται η γραμμή στην οποία βρίσκεται ο χρήστης και μπορεί πάλι με τα πλήκτρα περιήγησης να επιλέξει και άλλες γραμμές του κειμένου, αλλά όχι μεμονωμένες λέξεις.
Για να εξέλθει κάποιος από το Visual mode
και να πάει στο Normal mode
το κάνει πατώντας το πλήκτρο Esc ή το συνδυασμό Ctrl+C.
Command-line Mode¶
Μέσω του command-line mode
ο χρήστης εκτελεί εντολές επεξεργασίας για το αρχείο το οποίο επεξεργάζεται. Για να χρησιμοποιήσει αυτό το mode πρέπει να πατήσει το :, να γράψει την εντολή που επιθυμεί, και στη συνέχεια να πατήσει Enter. Για παράδειγμα η εντολή :%s/<Old text>/<New text>/g
, αλλάζει τα περιεχόμενα του <Old text>
με τα καινούρια <New text>
. Επιπρόσθετα, μπορεί να τρέξει εντολές στο terminal, γράφοντας :! <command>
, όπως για παράδειγμα :!ls
ή :!grep -r "search_term" /path/to/search
.
Για να εξέλθει κάποιος από το Command-line mode
και να πάει στο Normal mode
το κάνει πατώντας το πλήκτρο Esc ή το συνδυασμό Ctrl+C.
Αποθήκευση και έξοδος από το Neovim¶
Για να βγει κάποιος από το περιβάλλον του Neovim
, πρέπει να πληκτρολογήσει το :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.
- "+++y : Αντιγραφή του επιλεγμένου κειμένου στο clipboard (γνωστό και ως '
+
' register). - "+++p : Επικόλληση του επιλεγμένου κειμένου στο clipboard (γνωστό και ως '
+
' register). - u : Αναίρεση της τελευταίας αλλαγής (undo).
- Ctrl+r : Επαναφορά της τελευταίας αλλαγής που αναιρέθηκε (redo).
- Shift+z+Shift+z : Κλείσιμο του
neovim
με αποθήκευση των αλλαγών. - g+g : Μετακίνηση του κέρσορα στην αρχή του αρχείου.
- Shift+g : Μετακίνηση του κέρσορα στο τέλος του αρχείου.
Για περισσότερες πληροφορίες σχετικά με τις συντομεύσεις, δείτε εδώ
Ρύθμιση του Neovim¶
Για να ρυθμίσετε το Neovim
, μεταβείτε στο σημείο όπου είναι το αρχείο ρύθμισης (config file
) του Neovim
(συνήθως ~/.config/nvim
στο Linux. Εάν ο φάκελος δεν υπάρχει, θα χρειαστεί να τον δημιουργήσετε). Δημιουργήστε ένα αρχείο που ονομάζεται init.lua
μέσα στον φάκελο nvim
.
Το αρχείο init.lua
εκτελείται κάθε φορά που ανοίγουμε το Neovim
, επομένως μπορούμε να αποθηκεύσουμε τις ρυθμίσεις για το Neovim
σε αυτό.
Ο προτεινόμενος τρόπος ρύθμισης του Neovim
είναι με το διαχωρισμό του αρχείου init.lua
σε πολλά, μικρότερα αρχεία (πχ ένα αρχείο για τα keybinds remap.lua
, ένα αρχείο για τα plugins plugins.lua
κτλ). Το βασικό αρχείο init.lua
τα κάνει require
, έτσι ώστε να είναι ευκολότερο κάποιος να περιηγηθεί και να ρυθμίσει το Neovim
.
Εάν δεν θέλετε να δημιουργήσετε το δικό σας config file από την αρχή, υπάρχουν έτοιμες ρυθμίσεις όπως το kickstarter.nvim το οποίο έχει ένα αρχείο για τη ρύθμιση του Neovim
και αποτελεί μια καλή βάση για να ξεκινήσει κάποιος, το LazyVim το οποίο πρόκειται για έναν έτοιμο IDE με πολλά plugins και ρυθμισμένα keybinds, κτλ.
Για έναν πιο λεπτομερή οδηγό σχετικά με τη ρύθμιση της ρύθμισής σας, δείτε εδώ.
Ρύθμιση Eπιλογών¶
Στο Neovim
, μπορείτε να ρυθμίσετε μια επιλογή του Neovim
προσθέτοντας την ακόλουθη γραμμή στο init.lua
.
set {option}
Παράδειγμα κώδικα για την εμφάνιση αριθμών γραμμών στο Neovim
: set number
Για περισσότερες πληροφορίες σχετικά με τις διαθέσιμες επιλογές, δείτε εδώ.
Ρύθμιση Keybinds¶
Τα Keybinds
μας επιτρέπουν να δεσμεύσουμε έναν συνδυασμό πλήκτρων για την γρήγορη εκτέλεση εντολών ή συναρτήσεων.
Προκειμένου να δημιουργήσετε ένα keybind, μεταβείτε στο αρχείο init.lua
και προσθέστε την ακόλουθη γραμμή:
vim.keymap.set(MODE, KEYBIND, COMMAND, OPTIONS)
Τo MODE
είναι το mode
στο οποίο θέλετε να ενεργοποιείται αυτό το keybind (πχ. n
για Normal mode
, i
για Insert mode
).
Το KEYBIND
είναι ο συνδυασμός πλήκτρων που πρέπει να πατηθεί για να εκτελεστεί το COMMAND
.
Τo COMMAND
είναι η ενέργεια Neovim
που εκτελείται όταν ενεργοποιείται το keybind.
Τo OPTIONS
είναι οι επιλογές που θα οριστούν για αυτό το keybind.
Παράδειγμα Keybind:
vim.keymap.set ('n', '<leader> s', ':%s/<Old text>/<New text>/g', {silent = true})
(Η επιλογή {silent = true} θα κάνει το keybind να Μην εκτυπώνει το COMMAND
που εκτελείται όταν ενεργοποιηθεί το Keybind)
Ρύθμιση Plugins¶
Εγκατάσταση Plugin Manager¶
Προκειμένου να ρυθμίσετε/εγκαταστήσετε plugins πρέπει πρώτα να εγκαταστήσετε έναν διαχειριστή επεκτάσεων (plugin manager
), όπως το lazy.nvim
. Για έναν πιο λεπτομερή οδηγό σχετικά με τον τρόπο εγκατάστασης του, κάντε κλικ εδώ.
Εγκατάσταση Plugin¶
Μπορείτε να εγκαταστήσετε ένα plugin με lazy.nvim
προσθέτοντας το παρακάτω, στο init.lua
:
require("Lazy").setup({
"Creator1/plugin1",
"Creator2/plugin2",
})
Creator1/Creator2 είναι οι δημιουργοί του plugin.
Το plugin1/plugin2 είναι τα plugins.
Για παράδειγμα, για να προσθέσετε το plugin Comment.nvim, πρέπει να προσθέσουμε τη γραμμή numToStr/Comment.nvim
όπου numToStr
είναι το όνομα του δημιουργού και Comment.nvim
το όνομα του plugin.