Vim Indentation Automatique avec retour à la ligne
Comment puis-je obtenir vim pour placer le curseur à l'intérieur des accolades de commencer sur une nouvelle ligne, c'est à dire avec | désignant la position du curseur :
class {
|
}
en ce moment avec mes paramètres de il ne cette
class {
|}
J'ai reçu ceci dans ma .fichiers vimrc
ensemble d'indentation automatique shiftwidth=2 tabstop=2 noexpandtab
Fondamentalement, je veux juste comment une IDE serait indenter.
mise à jour:
J'ai trouvé comment faire avec inoremap { {<CR>}<Esc>O
Vous devez vous connecter pour publier un commentaire.
Mettre ceci dans votre .vimrc :
En supposant
autoindent
etsmartindent
sont correctement définies, en tapantCtrl + Return
entre accolades va mettre votre curseur là où vous voulez qu'il soit.imap <C-Return> <CR><CR><C-o>k<C-t>
imap <C-Return> <CR><CR><C-o>k<S-s>
avec<S-s>
de départ d'insertion au bon niveau d'indentation. Aussi, je pense que l'utilisation deinoremap
doit protéger contre les effets secondaires.J'ai trouvé que delimitMate fait exactement ce que vous décrivez et plus (qui est, insérer automatiquement la fin
}
). Notez que vous avez à dire delimitMate pour développer des retours chariot en ajoutantlet delimitMate_expand_cr=1
à votre config.De mon observation, c'est exactement le comportement TextMate et SublimeText.
imap <expr> <CR> pumvisible() ? neocomplcache#smart_close_popup() : '<Plug>delimitMateCR'
et les deux plugins de travailler comme je les veuxdelimitMate
expand_cr_1
n'a pas travaillé récemment. Au lieu de cela, vous pouvez utiliserimap <expr> <CR> pumvisible() ? "\<c-y>" : "<Plug>delimitMateCR"
.J'ai Ubuntu 12.04 et je n'ai pas trouvé
vimrc
fichier dans le répertoire d'accueil. Mondialvimrc
fichier a été dans/etc/vim/vimrc
.Il n'y avait presque rien dans ce fichier. Donc, pour moi, il a travaillé pour ajouter cette 3 lignes à la fin de
/etc/vim/vimrc
Lorsque vous tapez
{
prochaine fois qu'il va être changé par la combinaison{
, Entrez,}
, jusqu'à la fin, Entrez.cindent
etautoindent
va ajouter la quantité requise de l'Onglet.P. S. je ne suis pas bon dans le réglage de vim donc quelques explications peut-être pas très exacte. C'est la façon dont je pense qu'il fonctionne.
autoindent
se réfère à effectuer au cours de la actuel niveau d'indentation sur les lignes suivantes. Pour obtenir de retrait selon la syntaxe, vous devez spécifier un indicateur commesmartindent
oucindent
ainsi.i
puisReturn
, pensez-vous obtenir le comportement que vous voulez?Au bas de la fiche, je suis en utilisant:
Par exemple
Dockerfile
:Si vous voulez garder l'indentation seulement, l'utilisation
# vim: st ai si
J'ai écrit cela dans mon
.vimrc
Le code ci-dessus, vérifiez d'abord si vous utilisez
Enter
faire confirmer une complétion de code, si non il va mettre en retrait le{|}
lorsque vous tapezEnter
. En outre, elle fournit des balises html de retrait automatique.Pour votre problème:
appuyez sur
Enter
et vous obtiendrezappuyez sur
Enter
et vous obtiendrez