2009-06-16 5 views
2

J'essaye de mettre en place une cartographie de clé vim qui mappera la clé ';' à A; - c'est-à-dire que je veux ajouter automatiquement ';' à la fin de la ligne. Cependant, j'ai de la difficulté à établir cette cartographie. Je voudrais aussi limiter cela aux fichiers java si possible. Cela peut-il être fait?vim mapping

Merci

Répondre

1

La cartographie elle-même se fait de cette façon:

:map ; A;<esc> 

je recommande de mettre cette ligne dans votre vimrc et vivre avec elle (il ne devrait pas vous déranger, puisque la cartographie ne fonctionne en mode commande). Si vous devez vraiment limiter ce comportement à certains fichiers, vous devez regarder dans la fonction autocmd (:help autocmd)

0

En tant que mise en œuvre rapide, qu'en est-:

map ; $a;cntl-vESC 

puis tapez la touche Retour

Je Je vais penser à activer cela pour les fichiers Java seulement.

4

Si vous souhaitez limiter cette fonctionnalité aux tampons java, consultez ftplugins. La cartographie devient alors:

nnoremap <buffer> ; A;<esc> 

BTW, je déconseillerais la cartographie sur « ; » comme il est une commande très utile qui peut être utilisé dans d'autres applications mal définies (trop de vimmers utilisent :*map au lieu de :*noremap) .

+0

+1. Points importants qui rendent cette réponse meilleure: cartographie uniquement définie pour le mode normal et utilisation de "nore". – user55400

+0

+1 accepté (15chars15chars15chars) – soulmerge

+0

Êtes-vous en train de dire que ':.? Map''ing sur ';'' pourrait déranger les commandes intégrées existantes? –

2

Utilisez ftplugins comme Luc Hermitte dit ou ajouter ce qui suit à votre .vimrc

autocmd filetype java :nnoremap <buffer> ; A;<esc> 
0

Mettre cela dans ~/.vim/après/ftplugin/java.vim

nnoremap <buffer> ; A;<Esc>

Maintenant ce mapping doit être local pour les tampons Java uniquement