Vous pouvez remapper Accueil être le même que ^ (les docs disent Accueil « s fonction par défaut est équivalent à la commande de mouvement |):
:map <Home>^
:imap <Home> <Esc>^i
qui devrait être le mappage du mode d'insertion équivalent à échapper du mode d'insertion , en appuyant sur ^, puis revenez en mode insertion. Je ne connais pas la meilleure méthode de mappage d'une commande de mouvement pour l'utiliser en mode insertion, donc cela peut casser quelque chose, mais cela semble fonctionner. En ce qui concerne vos paramètres d'indentation, ils ne devraient pas avoir d'effet sur les contrôles de mouvement, mais je pense aussi que vous préféreriez probablement les régler différemment. autoindent garde juste votre indentation courante pour les nouvelles lignes (donc si vous placez 4 espaces au début d'une ligne, après avoir appuyé sur retour, votre nouvelle ligne aura aussi 4 espaces placés devant). Je ne sais pas pourquoi vous ne le voudriez pas, car c'est très utile dans presque tous les langages de programmation, ou même simplement en format libre. D'autre part, smartindent implémente deux règles d'indentation C-ish légèrement codées en dur, comme indenter après une ouverture {, et désindenser après une fermeture}, mais ne transfère pas automatiquement l'indentation des lignes précédentes. Les docs recommandent de garder l'index automatique si vous utilisez smartindent.Smartindent est inutile pour les langages qui ne respectent pas ses règles codées en dur, ou qui sont activement nuisibles (comme quand il supprime automatiquement l'indentation de toute ligne commençant par un '#', qu'il pense être une directive de préprocesseur mais est faux pour les programmeurs python qui essaient d'écrire un commentaire en retrait). Par conséquent, vim inclut également un mode d'indentation plus avancé, l'indentation des types de fichiers, qui autorise des règles d'indentation flexibles par langue/type de fichier et constitue le mode d'indentation préféré pour la plupart des gens (même pour les langages C). Si vous utilisez l'indentation de type de fichier, il est préférable de désactiver smartindent (sinon, il peut interférer avec l'indentation de type de fichier, comme le déplacement de toutes les lignes de commentaire vers la colonne 0 dans les fichiers python).
Personnellement, je suis toujours autoindent sur, utilisez le type de fichier lorsque disponible, et n'utilisez jamais smartindent. Mon Vimrc comprend:
set autoindent " doesn't interfere with filetype indents, and is useful for text
if has("autocmd")
" Enable file type detection and indentation
filetype plugin indent on
set nosmartindent
endif
J'imagine qu'il ya quelque chose que vous pouvez faire pour avoir smartindent activé que lorsque filetype n'existe pas indenter pour un type de fichier, si vous éditez que de nombreux langages de type C sans Indentation de type de fichier disponible.
Donc, aucun moyen de le faire en mode insertion? Je suppose que je devrais m'habituer à échanger entre les deux. – Reid
Je ne pense pas qu'il y ait un moyen; Je n'utilise pas du tout le mouvement du curseur en mode insertion. Cet article pourrait être utile: http://www.viemu.com/a-why-vi-vim.html –
@Reid - Vous pourriez probablement le mapper d'une manière ou d'une autre (voir ci-dessous) - mais tout mouvement devrait vraiment être fait en mode N, pas I. – Rook