Πώς να αντιστοιχίσετε κλειδιά στο Vim

Pos Na Antistoichisete Kleidia Sto Vim



Στο Vim, η αντιστοίχιση πλήκτρων είναι μια διαδικασία εκχώρησης ενός συνόλου πλήκτρων ή εντολών σε ένα συγκεκριμένο κλειδί για την εκτέλεση μιας συγκεκριμένης εργασίας. Για παράδειγμα, για να επιλέξετε όλες τις γραμμές στο αρχείο που χρησιμοποιείτε το ggVG εντολή και πρέπει να πατήσετε τέσσερα πλήκτρα για να το κάνετε. Τι θα λέγατε να το κάνετε με ένα μόνο πάτημα πλήκτρων; Εδώ είναι χρήσιμη η αντιστοίχιση πλήκτρων Vim. Η αντιστοίχιση κλειδιών είναι ένας τρόπος αυτοματοποίησης πολλών εργασιών που εκτελούνται συχνά στο Vim. Και, πρέπει να το έχετε ακούσει. αν κάνετε κάτι περισσότερες από δύο φορές, αυτοματοποιήστε το!

Σε αυτόν τον περιεκτικό οδηγό, θα εξηγήσω πώς να αντιστοιχίσετε τα κλειδιά στο Vim για να αυτοματοποιήσετε τις λειτουργίες. Από τη δημιουργία ενός βασικού χάρτη κλειδιών έως την προηγμένη αντιστοίχιση κλειδιών, μαζί με τις διαδικασίες μόνιμοποίησης και κατάργησής τους.

Σύνταξη

Για να αντιστοιχίσετε το κλειδί στο Vim, χρησιμοποιείται η ακόλουθη σύνταξη:







χάρτης <επιχειρήματα>



Στην παραπάνω σύνταξη:



χάρτης nmap, imap, vmap, xmap, cmap ή omap
<επιχειρήματα>* , ,

*Στην παραπάνω σύνταξη, η ενότητα <επιχειρήματα> είναι προαιρετική.

Vim Special Arguments

Τα Vim Special Arguments είναι ετικέτες που χρησιμοποιούνται για να δώσουν πρόσθετη λειτουργικότητα στους χάρτες πλήκτρων. Αυτά τα ορίσματα εμφανίζονται μετά την εντολή :map και πριν από τα {rhs} και {lhs}.



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

:χάρτης < ρυθμιστής > < Γ-α > ggVG
<σιωπηλός> Για να αποκρύψετε τα ηχώ μηνύματα από έναν χάρτη πλήκτρων
Για να κάνετε τον χάρτη ειδικό για την προσωρινή μνήμη (μοναδική στην τρέχουσα προσωρινή μνήμη)
<σενάριο> Για να υποδείξετε ότι ο χάρτης είναι μέρος ενός σεναρίου ή μιας προσθήκης
<ειδικό> *Χρησιμοποιείται για τον καθορισμό των ειδικών πλήκτρων για αντιστοίχιση με χρήση σημειογραφίας <> (πλήκτρα λειτουργιών, έλεγχος, shift και άλλα μη αλφαβητικά πλήκτρα)
Υποδεικνύει ότι η αριστερή πλευρά της χαρτογράφησης είναι μια έκφραση και ότι πρέπει να αξιολογηθεί για να ληφθεί η δεξιά πλευρά
<μοναδικό> Για να γίνει ο χάρτης μοναδικός ανάμεσα στους τοπικούς και παγκόσμιους χάρτες
<περιμένω> Για να παραλείψετε την αναμονή για τον επόμενο χαρακτήρα εντολής στον χάρτη

Οι σημειώσεις ειδικών πλήκτρων Vim αναφέρονται στην παρακάτω εικόνα.

Για παράδειγμα, εάν θέλετε να χρησιμοποιήσετε το πλήκτρο διαστήματος στην αντιστοίχιση πλήκτρων, θα χρησιμοποιηθεί η σημείωση .

Δημιουργία βασικού χάρτη πληκτρολογίου στο Vim

Ας κατανοήσουμε τη χαρτογράφηση κλειδιού Vim με ένα βασικό παράδειγμα. Θέλω να αντιστοιχίσω την εντολή επιλογή όλων των γραμμών ( ggVG ) προς την ctrl+a κλειδιά. Για να αντιστοιχίσω τα πλήκτρα ctrl+a, θα εκτελέσω την ακόλουθη εντολή στο Vim.

:χάρτης < Γ-α > ggVG

Εδώ, <Γ-α> δηλώνει το ctrl και ένα κλειδιά, ενώ ggVG είναι μια εντολή για την επιλογή όλων των γραμμών στο αρχείο. ο :χάρτης Η λέξη-κλειδί είναι για αντιστοίχιση κανονικής λειτουργίας από προεπιλογή, ωστόσο, το :nmap μπορεί επίσης να χρησιμοποιηθεί ρητά για το κανονικός τρόπος.

Ομοίως, για να αντιστοιχίσετε τον αριθμό γραμμής, αλλάξτε τη λειτουργία με το F1 χρήση κλειδιού:

:χάρτης < F1 > :set number !

Τώρα, όταν πατήσετε το πλήκτρο F1, ο αριθμός γραμμής θα ενεργοποιηθεί και πατώντας ξανά το πλήκτρο απενεργοποιείται.

Σημειώστε ότι αυτή η μέθοδος θα αντιστοιχίσει μόνο τα κλειδιά στην τρέχουσα προσωρινή μνήμη και θα αφαιρεθεί με το κλείσιμο της προσωρινής μνήμης.

Καταχώρηση των Χαρτών πλήκτρων

Για να παραθέσετε όλες τις βασικές αντιστοιχίσεις των κανονικών, οπτικών και εκκρεμών λειτουργιών χειριστή, χρησιμοποιήστε την εντολή :map.

:χάρτης

Για να παραθέσετε αντιστοίχιση κλειδιών του εισάγετε και γραμμή εντολών modes, χρησιμοποιήστε το :map! Εντολή.

:χάρτης !

Για να παραθέσετε την αντιστοίχιση πλήκτρων μιας συγκεκριμένης λειτουργίας, απλώς πληκτρολογήστε το αρχικό γράμμα της λειτουργίας πριν από τη λέξη-κλειδί χάρτη.

:nmap Για να εμφανίσετε τους χάρτες της κανονικής λειτουργίας
:imap Για να εμφανίσετε τους χάρτες της λειτουργίας εισαγωγής
:vmap Για να εμφανίσετε τους χάρτες της οπτικής και επιλογής λειτουργίας
:smap Για να εμφανίσετε τους χάρτες της επιλογής λειτουργίας
:xmap Για να εμφανίσετε τους χάρτες της οπτικής λειτουργίας
:cmap Για να εμφανίσετε τους χάρτες της λειτουργίας γραμμής εντολών
:map Για να εμφανίσετε τους χάρτες του χειριστή σε λειτουργία σε εκκρεμότητα

Επιπλέον, για να παραθέσετε όλους τους χάρτες, συμπεριλαμβανομένων των χαρτών πρόσθετων με διαδρομές, χρησιμοποιήστε : αναλυτικός χάρτης εντολή.

: αναλυτικός χάρτης

Για ένα συγκεκριμένο κλειδί, απλώς αναφέρετε το κλειδί στην εντολή ( : αναλυτικός χάρτης <κλειδί> ).

Κάνοντας μόνιμους χάρτες πλήκτρων

Οι χάρτες κλειδιών που αναφέρονται στην παραπάνω ενότητα θα αντιστοιχίσουν τα κλειδιά μόνο στην τρέχουσα προσωρινή μνήμη. Για να γίνουν μόνιμες οι αντιστοιχίσεις πλήκτρων Vim, οι χάρτες πρέπει να τοποθετηθούν στο αρχείο vimrc.

Σημειώστε ότι κατά την τοποθέτηση του keymap στο vimrc αρχείο, μην προσθέσετε άνω και κάτω τελεία (:) πριν από το χάρτης εντολή.

Αφού τοποθετήσετε το keymap στο vimrc αρχείο, αποθηκεύστε το και κλείστε το χρησιμοποιώντας την εντολή :wq ή χρησιμοποιώντας τα πλήκτρα shift+zz. Οι χάρτες πλήκτρων που τοποθετούνται στο vimrc Το αρχείο θα είναι καθολικό και μπορεί να χρησιμοποιηθεί σε όλες τις περιόδους λειτουργίας Vim. Ωστόσο, ορισμένοι χάρτες πλήκτρων μπορούν να απενεργοποιηθούν προσωρινά εάν επηρεάζουν την εργασία στην τρέχουσα περίοδο λειτουργίας, ανατρέξτε στην ενότητα Τρόπος κατάργησης ενός πληκτρολογίου στο Vim παρακάτω.

ο vimrc είναι το αρχείο ρυθμίσεων του Vim που περιέχει διάφορες εντολές και ρυθμίσεις. Είναι παρούσα στο /usr/share/vim/ κατάλογο στο macOS και /etc/vim σε Linux. Είναι σημαντικό να σημειωθεί ότι η vimrc Τα αρχεία στους αναφερόμενους καταλόγους είναι αρχεία ειδικά για το σύστημα. Μπορείτε να επεξεργαστείτε αυτά τα αρχεία επίσης για αντιστοίχιση κλειδιών, αλλά θα συνιστούσα να δημιουργήσετε ένα συγκεκριμένο χρήστη vimrc αρχείο στον αρχικό κατάλογο.

Αποφυγή αναδρομής

Πριν προχωρήσετε, είναι σημαντικό να μάθετε για την αναδρομή στη χαρτογράφηση κλειδιού Vim. Τα μειονεκτήματά του και πώς να το αποτρέψετε. Μπορεί να γίνει κατανοητό με τη χρήση ενός παραδείγματος.

:χάρτης δδ 3jdd

Στο παραπάνω παράδειγμα, έχω χαρτογραφήσει το δδ πλήκτρα για να μετακινηθείτε προς τα κάτω κατά 3 γραμμές και να διαγράψετε τη γραμμή κάτω από τον κέρσορα. Τώρα, όταν πατάω το δδ , θα προσπαθήσει να εκτελέσει τον χάρτη 3jdd . Ο Vim θα ερμηνεύσει το δδ εντολή ως χάρτη και εκτελέστε τον χάρτη επανειλημμένα, όπως φαίνεται στην παρακάτω εικόνα.

Σημείωση : Η αναδρομή μπορεί να παγώσει το πρόγραμμα επεξεργασίας Vim. Για να το ξεπαγώσετε, πατήστε ctrl+c κλειδιά.

Για να αποφύγετε την επανάληψη, αντικαταστήστε το χάρτης λέξη-κλειδί με noremap , που ' ούτε ' που σημαίνει μη αναδρομικό . θα αντικαταστήσω το χάρτης λέξη-κλειδί με noremap για να διορθώσετε την αναδρομή στον παραπάνω χάρτη πλήκτρων.

:normap δδ 3jdd

Θα συστήσω τη χρήση noremap αντί χάρτης για την αποφυγή κατά λάθος δημιουργίας αναδρομικής χαρτογράφησης.

Δημιουργία χαρτών κλειδιών για συγκεκριμένες λειτουργίες

Το Vim έχει κάνει την αντιστοίχιση πλήκτρων τόσο ευέλικτη, ώστε ακόμη και ένας χάρτης πλήκτρων μιας συγκεκριμένης λειτουργίας μπορεί να δημιουργηθεί αρκετά εύκολα. Για παράδειγμα, εάν έχετε δημιουργήσει έναν χάρτη πλήκτρων για λειτουργία εισαγωγής χρησιμοποιώντας ένα F1 κλειδί, τότε μπορείτε να αντιστοιχίσετε το ίδιο F1 πληκτρολογήστε μια άλλη λειτουργία για μια εντελώς νέα λειτουργία.

Στο παρακάτω παράδειγμα, έχω χαρτογραφήσει το F1 κλειδί για να διαγράψετε 3 γραμμές στο κανονικός λειτουργία και τραβήξτε 3 γραμμές στο εισάγετε τρόπος.

:nmap < F1 >
:imap < F1 > < C-t >

Ο πρώτος χάρτης διαγράφει τρεις γραμμές σε κανονική λειτουργία όταν πατάτε το πλήκτρο F1, ενώ ο δεύτερος χάρτης προσθέτει μία εσοχή στην τρέχουσα γραμμή όταν βρίσκεται σε λειτουργία εισαγωγής χρησιμοποιώντας το ίδιο πλήκτρο. Τώρα, ας κατανοήσουμε τη χαρτογράφηση σε κάθε λειτουργία.

Αντιστοίχιση κανονικής λειτουργίας

Για να εφαρμόσετε έναν χάρτη στην κανονική λειτουργία, χρησιμοποιήστε μόνο nmap λέξη-κλειδί. Για παράδειγμα, για να αντιγράψετε όλες τις γραμμές σε ένα αρχείο χρησιμοποιώντας ctrl+c πλήκτρα, θα χρησιμοποιήσω την ακόλουθη εντολή.

:nmap < Γ-γ > ggVGy

Όπως αναφέρθηκε προηγουμένως, είναι μια βέλτιστη πρακτική η χρήση μιας μη αναδρομικής μεθόδου για την αντιστοίχιση ενός κλειδιού, επομένως, θα αντικαταστήσω το nmap με nnormap λέξη-κλειδί.

:nnormap < Γ-γ > ggVGy

Τοποθετήστε το χωρίς άνω και κάτω τελεία (:) στο vimrc αρχείο για να γίνει μόνιμος χάρτης πλήκτρων.

θα χρησιμοποιήσω noremap αντί του χάρτης στο παρακάτω παράδειγμα.

Αντιστοίχιση λειτουργίας εισαγωγής

Για να αντιστοιχίσετε πλήκτρα για τη λειτουργία εισαγωγής, απλώς χρησιμοποιήστε το Εγώ αντί n . Για παράδειγμα, σε λειτουργία εισαγωγής, ctrl+p και ctrl+n Τα πλήκτρα χρησιμοποιούνται για την αυτόματη συμπλήρωση της λέξης με βάση την αντιστοίχιση προς τα πίσω και προς τα εμπρός αντίστοιχα. Για να χαρτογραφήσετε το ctrl+p πλήκτρα με το πλήκτρο tab, θα χρησιμοποιήσω την ακόλουθη εντολή.

:inoremap < Αυτί > < Γ-σελ >

Το πιο σημαντικό, αν θέλετε να χαρτογραφήσετε λειτουργία σε εκκρεμότητα χειριστή εντολές στο λειτουργία εισαγωγής , τότε πρέπει να εισαγάγετε το πληκτρολογήστε στη δεξιά πλευρά για έξοδο από τη λειτουργία εισαγωγής για να εκτελέσετε αυτές τις εντολές. Για παράδειγμα, στον παρακάτω χάρτη πλήκτρων, θέλω να διαγράψω 3 γραμμές χρησιμοποιώντας το ctrl+x πλήκτρα και μπείτε ξανά στη λειτουργία εισαγωγής.

:inoremap < C-x > 3ddi

Τώρα, όταν πατάω το ctrl+x πλήκτρα, θα εκτυπώσει το 3ddi εντολή αντί να την εκτελέσετε.

Για να το διορθώσω, θα εισάγω το πριν το 3ddi εντολή.

:inoremap < C-x > < Esc > 3ddi

Τώρα, η εντολή θα εκτελέσει την εντολή να με κρατήσει στη λειτουργία εισαγωγής.

Πολλοί μίνι φορητοί υπολογιστές στερούνται Esc κλειδί, το οποίο είναι σημαντικό για έξοδο από την τρέχουσα λειτουργία. Έτσι, για να χαρτογραφήσουμε το Esc κλειδί για έξοδο από τη λειτουργία εισαγωγής, μπορεί να χρησιμοποιηθεί η αντιστοίχιση πλήκτρων. Στο παρακάτω παράδειγμα, χρησιμοποιώ πρώην πλήκτρα για έξοδο στην κανονική λειτουργία.

:inoremap π.χ < Esc >

Όταν πατήσετε γρήγορα το πρώην πλήκτρα η λειτουργία εισαγωγής θα βγει, μπαίνοντας έτσι στην κανονική λειτουργία.

Χαρτογράφηση οπτικής λειτουργίας

Η οπτική λειτουργία είναι μια πολύ σημαντική λειτουργία για την επιλογή κειμένου στον επεξεργαστή Vim. Εκτός από τη βασική επιλογή, η οπτική λειτουργία έχει άλλες διαφορετικές λειτουργίες όπως οπτική γραμμή και λειτουργίες οπτικού μπλοκ.

Στην οπτική λειτουργία, tilde (~) χρησιμοποιείται για την εναλλαγή της υπόθεσης. Για να χρησιμοποιήσετε το tilde (~), πρέπει να πατήσετε τα δύο πλήκτρα (shift+~) . Στο παρακάτω παράδειγμα, αντιστοιχίζω το πλήκτρο c μέσα οπτική λειτουργία για να επιλέξετε μια λέξη κάτω από τον κέρσορα και να αλλάξετε τη πεζή της.

:vnoremap c iw~

Τώρα, πατήστε v για να μπείτε στην οπτική λειτουργία και πατήστε το πλήκτρο c για να αλλάξετε τη λέξη κάτω από τον κέρσορα όπως φαίνεται στο παρακάτω GIF.

Αντιστοίχιση λειτουργίας γραμμής εντολών

Πολλές βασικές εντολές Vim λειτουργούν μόνο στη λειτουργία γραμμής εντολών. Όπως, για να αποθηκεύσετε το αρχείο :Σε Η εντολή χρησιμοποιείται, ομοίως, για αποθήκευση και έξοδο :wq χρησιμοποιείται η εντολή. Όλες οι καρτέλες και οι λειτουργίες διαχωρισμού γίνονται επίσης στη λειτουργία γραμμής εντολών. Για παράδειγμα, για να δημιουργήσετε μια νέα καρτέλα, το : υφιστάμενος χρησιμοποιείται η εντολή. Λοιπόν, για να δημιουργήσετε γρήγορα μια καρτέλα, ctrl+t τα κλειδιά είναι αρκετά.

:cnoremap < C-t > θέμα < CR >

Τώρα, πατήστε την άνω και κάτω τελεία (:) για να μπείτε στη λειτουργία γραμμής εντολών και στη συνέχεια ctrl+t για να ανοίξετε μια νέα καρτέλα. είναι πολύ πιο γρήγορο από το να πληκτρολογήσετε ολόκληρο θέμα εντολή και ΕΠΙΣΤΡΟΦΗ κλειδί.

Δημιουργία προσαρμοσμένων εντολών Vim
Η είσοδος στη λειτουργία εντολών για την εκτέλεση ενός χάρτη φαίνεται λιγότερο χρήσιμη. Αλλά μπορείτε να δημιουργήσετε τις δικές σας προσαρμοσμένες εντολές στο Vim χρησιμοποιώντας το :εντολή επιλογή. Αυτό το χαρακτηριστικό μοιάζει αρκετά με τη χαρτογράφηση του πλήκτρου Vim. Για παράδειγμα, για να δημιουργήσετε μια γρήγορη εντολή για να ορίσετε τον αριθμό γραμμής και το πλάτος κειμένου σε 80, χρησιμοποιήστε την ακόλουθη εντολή.

:command Mycmd :set number πλάτος κειμένου = 80

Τώρα, μπείτε στη λειτουργία εντολής και εκτελέστε το : Mycmd εντολή.

Χαρτογράφηση λειτουργίας σε εκκρεμότητα χειριστή

Η λειτουργία σε εκκρεμότητα χειριστή είναι μια λειτουργία στην οποία το Vim περιμένει την εντολή κίνησης αφού πατηθεί το πλήκτρο χειριστή. Οι κοινοί τελεστές είναι οι y, d και c. Για παράδειγμα, για να διαγράψετε την τρέχουσα γραμμή και τις 3 ακόλουθες γραμμές, θα χρησιμοποιήσετε τον τελεστή d with 3j κίνηση (d3j). Δεν μπορείτε να πατήσετε αυτά τα πλήκτρα ταυτόχρονα, για να επιτύχετε την επιθυμητή λειτουργία.

Η λειτουργία χρησιμοποιείται γενικά για τη χαρτογράφηση των κινήσεων. Ας χαρτογραφήσουμε μια κίνηση που θα επιλέξει την τρέχουσα γραμμή και 3 γραμμές ακολουθούμενες από αυτήν.

:onoremap < F2 > 3j

Τώρα, για να τραβήξετε την τρέχουσα γραμμή και 3 γραμμές που ακολουθούνται από αυτήν χρησιμοποιήστε το το F2 κλειδιά, κατά τον ίδιο τρόπο, το ρε μπορεί επίσης να εφαρμοστεί χειριστής.

Ένα άλλο σημαντικό πράγμα που πρέπει να έχετε κατά νου είναι εάν προσθέσετε μια μέτρηση στην προαναφερθείσα αντιστοιχισμένη κίνηση, ας πούμε 2 , ο χάρτης θα το πάρει ως 23j, όχι ως 6j. Για να διορθωθεί αυτό, μπορεί να χρησιμοποιηθεί η έκφραση register '=. Ο παραπάνω χάρτης μπορεί να τροποποιηθεί ως @=’3j’ .

:onoremap < F2 > @ ='3j' < CR >

Πώς να χαρτογραφήσετε συμβάντα ποντικιού

Αν και το Vim είναι ένα πλήρως προσαρμόσιμο πρόγραμμα επεξεργασίας κειμένου με επίκεντρο το πληκτρολόγιο, η διαθεσιμότητα της λειτουργικότητας του ποντικιού το κάνει ακόμα καλύτερο. Εκτός από τα κανονικά πλήκτρα πληκτρολογίου, όλα τα συμβάντα του ποντικιού μπορούν επίσης να αντιστοιχιστούν στο Vim. Για παράδειγμα, εάν θέλετε να αντιστοιχίσετε το δεξί διπλό κλικ και το αριστερό διπλό κλικ για να μεταπηδήσετε τα σημάδια προς τα εμπρός και προς τα πίσω αντίστοιχα, χρησιμοποιήστε την ακόλουθη αντιστοίχιση.

:normap < 2 -Δεξί ποντίκι > ] `
:normap < 2 -Αριστερό ποντίκι > [ `

Άλλα συμβάντα ποντικιού που μπορούν να αντιστοιχιστούν δίνονται στον παρακάτω πίνακα.

<Αριστερό Ποντίκι> <2-Αριστερό Ποντίκι>
<Δεξί Ποντίκι> <Δεξιά Σύρετε> <2-Δεξί Ποντίκι>
<3-Αριστερό Ποντίκι>
<3-Δεξί Ποντίκι>
<4-Αριστερό Ποντίκι>
<4-Δεξί Ποντίκι> <Χ2 Σύρετε>

Πώς να χαρτογραφήσετε με το κλειδί Leader στο Vim

Η αντιστοίχιση Vim δεν είναι ολοκληρωμένη χωρίς το κλειδί οδηγού. Το κλειδί leader είναι το προεπιλεγμένο κλειδί που μπορεί να χρησιμοποιηθεί για την αντιστοίχιση πλήκτρων, ακόμα κι αν αντιστοιχίζονται για την εκτέλεση κάποιων άλλων εργασιών. Για παράδειγμα, εάν έχετε χαρτογραφήσει το ρε πλήκτρο για να διαγράψετε όλες τις γραμμές, τότε μπορούμε να αντιστοιχίσουμε το ίδιο κλειδί για να διαγράψουμε μόνο 5 γραμμές χρησιμοποιώντας το κλειδί οδηγού.

Για όσους δεν έχουν εξοικείωση, με το Vim leader key. Είναι ένα κλειδί που έχει ένα άλλο κλειδί ή σύνολο πλήκτρων για αντιστοίχιση εντολών ή λειτουργιών. Το προεπιλεγμένο κλειδί οδηγού του Vim είναι μια ανάστροφη κάθετο (\), αλλά είναι προσαρμόσιμο.

Για παράδειγμα, το δδ Η εντολή χρησιμοποιείται για τη διαγραφή της γραμμής κάτω από τον κέρσορα. Αν θέλετε να χαρτογραφήσετε το δδ εντολή για διαγραφή όλων των γραμμών στα αρχεία, τότε μπορείτε να χρησιμοποιήσετε το κλειδί οδηγού.

:normap < Ηγέτης > δδ ggVGd

Τώρα, όποτε πατάτε το \ηη κλειδί, όλες οι γραμμές στο αρχείο θα διαγραφούν. Μπορείτε να αποδώσετε το κλειδί οδηγού Vim ως κλειδί ελέγχου στα Windows ή το κλειδί εντολών στο macOS.

Πώς να αντιστοιχίσετε μια συνάρτηση Vimscript

Ο επεξεργαστής Vim δεν περιορίζεται στις εντολές ή τις λειτουργίες. Υπάρχει μια ολόκληρη γλώσσα προγραμματισμού γύρω από το Vim για τη δημιουργία προσαρμοσμένης λειτουργικότητας που ονομάζεται Vimscript. Μπορείτε εύκολα να δημιουργήσετε ένα σενάριο ή μια συνάρτηση και να το αντιστοιχίσετε σε ένα κλειδί. Για παράδειγμα, ας δημιουργήσουμε μια συνάρτηση που θα ενεργοποιεί ρυθμίσεις όπως ο αριθμός γραμμής, η λειτουργικότητα του ποντικιού και το εύρος κειμένου.

λειτουργία Οι ρυθμίσεις μου ( )
σειρά αριθμός
σειρά ποντίκι
σειρά πλάτος κειμένου = 80
τελική λειτουργία

Τοποθετήστε αυτή τη συνάρτηση στο αρχείο vimrc.

Ας χαρτογραφήσουμε αυτή τη συνάρτηση με τον οδηγό και τα πλήκτρα s. θα χρησιμοποιήσω

:normap < Ηγέτης > s :καλέστε MySettings ( ) < CR >

Τώρα, όποτε πατάτε το \μικρό πλήκτρα, θα κληθεί η συνάρτηση και θα εκτελεστεί οποιαδήποτε λειτουργία εντός της συνάρτησης.

Σημείωση : Το πρώτο γράμμα του ονόματος της συνάρτησης πρέπει πάντα να γράφεται με κεφαλαία κατά τη δημιουργία μιας προσαρμοσμένης συνάρτησης στο Vim.

Πώς να αντιστοιχίσετε εξωτερικές εντολές στο Vim

Οι εξωτερικές εντολές μπορούν επίσης να αντιστοιχιστούν στο Vim. Οι εξωτερικές εντολές αναφέρονται σε εντολές Linux ή Unix. Για παράδειγμα, εάν θέλετε να αντιστοιχίσετε το εξωτερικό είδος εντολή για ταξινόμηση όλων των γραμμών στο τρέχον buffer στο F1 κλειδί, χρησιμοποιήστε την ακόλουθη εντολή.

:normap < F1 > : %! είδος < CR >

Με τον ίδιο τρόπο, εάν γράφετε ένα αρχείο σεναρίου και το κάνετε εκτελέσιμο χωρίς να βγείτε από τη συνεδρία Vim, μπορείτε να χρησιμοποιήσετε το chmod εντολή εσωτερικά. Για παράδειγμα, για να κάνετε το τρέχον αρχείο εκτελέσιμο, μπορείτε να εκτελέσετε την εντολή :!chmod +x % στο Βιμ. Εάν εκτελείτε συχνά αυτήν την εργασία, τότε απλώς αντιστοιχίστε ένα κλειδί σε αυτήν.

:normap < F1 > : ! chmod +x %

Στο Vim, οποιαδήποτε εξωτερική εντολή μπορεί να χρησιμοποιηθεί με ένα θαυμαστικό (!).

Πώς να αφαιρέσετε έναν χάρτη πληκτρολογίου στο Vim

Για να αφαιρέσετε χάρτες πλήκτρων στο Vim, πρώτα προσδιορίστε πού ορίζεται. Όπως αναφέρθηκε προηγουμένως, οι χάρτες κλειδιών μπορεί να είναι τοπικοί και μόνιμοι. Εάν το keymap είναι μόνιμο και τοποθετηθεί στο αρχείο vimrc, τότε η απλή κατάργησή τους από το αρχείο θα καταργήσει τη χαρτογράφηση των κλειδιών.

Εάν η αντιστοίχιση γίνει στο τρέχον buffer, τότε μπορούν να αφαιρεθούν χρησιμοποιώντας το : unmap ή :unmap! εντολές.

  • : unmap για να διαγράψετε τους χάρτες πλήκτρων κανονικών, οπτικών, επιλεγμένων ή εκκρεμών λειτουργιών χειριστή
  • :unmap! για να καθαρίσετε τους χάρτες πλήκτρων των λειτουργιών εισαγωγής και γραμμής εντολών

Για παράδειγμα, για να αφαιρέσετε το κλειδί, χρησιμοποιήστε το :unmap . Επιπλέον, η αφαίρεση των πλήκτρων μπορεί να είναι συγκεκριμένη για τη λειτουργία. Εάν θέλετε να καταργήσετε τον χάρτη κανονικής λειτουργίας, χρησιμοποιήστε το :nunmap . Άλλες εντολές για την κατάργηση ενός keymap αναφέρονται παρακάτω:

:nunmap Για να αφαιρέσετε τους χάρτες του κανονικός τρόπος
:iunmap Για να αφαιρέσετε τους χάρτες του εισάγετε τρόπος
:vunmap Για να αφαιρέσετε τους χάρτες του οπτικός και επιλέγω τρόπος
:sunmap Για να αφαιρέσετε τους χάρτες του επιλέγω τρόπος
:xunmap Για να αφαιρέσετε τους χάρτες του οπτικός τρόπος
:cnmap Για να αφαιρέσετε τους χάρτες του γραμμή εντολών τρόπος
:unmap Για να αφαιρέσετε τους χάρτες του εκκρεμεί ο χειριστής τρόπος

Για να αφαιρέσετε όλους τους χάρτες στην τρέχουσα προσωρινή μνήμη, χρησιμοποιήστε το :mapclear εντολή.

:mapclear

Η παραπάνω εντολή θα διαγράψει όλους τους χάρτες πλήκτρων της κανονικής, οπτικής, επιλογής ή λειτουργίας σε εκκρεμότητα χειριστή.

Για να διαγράψετε όλους τους χάρτες πλήκτρων των λειτουργιών εισαγωγής και γραμμής εντολών χρησιμοποιήστε:

:mapclear !

Σημειώστε ότι οι προεπιλεγμένες εντολές Vim δεν είναι σαφείς, ωστόσο, μπορούν να απενεργοποιηθούν χρησιμοποιώντας το : unmap εντολή με <Όχι> . Για παράδειγμα, εάν θέλετε να απενεργοποιήσετε τη λειτουργία dd που διαγράφει τη γραμμή κάτω από τον κέρσορα, χρησιμοποιήστε :unmap dd <Όχι>.

: unmap δδ < Όχι >

Το dd δεν θα είναι πλέον λειτουργικό στην τρέχουσα προσωρινή μνήμη. Χρησιμοποιώντας αυτήν τη μέθοδο, οποιοσδήποτε χάρτης πλήκτρων μπορεί να απενεργοποιηθεί για την τρέχουσα περίοδο λειτουργίας.

Φύλλο εξαπάτησης αντιστοίχισης κλειδιού Vim

Η παρακάτω εικόνα παρέχει μια λίστα με όλες τις εντολές και τις συγκεκριμένες λειτουργίες τους για αναφορά.

συμπέρασμα

Η αντιστοίχιση πλήκτρων Vim είναι ένας εύχρηστος τρόπος για να αυτοματοποιήσετε τις εργασίες σας, τη δέσμευση κλειδιών που χρησιμοποιείτε συχνά, τις εντολές και άλλες λειτουργίες. Είναι ένα ποικίλο θέμα και σε αυτόν τον οδηγό, κάλυψα όλες τις κύριες πτυχές που σχετίζονται με τη χαρτογράφηση κλειδιών στο Vim. Από τη γενική σύνταξη έως τη δημιουργία ενός βασικού χάρτη πλήκτρων και μέχρι την αντιστοίχιση προηγμένων συναρτήσεων Vimscript και εξωτερικών εντολών. Για να μάθετε περισσότερα σχετικά με τη χαρτογράφηση πλήκτρων Vim, χρησιμοποιήστε το :help key-mapping εντολή στο Vim.