2009-07-07 7 views
3

Je suis un utilisateur de longue date-vim et j'ai récemment découvert qu'emacs a le mode viper, offrant le meilleur des deux mondes (au moins pour moi). Cependant, une chose me dérange vraiment puisque je code principalement en python et le mixage des onglets et des espaces est un gros problème.Insérer des espaces à la place de TAB dans Emacs viper-mode

En mode insertion, je voudrais insérer des espaces viper-shift-width au lieu de TAB lorsque j'appuie sur TAB. Comment puis-je faire ceci? Je suppose que la simple fonction/réglage de LISP est la solution.

Je n'ai rien trouvé dans les paramètres de mode viper qui pourrait faire cela.

Edit:

Je (setq-default indent-tabs-mode nil) dans mes emacs, mais cela ne fonctionne pas quand je suis en mode d'insertion (dans vim meaing du mode d'insertion) dans viper mode

Répondre

6

Tout d'abord, vous devez vous assurer de la valeur par défaut de 'indent-tabs-mode est nil, comme ceci:

(setq-default indent-tabs-mode nil) 

Puis, en viper-mode, il dépend aussi de votre viper-expert-level. Au niveau 1 ou 2, TAB semble être lié à 'self-insert-command via la carte de mode viper-insert-diehard-minor-mode (qui est activée lorsque le niveau expert est 1 ou 2). Je suppose qu'il essaie de fournir une compatibilité vi maximale, ce qui signifie que vous sacrifiez certaines fonctionnalités d'Emacs, y compris l'utilisation de quelques personnalisations assez basiques.

Alors ... vous pouvez votre niveau d'experts à 3 ou plus:

(setq viper-expert-level 5)  ; really, why use anything less? 

Si vous voulez vraiment le niveau 1 ou 2, mais que vous voulez TAB pour ne pas être une auto commande insertion, puis l'ajouter à votre fichier .viper:

(define-key viper-insert-diehard-map (kbd "TAB") 'viper-insert-tab) 

qui fait l'affaire pour moi, même au niveau 1.

0

indent-tabs -mode peut-être? Que se passe-t-il si vous le définissez à zéro ou si vous le désactivez? Une fois que vous êtes en mode vipère, essayez M-x à propos, puis recherchez l'espace ou l'onglet ou indentation.

Questions connexes