82 votes

Pouvez-vous avoir des liaisons de clé spécifiques à un type de fichier dans Vim?

Dans mon .vimrc le fichier que j'ai une clé de liaison pour les commentaires que d'insérer des doubles barres obliques (//) avant une ligne

" the mappings below are for commenting blocks of text
:map <C-G> :s/^/\/\//<Esc><Esc>
:map <C-T> :s/\/\/// <Esc><Esc>

Cependant, quand je suis en train de modifier des scripts Python je veux changer la à une # signe pour les commentaires

J'ai un Python.vim fichier dans mon .vim/ftdetect le dossier qui a également des paramètres pour tabwidths, etc. Quel est le code pour remplacer les raccourcis clavier si possible, j'ai donc utiliser Python:

" the mappings below are for commenting blocks of text
:map <C-G> :s/^/#/<Esc><Esc>
:map <C-T> :s/#/ <Esc><Esc>

87voto

hammar Points 89293

Vous pouvez utiliser :map <buffer> ... pour créer un mappage local uniquement pour le tampon actif. Cela nécessite que votre Vim ait été compilé avec +localmap .

Ainsi, vous pouvez faire quelque chose comme

 autocmd FileType python map <buffer> <C-G> ...
 

67voto

freitass Points 2488

Le dossier ftdetect est destiné aux scripts de détection de type de fichier. Les plugins Filetype doivent être dans le dossier ftplugin. Le type de fichier doit être inclus dans le nom du fichier sous l’une des trois formes suivantes:

  • .../ftplugin/<filetype>.vim
  • .../ftplugin/<filetype>_foo.vim
  • .../ftplugin/<filetype>/foo.vim

Par exemple, vous pouvez mapper les commentaires pour le type de fichier cpp en plaçant les éléments suivants dans le .../ftplugin/cpp_mine.vim :

 :map <buffer> <C-G> :s/^/\/\//<Esc><Esc>
:map <buffer> <C-T> :s/\/\/// <Esc><Esc>
 

4voto

ticktock Points 108

Btw ... si votre problème principal est de commenter ... vous devriez vérifier le plugin 'nerdcommenter', c'est le moyen le plus rapide de commenter / décommenter votre code dans java / c / c ++ / python / dos_batch_file / etc etc.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X