2013-02-10 2 views
1

J'essaie de faire en sorte que vim plie comme je veux, mais j'ai des problèmes.Comment plier vim à travers des lignes vides (exemple rspec)?

J'utilise des espaces vides dans certains de mes codes de test pour les rendre plus lisibles, et je ne peux pas faire passer vim dans les lignes vides.

Ce que j'ai:

describe 'Troubles' do 

    describe 'Home' do 

    let(:troubles) { be_over} 

    describe 'Pain' do 
     it "shouldn't be this hard" { puts "but it is" } 
    end 
    end 
end 

et veux plier comme:

describe 'Troubles' do 

    describe 'Home' do 
+--- 6 lines: ------------------- 
    end 
end 

De toute façon d'obtenir ce fait?

Voici ma configuration .vim pour plier

set tabstop=2 
set shiftwidth=2 
set expandtab 

set foldmethod=indent 
set foldnestmax=10 
set nofoldable 
set foldlevel=1 

Répondre

3

quelle méthode de pliage utilisez-vous? en utilisant une méthode de pliage tiret fonctionne bien pour moi (bien qu'il se plie 5 lignes depuis que première est une ligne non indenté vide.

set foldmethod=indent 
+0

Merci ou la réponse rapide Eric. En fait, j'ai déjà cet ensemble. J'ai ajouté ma configuration de pliage et d'espacement à la question pour aider à clarifier. –

+1

Je n'ai pas été en mesure de déterminer comment le réparer dans le vimrc, mais j'ai réussi à reproduire le problème et à le réparer au moment de l'exécution. Si je charge ces paramètres dans mon .vimrc je peux reproduire le problème. Si j'ai reproduit le problème et exécutez: set shiftwidth = 2 après que le texte a déjà été entré, cela fonctionne comme prévu mais pas si je le fais: set shiftwidth = 2 avant que le texte ait été entré. De même, si le fichier a été enregistré et rouvert, shiftwidth = 2 dans .vimrc fonctionne et le pli fonctionne comme prévu. – Eric

+0

Eric, vous êtes incroyable! Comme vous l'avez dit, cela a fait l'affaire! –

0

Si vous êtes intéressé à plier pour les fichiers RSpec spécifiquement, voici a little RSpec foldexpr plugin j'ai jeté ensemble sur Il est gros pour ce qu'il fait (~ 150 SLOC), mais il gère le pliage juste comme je l'aime (par exemple, plis subsume trailing newlines après un bloc, ce qui n'était pas exactement votre question, mais assez proche).

Voici un foldcolumn pour votre exemple de code:

- describe 'Troubles' do 
| 
|-  describe 'Home' do 
|| 
||  let(:troubles) { be_over} 
|| 
||-  describe 'Pain' do 
|||  it "shouldn't be this hard" { puts "but it is"} 
|||  end 
||  end 
| end 

et voici ce qu'il ressemblerait plié:

describe 'Troubles' do 

- describe 'Home' ---------------------------------------------------- [4] - 
end 
Questions connexes