Recherche…


Le fichier vimrc

Le fichier .vimrc (prononcé Vim- .vimrc ) est un fichier de configuration Vim. Il contient des commandes qui seront exécutées par Vim à chaque démarrage.

Par défaut, le fichier est vide ou inexistant; vous pouvez l'utiliser pour personnaliser votre environnement Vim.

Pour savoir où Vim s'attend à ce que le fichier vimrc soit stocké, ouvrez Vim et exécutez:

:echo $MYVIMRC

Unix: sur un système Unix tel que Mac ou Linux, votre vimrc s'appellera .vimrc et se .vimrc généralement dans votre répertoire personnel ( $HOME/.vimrc ).

Windows: sous Windows, il s'appellera _vimrc et se _vimrc dans votre répertoire personnel ( %HOMEPATH%/_vimrc ).

Au démarrage, Vim recherchera un fichier vimrc à plusieurs endroits. Le premier qui existe est utilisé, les autres sont ignorés. Pour une référence complète, consultez l'article de documentation :h $MYVIMRC .

Quelles options puis-je utiliser?

Si vous ne savez pas quelles options utiliser, vous pouvez être intéressé par la commande :options .

Cela ouvrira une division avec toutes les options Vim répertoriées et leur valeur actuelle affichée. Il y a 26 sections pour afficher toutes les options que vous pouvez essayer.

par exemple

4 displaying text

scroll    number of lines to scroll for CTRL-U and CTRL-D
    (local to window)
     set scr=20
scrolloff    number of screen lines to show around the cursor
     set so=5
wrap    long lines wrap
     set nowrap    wrap

...

Sur une ligne de valeur (par exemple, set nowrap ), vous pouvez appuyer sur CR pour changer la valeur (si c'est une valeur binaire). Sur une ligne d'option (par exemple, wrap long line wrap ), vous pouvez appuyer sur CR pour accéder à la documentation de cette option.

Fichiers et répertoires

Quoi que vous fassiez pour personnaliser Vim, il ne devrait JAMAIS arriver en dehors de $HOME :

  • sur Linux, BSD et Cygwin, $HOME est généralement /home/username/ ,
  • sur Mac OS X, $HOME est /Users/username/ ,
  • sous Windows, $HOME est généralement C:\Users\username\ .

L'emplacement canonique de votre vimrc et de votre répertoire vim est à la racine de ce répertoire $HOME :

  • sur les systèmes de type Unix

    $HOME/.vimrc       <-- the file
    $HOME/.vim/        <-- the directory
    
  • sur Windows

    $HOME\_vimrc       <-- the file
    $HOME\vimfiles\    <-- the directory
    

La mise en page ci-dessus est garantie pour fonctionner, maintenant et à l'avenir.

Vim 7.4 a permis de garder votre belle vimrc dans votre répertoire vim . C'est vraiment une bonne idée, ne serait-ce que parce que cela facilite le déplacement de votre configuration.

Si vous utilisez exclusivement 7.4, ce qui suit suffira:

  • sur des systèmes de type Unix

    $HOME/.vim/vimrc
    
  • sur Windows

    $HOME\vimfiles\vimrc
    

Si vous voulez les avantages d'un vim/ autonome mais utilisez à la fois la version 7.4 et une version antérieure, ou seulement une version antérieure, la solution la plus simple et la plus évolutive consiste à placer cette ligne et uniquement cette ligne:

runtime vimrc

dans ce fichier:

  • sur les systèmes de type Unix

    $HOME/.vimrc
    
  • sur Windows

    $HOME\_vimrc
    

et faites votre configuration dans $HOME/.vim/vimrc ou $HOME\vimfiles\vimrc .

Les options

Il existe trois types d’options:

  • options booléennes,
  • options de chaîne,
  • options de nombre.

Pour vérifier la valeur d'une option,

  • utiliser :set option? vérifier la valeur d'une option,
  • utiliser :verbose set option? pour voir aussi où il a été mis en dernier.

Définition des options booléennes

set booloption      " Set booloption.
set nobooloption    " Unset booloption.

set booloption!     " Toggle booloption.

set booloption&     " Reset booloption to its default value.

Définition des options de chaîne

set stroption=baz   " baz

set stroption+=buzz " baz,buzz
set stroption^=fizz " fizz,baz,buzz
set stroption-=baz  " fizz,buzz

set stroption=      " Unset stroption.

set stroption&      " Reset stroption to its default value.

Définition des options numériques

set numoption=1     " 1

set numoption+=2    " 1 + 2 == 3
set numoption-=1    " 3 - 1 == 2
set numoption^=8    " 2 * 8 == 16

Utiliser une expression comme valeur

  • en utilisant la concaténation:

    execute "set stroption=" . my_variable
    
  • en utilisant :let :

    let &stroption = my_variable
    

Voir :help :set et :help :let .

Cartographie

  • Ne mettez pas de commentaires après les mappages, cela va casser des choses.
  • Utilisez :map <F6> pour voir ce qui est mappé sur <F6> et dans quel mode.
  • Utilisez :verbose map <F6> pour voir également où il a été mappé pour la dernière fois.
  • :map et :map! sont trop génériques. Use :n[nore]map pour les mappages en mode normal,: :i[nore]map pour le mode insert :x[nore]map pour le mode visuel, etc.

Mappages récursifs

Utilisez les mappages récursifs uniquement si vous avez l'intention d'utiliser d'autres mappages dans vos mappages:

nnoremap b     B
nmap     <key> db

Dans cet exemple, b est conçu pour fonctionner comme B en mode normal. Puisque nous utilisons b dans un mappage récursif , appuyer sur <key> fonctionnera comme dB , pas comme db .

Mappages non récursifs

Utilisez des mappages non récursifs uniquement si vous avez l'intention d'utiliser des commandes par défaut dans vos mappages, ce qui est presque toujours ce que vous voulez:

nnoremap <key> db

Dans cet exemple, nous utilisons b dans un mappage non récursives de manière à toujours pressant la touche fonctionnera comme db si nous Réaffectés, b ou non.

Exécuter une commande à partir d'un mappage

nnoremap <key> :MyCommand<CR>

Exécution de plusieurs commandes à partir d'un mappage

nnoremap <key> :MyCommand <bar> MyOtherCommand <bar> SomeCommand<CR>

Appeler une fonction à partir d'un mappage

nnoremap <key> :call SomeFunction()<CR>

Mappage d'un mappage <Plug>

map <key> <Plug>name_of_mapping

Voir :help map-commands :help key-notation et :help <plug> .

voir les mappages de touches dans Vim pour en savoir plus

Les variables

Comme la plupart des langages de script, vimscript a des variables.

On peut définir une variable avec la commande: :let :

let variable = value

et le supprimer avec :unlet :

unlet variable

Dans Vim, les variables peuvent être définies en ajoutant une lettre et un deux-points à leur nom. Les auteurs de plug-ins utilisent cette fonctionnalité pour simuler les options:

let g:plugin_variable = 1

Voir :help internal-variables .

Commandes

  • N'oubliez pas le bang pour permettre à Vim d'écraser cette commande la prochaine fois que vous rechargerez votre vimrc.
  • Les commandes personnalisées doivent commencer par un caractère majuscule.

Exemples

command! MyCommand call SomeFunction()
command! MyOtherCommand command | Command | command
  • Voir :help user-commands .

Les fonctions

  • N'oubliez pas le bang pour permettre à Vim d'écraser cette fonction la prochaine fois que vous rechargerez le script où la fonction est définie.
  • Les fonctions personnalisées doivent commencer soit par un caractère majuscule (fonctions globales), soit par s: (fonctions locales de script), soit être précédées du nom associé au plug-in de chargement automatique où elles sont définies (par exemple dans {&rtp}/autoload/foo/bar.vim nous pourrions définir foo#bar#functionname() ).
  • Pour pouvoir utiliser les paramètres de la fonction, utilisez a:parameter_name . Les fonctions variadiques peuvent être définies avec les points de suspension ... , pour accéder aux paramètres, utilisez a:000 (liste de tous les paramètres), ou a:0 (nombre de paramètres égal à len(a:000) ), a:1 paramètres, et ainsi de suite.
  • Les fonctions peuvent être appelées comme :call MyFunction(param1, param2)
  • Chaque ligne d'une fonction commence implicitement par a : toutes les commandes sont donc des deux-points
  • Pour éviter que la fonction continue son exécution en cas d'erreur, il est préférable d'annoter la signature de la fonction avec abort

Exemple

function! MyFunction(foo, bar, ... ) abort
    return a:foo . a:bar . (a:0 > 0 ? a:1 : '')
endfunction

Fonctions de script

Si vous prévoyez d'utiliser uniquement votre fonction dans le fichier où elle est définie (soit parce que vous avez cassé une fonction plus grande dans des parties plus petites, soit parce que vous l'utiliserez dans une commande, un mappage, ...), vous pouvez préfixer avec s: :, en évitant de joncher votre espace de noms global avec des fonctions internes inutiles:

function! s:my_private_function() " note we don't need to capitalize the first letter this time
    echo "Hi!"
endfunction

Utilisation de s: fonctions à partir de mappages

Si votre fonction de script locale doit être utilisée dans un mappage, vous devez la référencer en utilisant le préfixe <SID> spécial:

nnoremap <your-mapping-key> :call <SID>my_private_function()<CR>

Voir :help user-functions .

Notez cependant que depuis Vim 7, il est recommandé de définir des abréviations, des commandes et des menus dans les plug-ins (ft) et de définir des fonctions dans les plug-ins de chargement automatique, à l'exception des fonctions que les plug-ins doivent utiliser lorsqu'ils sont chargés. Cela signifie que, de nos jours, le besoin d'appeler les fonctions locales de scripts à partir de mappages n'est pas aussi pertinent que par le passé.

Groupes de commandes automatiques

  • Les groupes de commandes automatiques sont bons pour l'organisation, mais ils peuvent également être utiles pour le débogage. Considérez-les comme de petits espaces de noms que vous pouvez activer / désactiver à volonté.

Exemple

augroup MyGroup
    " Clear the autocmds of the current group to prevent them from piling
    " up each time you reload your vimrc.
    autocmd!

    " These autocmds are fired after the filetype of a buffer is defined to
    " 'foo'. Don't forget to use 'setlocal' (for options) and '<buffer>'
    " (for mappings) to prevent your settings to leak in other buffers with
    " a different filetype.
    autocmd FileType foo setlocal bar=baz
    autocmd FileType foo nnoremap <buffer> <key> :command<CR>

    " This autocmd calls 'MyFunction()' everytime Vim tries to create/edit
    " a buffer tied to a file in /'path/to/project/**/'.
    autocmd BufNew,BufEnter /path/to/project/**/* call MyFunction()
augroup END

Voir :help autocommand .

Conditionnels

if v:version >= 704
    " Do something if Vim is the right version.
endif

if has('patch666')
    " Do something if Vim has the right patch-level.
endif

if has('feature')
    " Do something if Vim is built with 'feature'.
endif

Voir :help has-patch et :help feature-list .

Options de réglage

Généralement, vous utiliseriez :set pour définir les options à votre convenance dans votre .vimrc . De nombreuses options peuvent être modifiées.

Par exemple, pour utiliser des espaces pour l'indentation:

:set expandtab
:set shiftwidth=4
:set softtabstop=4

Mise en évidence de la syntaxe

Mise en surbrillance de la syntaxe, lorsque le terminal a des couleurs

if &t_Co > 2 || has("gui_running")
    syntax on
end

Afficher les espaces blancs et les onglets. L'affichage des onglets peut être particulièrement utile lors de la recherche d'erreurs dans les Makefiles.

set list listchars=tab:\|_,trail:.
highlight SpecialKey ctermfg=DarkGray

Schémas de couleurs

Vim est livré avec plusieurs combinaisons de couleurs préinstallées. Sous Linux, les schémas de couleurs fournis avec Vim sont stockés dans /usr/share/vim/vim74/colors/ (où 74 correspond à votre numéro de version, sans points); MacVim les stocke dans /Applications/MacVim.app/Contents/Resources/vim/runtime/colors .

Modification des schémas de couleurs

La commande colorscheme change le colorscheme actuel.

Par exemple, pour définir le schéma de couleurs sur "robokai":

:colorscheme robokai

Le schéma de couleurs par défaut est nommé default manière créative, donc, pour y revenir, utilisez

:colorscheme default

Pour afficher tous les schémas de couleurs actuellement installés, tapez :colorscheme suivi d'un espace puis de l' onglet ou de la touche ctrl d .

Installation de schémas de couleurs

Les schémas de couleurs installés par l'utilisateur peuvent être placés dans ~/.vim/colors/ . Une fois qu'un jeu de couleurs est ajouté à ce répertoire, il apparaîtra comme une option pour la commande colorscheme .

Pour trouver de nouveaux schémas de couleurs, il existe des sites tels que vimcolors qui contiennent divers schémas de couleurs. Il existe également des outils comme vim.ink et Vivify pour vous aider à créer vos propres jeux de couleurs, ou vous pouvez les créer à la main.

Basculer la ligne en énumérant

Pour activer - tapez:

:set number ou :set nu .

Pour désactiver - tapez:

:set nonumber ou :set nonu .

Pour activer l'énumération relative à l'emplacement du curseur - tapez:

:set relativenumber .

Pour désactiver l'énumération relative à l'emplacement du curseur - tapez:

:set norelativenumber .

Remarque: Pour modifier si la ligne en cours affiche le numéro de ligne actuel ou 0 , utilisez les commandes :set number et :set nonumber lorsque l'attribut relativenumber est actif.

Plugins

Les plugins Vim sont des addons pouvant être utilisés pour modifier ou améliorer les fonctionnalités de vim.

Il y a une bonne liste de plugins à vimawesome



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