2 votes

Reformatage des fichiers vim

SOLVÉ, voir ma réponse. Cependant, je pense que cette question est toujours une bonne occasion d'apprendre pour les autres novices comme moi.

Je travaille donc sur ce projet, mais je le fais à la fois à la maison et au travail.

Le projet est écrit en python .

Le problème que je rencontre est que, au travail, j'utilise notepadd++ sous Windows.

Mes paramètres d'onglet sont les suivants pour notepad++ :

  • tab=4 colonnes, mais
    • n'élargissez PAS la tabulation pour qu'elle soit réellement égale à 4 espaces.

Je m'envoie ensuite les fichiers par courrier électronique et je les télécharge à la maison. Lorsque j'ouvre les fichiers dans vim sur ma boîte Linux, le même nombre d'onglets est présent, mais tous les onglets occupent 8 colonnes, sans être remplacés par des espaces.

Je ne sais pas pourquoi cela se produit, mais existe-t-il une commande que je peux utiliser pour reformater les fichiers en fonction de mon .vimrc ?

gg=G fonctionne en quelque sorte mais ne fait pas tout à fait l'affaire

Mes paramètres sont les suivants :

"se t_Co=256   
syntax enable

set mouse=a  
set tabstop=4  
set softtabstop=4  
set shiftwidth=4   
"set expandtab     
set number   
set showcmd   
set cursorline     
set showmatch    

execute pathogen#infect()    
filetype plugin indent on

"folding settings  
set foldmethod=indent         
set foldnestmax=10           
set nofoldenable              
set foldlevel=1               

EDIT: Quoi qu'il fasse sous le capot pour essayer de le convertir, il semble qu'il ne le fasse pas de manière récursive ou autre. C'est difficile à expliquer, alors laissez-moi vous donner quelques captures d'écran.

Voici une partie d'un fichier que je viens d'ouvrir dans vim, sans modification : enter image description here

Vous pouvez voir que les onglets ont 8 colonnes alors qu'ils devraient en avoir 4.

Maintenant, je tape gg=G pour "fixer" l'indentation. enter image description here Pour la première méthode/première déclaration dans cette méthode, cela a fonctionné comme prévu. Mais toutes les déclarations qui suivent sont laissées de côté

C'est aussi seulement la première MÉTHODE qui est corrigée, mais pour toutes les autres instructions complètes (boucle for, blocs try etc.), ce schéma de la première ligne corrigée, mais rien d'autre n'est corrigé se produit, c'est comme si l'algorithme n'était pas récurrent. (ou récurrent, peu importe)

1voto

John1024 Points 15663

Pour que les onglets aient 4 colonnes dans vim, utilisez :

set shiftwidth=4 tabstop=4

Si, plus spécifiquement, vous ne souhaitez utiliser ces paramètres d'onglet que lors de l'édition de fichiers Python, ajoutez ce qui suit dans votre ~/.vimrc :

autocmd BufNewFile,BufRead *.py set tabstop=4 shiftwidth=4

0voto

Luke Points 345

J'ai trouvé la solution, comme certains d'entre vous l'ont suggéré, il ne capturait pas la source correcte, je pense que c'est parce que c'est un fichier DOS. réparé en tapant :

:source ~/.vimrc 

à la ligne de commande ed

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X