Question

Comment créer un vi - Vim n'utilise jamais d'onglets (conversion d'espaces en onglets, mauvais!), rend la touche de tabulation == 4 espaces et indente automatiquement le code après bouclage. des croisillons comme qu'Emacs fait?

Comment puis-je enregistrer ces paramètres pour ne jamais avoir à les saisir à nouveau?

J'ai vu d'autres questions à ce sujet, mais cela semble toujours un peu différent de ce que je veux.

Était-ce utile?

La solution

Comme cela a été souligné dans quelques réponses ci-dessous, la méthode à privilégier consiste maintenant à NE PAS utiliser smartindent, mais plutôt à utiliser les éléments suivants (dans votre . vimrc ):

filetype plugin indent on
" show existing tab with 4 spaces width
set tabstop=4
" when indenting with '>', use 4 spaces width
set shiftwidth=4
" On pressing tab, insert 4 spaces
set expandtab

Dans votre fichier .vimrc: :

set smartindent
set tabstop=4
set shiftwidth=4
set expandtab

Les fichiers d’aide mettent un peu de temps à s’habituer, mais plus vous lisez, plus Vim obtient:

:help smartindent

Encore mieux, vous pouvez intégrer ces paramètres dans votre source pour la portabilité:

:help auto-setting

Pour voir vos paramètres actuels:

:set all

Comme le graywh a été remplacé dans les commentaires, smartindent a été remplacé par cindent qui "fonctionne plus intelligemment", bien que toujours principalement pour les langues avec une syntaxe de type C:

:help C-indenting

Autres conseils

En rapport, si vous ouvrez un fichier qui utilise à la fois des tabulations et des espaces, en supposant que vous ayez

set expandtab ts=4 sw=4 ai

Vous pouvez remplacer tous les onglets par des espaces dans tout le fichier avec

:%retab

Le meilleur moyen d'obtenir une indentation spécifique à un type de fichier est d'utiliser l'indentation du type de fichier> sur le type dans votre vimrc. Ensuite, vous pouvez spécifier des éléments tels que , par exemple, sans définir de valeur globale pour tous les fichiers en cours d’édition et pour d’autres fichiers non-C. Les syntaxes de type seront également indentées correctement (même lisps) .

Pour avoir des onglets à 4 espaces dans la plupart des fichiers, un caractère de 8 onglets dans Makefiles et une mise en retrait automatique dans divers fichiers, y compris C / C ++, placez-le dans votre fichier ~ / .vimrc :

" Only do this part when compiled with support for autocommands.
if has("autocmd")
    " Use filetype detection and file-based automatic indenting.
    filetype plugin indent on

    " Use actual tab chars in Makefiles.
    autocmd FileType make set tabstop=8 shiftwidth=8 softtabstop=0 noexpandtab
endif

" For everything else, use a tab width of 4 space chars.
set tabstop=4       " The width of a TAB is set to 4.
                    " Still it is a \t. It is just that
                    " Vim will interpret it to be having
                    " a width of 4.
set shiftwidth=4    " Indents will have a width of 4.
set softtabstop=4   " Sets the number of columns for a TAB.
set expandtab       " Expand TABs to spaces.

Sur de nombreux systèmes Linux, comme Ubuntu, le fichier .vimrc n'existe pas par défaut. Il est donc recommandé de le créer au préalable.

N'utilisez pas le fichier .viminfo existant dans le répertoire de base. Il est utilisé à des fins différentes.

Étape 1: accédez à votre répertoire personnel

cd ~

Étape 2: créez le fichier

vim .vimrc

Étape 3: ajoutez la configuration indiquée ci-dessus

filetype plugin indent on
set tabstop=4
set shiftwidth=4
set expandtab

Étape 3: enregistrez le fichier en appuyant sur Maj + ZZ .

La méthode recommandée consiste à utiliser une indentation basée sur un type de fichier et à n’utiliser que smartindent et cindent si cela ne suffit pas.

Ajoutez les éléments suivants à votre fichier .vimrc

set expandtab
set shiftwidth=2
set softtabstop=2
filetype plugin indent on

J'espère que cela aide car c'est une réponse différente.

éditez votre ~ / .vimrc

$ vim ~/.vimrc

ajouter les lignes suivantes:

set tabstop=4
set shiftwidth=4
set softtabstop=4
set expandtab

À partir du Wiki VIM :

:set tabstop=4
:set shiftwidth=4
:set expandtab

L'indentation automatique est basée sur le mode de syntaxe actuel. Je sais que si vous modifiez Foo.java, saisissez un { et appuyez sur Entrée pour mettre en retrait la ligne suivante.

En ce qui concerne les onglets, il existe deux paramètres. Dans Vim, tapez deux points, puis "set tabstop = 4". qui définira les onglets à afficher comme quatre espaces. Appuyez à nouveau sur le colon et tapez " set expandtab " qui va insérer des espaces pour les onglets.

Vous pouvez placer ces paramètres dans un répertoire .vimrc (ou _vimrc sous Windows) de votre répertoire personnel. Vous ne devez donc les saisir qu'une seule fois.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top