Recherche…


Syntaxe

  • : set relativenumber
  • : définir le numéro
  • : set nonumber /: set nonu
  • : pwd

Remarques

Ce rechargement automatique ne se produira que si vous éditez votre vimrc dans une version complète de vim qui supporte autocmd .

Macros rapides "jetables"

Ajoutez ceci à votre vimrc:

nnoremap Q @q

Pour commencer à enregistrer la macro "throwaway", utilisez qq . Pour terminer l'enregistrement, appuyez sur q (en mode normal pour les deux).

Pour exécuter la macro enregistrée, utilisez Q

Ceci est utile pour les macros que vous devez répéter plusieurs fois de suite mais qui ne seront probablement pas réutilisées par la suite.

Utiliser la fonction d'achèvement de chemin à l'intérieur de Vim

C'est très commun, vous mémorisez un chemin vers un fichier ou un dossier, vous ouvrez Vim et essayez d'écrire ce que vous venez de mémoriser, mais vous n'êtes pas sûr à 100% que vous avez raison, fermez l'éditeur et recommencez.

Lorsque vous souhaitez utiliser la fonctionnalité de complétion de chemin et que vous avez un fichier /home/ubuntu/my_folder/my_file et que vous modifiez un autre fichier faisant référence au chemin de la précédente:

Entrez le mode d'insertion: insérez ou faites comme vous le souhaitez. Ensuite, écrivez /h . Lorsque le curseur est sous h , appuyez sur Ctrl x , puis sur Ctrl f pour que l'éditeur l'achève vers /home/ car le motif /h est unique

Maintenant, supposons que vous avez deux dossiers dans /home/ubuntu/ appelé my_folder_1 my_folder_2

et vous voulez le chemin /home/ubuntu/my_folder_2

comme d'habitude:

Entrer en mode insertion

écrivez /h et appuyez sur Ctrl x , puis sur Ctrl f . Maintenant, vous avez /home/ Next ajoutez u après / home / et appuyez sur Ctrl x , puis sur Ctrl f . Maintenant, vous avez /home/ubuntu/ parce que ce chemin est unique. Maintenant, écrivez my /home/ubuntu/ et appuyez sur Ctrl x , puis sur Ctrl f . L'éditeur complétera votre mot jusqu'à my_folder_ et vous verrez l'arborescence du répertoire. Utilisez les touches fléchées pour choisir celle que vous voulez.

Activer les numéros de ligne relatifs

Pour supprimer des lignes de texte lorsque vous ne connaissez pas le nombre exact de lignes à supprimer, essayez 10dd , 5dd , 3dd jusqu'à ce que toutes les lignes soient supprimées.

Les numéros de ligne relatifs résolvent ce problème, supposons que nous ayons un fichier contenant:

sometimes, you see a block of 
text. You want to remove 
it but you 
cannot directly get the 
exact number of 
lines to delete 
so you try 
10d , 5d 
3d until 
you
remove all the block.

Entrer en mode NORMAL: Esc

Maintenant, exécutez :set relativenumber . Une fois terminé, le fichier sera affiché comme suit:

3 sometimes, you see a block of
2 text. You want to remove
1 it but you
0 cannot directly get the
1 exact number of
2 lines to delete
3 so you try
4 10d , 5d
5 3d until
6 you
7 remove all the block.

0 est le numéro de ligne de la ligne en cours et indique également le numéro de ligne réel devant le numéro relatif, vous n'avez donc plus besoin d'estimer le nombre de lignes de la ligne en cours pour les couper ou les supprimer par un.

Vous pouvez maintenant exécuter votre commande habituelle comme 6dd et vous êtes sûr du nombre de lignes.

Vous pouvez également utiliser la forme abrégée de la même commande :set rnu pour activer les nombres relatifs et :set nornu pour désactiver les mêmes.

Si vous aussi :set number ou avez :set number déjà le :set number , vous obtiendrez le numéro de ligne de la ligne dans laquelle se trouve le curseur.

3 sometimes, you see a block of 
2 text. You want to remove 
1 it but you 
4 cannot directly get the 
1 exact number of 
2 lines to delete 
3 so you try 
4 10d , 5d 
5 3d until 
6 you 
7 remove all the block. 

Affichage des numéros de ligne

Pour afficher les numéros de ligne de la vue par défaut, entrez

:set number

Pour masquer les numéros de ligne

:set nonumber

Il y a aussi un raccourci pour ci-dessus. nu est identique au number .

:set nonu

Pour masquer les numéros de ligne, nous pouvons également utiliser

:set nu!

Mappages pour quitter le mode Insertion

De nombreux utilisateurs de Vim trouvent la commande Esc trop difficile à atteindre et finissent par trouver une autre carte facile à atteindre depuis la ligne d’accueil. Notez que Ctrl - [ peut être équivalent à Esc sur un clavier anglais et est beaucoup plus facile à atteindre.

j k

inoremap jk <ESC> 

Celui-ci est vraiment facile à déclencher; Il suffit de fracasser vos deux premiers doigts sur la rangée d’accueil en même temps. Il est également difficile de se déclencher accidentellement car "jk" n'apparaît jamais dans aucun mot anglais, et si vous êtes en mode normal, il ne fait rien. Si vous ne tapez pas trop "blackjack", pensez à ajouter également inoremap kj <ESC> pour ne pas avoir à vous soucier de la synchronisation des deux clés.

verrouillage des majuscules

Linux

Sous Linux, vous pouvez utiliser xmodmap pour que Caps Lock fasse la même chose que Esc . Mettez ceci dans un fichier:

!! No clear Lock 
clear lock
!! make caps lock an escape key
keycode 0x42 = Escape

Ensuite, exécutez le xmodmap file . Cela remappe Caps Lock à Esc .

les fenêtres

Sous Windows, vous pouvez utiliser SharpKey ou AutoHotkey .

macOS

Si vous avez macOS 10.12.1 ou ultérieur, vous pouvez remapper Caps Lock sur Escape en utilisant les Préférences Système. Sélectionnez Clavier, accédez à l'onglet Clavier et cliquez sur Modifier les touches.

Préférences du clavier

Comment connaître le répertoire et / ou le chemin du fichier que vous éditez

Pour connaître le chemin du répertoire dans lequel se trouve votre fichier, vous pouvez utiliser:

Esc pour entrer en mode de commande

:pwd

Cela imprimera le chemin du répertoire en bas de l'éditeur, comme ceci

I'm a ninja
~
~
~
~
~
/home/ubuntu/myfolder                                                1,5         All

Maintenant, si vous voulez connaître le nom du fichier que vous éditez par rapport au répertoire de travail de vim, vous pouvez utiliser:

Echap pour entrer en mode de commande CTRL G

I'm a ninja
~
~
~
~
~
"myfile"[Modified][New file] 1 line --100%--                         1,5         All

Enfin, pour obtenir le chemin absolu vers le fichier que vous éditez, utilisez

Esc pour entrer en mode de commande,

1 puis CTRL G

I'm a ninja
~
~
~
~
~
"~/myfolder/myfile"[Modified][New file] 1 line --100%--              1,5         All

Rechercher dans un bloc fonction

Pour rechercher du texte foo dans un bloc {} entourant le curseur, utilisez la commande suivante ( <ESC> - touche d'échappement, <CR> - touche d'accès):

vi{<ESC>/\%Vfoo<CR>

maintenant vous pouvez sauter entre les matchs dans le bloc en appuyant sur n et p . Si l'option hlsearch activée, cela mettra en évidence toutes les correspondances. \%V est une partie de modèle de recherche spéciale, qui indique à vim de rechercher uniquement dans la zone sélectionnée visuellement. Vous pouvez également faire un mappage comme celui-ci:

:vnoremap g/ <ESC>/\%V

Après cela, la commande ci-dessus est raccourcie comme suit:

vi{g/foo<CR>

Une autre astuce utile consiste à imprimer toutes les lignes contenant le motif:

vi{
:'<,'>g/foo/#

La plage '<,'> est insérée automatiquement.

Voir :help range et :help :g .

Copier, déplacer ou supprimer une ligne trouvée

De nombreux utilisateurs se trouvent dans une situation où ils souhaitent simplement copier, déplacer ou supprimer une ligne rapidement et revenir à leur emplacement d'origine.

En général, si vous souhaitez déplacer une ligne contenant le lot mots sous la ligne en cours, vous devez taper quelque chose comme:

/lot<Esc>dd<C-o>p

Mais pour augmenter la productivité, vous pouvez utiliser ce raccourci dans les cas suivants:

" It's recommended to turn on incremental search when doing so
set incsearch

" copy the found line
cnoremap $t <CR>:t''<CR>
" move the found line
cnoremap $m <CR>:m''<CR>
" delete the found line
cnoremap $d <CR>:d<CR>``

Donc, une recherche comme celle-ci:

/lot$m

déplacerait la ligne contenant le lot sous la ligne sur laquelle se trouvait le curseur lorsque vous avez lancé la recherche.

Ecrivez un fichier si vous oubliez `sudo` avant de lancer vim

Cette commande enregistre le fichier ouvert avec les droits sudo

:w !sudo tee % >/dev/null

Vous pouvez également cartographier w!! pour écrire un fichier en tant que root

:cnoremap w!! w !sudo tee % >/dev/null

Recharger automatiquement vimrc lors de la sauvegarde

Pour recharger automatiquement vimrc lors de la sauvegarde, ajoutez ce qui suit à votre vimrc :

if has('autocmd') " ignore this section if your vim does not support autocommands
    augroup reload_vimrc
        autocmd!
        autocmd! BufWritePost $MYVIMRC,$MYGVIMRC nested source %
    augroup END
endif

et puis pour la dernière fois, tapez:

:so $MYVIMRC

La prochaine fois que vous sauvegarderez votre vimrc , il sera automatiquement rechargé.

nested est utile si vous utilisez vim-airline. Le processus de chargement de la compagnie aérienne déclenche des autocommandes, mais comme vous êtes en train d'exécuter une autocommande, elles sont ignorées. nested permet de déclencher des autocommandes imbriquées et permet aux compagnies aériennes de se charger correctement.

Achèvement de la ligne de commande

définir le wildmenu pour activer les suggestions d'achèvement pour la ligne de commande.
Exécuter le suivant

set wildmenu
set wildmode=list:longest,full

Maintenant, si vous dites, onglet de :color ,

Tu auras

256-jungle  Benokai  BlackSea  C64  CandyPaper  Chasing_Logic  ChocolateLiquor  
:color 0x7A69_dark


Modified text is an extract of the original Stack Overflow Documentation
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow