Habillage de document ou de fichier texte Notepad ++ ou Vim

0

Cela va paraître bizarre, supporte-moi. Je ne cherche pas le mot classique, que je sais déjà alterner.

Existe-t-il une possibilité d'effectuer un "retour à la ligne" ou un "retour à la ligne" dans Notepad ++? Exemple, imaginons un fichier texte avec trois longues lignes (numéro de ligne au début):

1 A 111111111 222222222 333333333 444444444 555555555 666666666 777777777 888888888 999999999 000000000 aaaaaaaaa bbbbbbbbb ccccccccc ddddddddd eeeeeeeee fffffffff ggggggggg hhhhhhhhh iiiiiiiii jjjjjjjjj kkkkkkkkk
2 B 111111111 222222222 333333333 444444444 555555555 666666666 777777777 888888888 999999999 000000000 aaaaaaaaa bbbbbbbbb ccccccccc ddddddddd eeeeeeeee fffffffff ggggggggg hhhhhhhhh iiiiiiiii jjjjjjjjj kkkkkkkkk
3 C 111111111 222222222 333333333 444444444 555555555 666666666 777777777 888888888 999999999 000000000 aaaaaaaaa bbbbbbbbb ccccccccc ddddddddd eeeeeeeee fffffffff ggggggggg hhhhhhhhh iiiiiiiii jjjjjjjjj kkkkkkkkk

Une version "documentée" ressemblerait à ceci:

1 A 111111111 222222222 333333333 444444444 555555555 666666666 777777777 8888
2 B 111111111 222222222 333333333 444444444 555555555 666666666 777777777 8888
3 C 111111111 222222222 333333333 444444444 555555555 666666666 777777777 8888
<wrapped>
1 88888 999999999 000000000 aaaaaaaaa bbbbbbbbb ccccccccc ddddddddd eeeeeeeee 
2 88888 999999999 000000000 aaaaaaaaa bbbbbbbbb ccccccccc ddddddddd eeeeeeeee 
3 88888 999999999 000000000 aaaaaaaaa bbbbbbbbb ccccccccc ddddddddd eeeeeeeee 
<wrapped>
1 fffffffff ggggggggg hhhhhhhhh iiiiiiiii jjjjjjjjj kkkkkkkkk
2 fffffffff ggggggggg hhhhhhhhh iiiiiiiii jjjjjjjjj kkkkkkkkk
3 fffffffff ggggggggg hhhhhhhhh iiiiiiiii jjjjjjjjj kkkkkkkkk

Le mieux est d’avoir Notepad ++ automatiquement et annulez-le (semblable à la bascule Word Wrap). Cependant, nous pouvons également utiliser une solution qui modifie en permanence le contenu du fichier - en utilisant éventuellement une expression rationnelle pour couper l'excédent de lignes dépassant un numéro de colonne et les coller au bas du fichier.

Je peux aussi essayer une vimfonctionnalité, le cas échéant.

ADTC
la source
2
Je ne pense pas qu'il existe un moyen direct de le faire. Mais les deux éditeurs ont des capacités de script.
Ouroborus

Réponses:

3

Entrez les informations suivantes dans votre vimrc , puis appuyez sur F12pour utiliser. Appuyez sur upour annuler les modifications.

nmap <F12> :call FileWrapOuter()<CR>

function! FileWrapOuter()
    while FileWrap()
    endwhile
endfunction

function! FileWrap()
    " Go to end of file and set mark 'a'.
    norm G
    norm ma
    let w:madeChange = 0
    " Call FileWrapInner() for each long line.
    :%g/.\{80\}/call FileWrapInner()
    if w:madeChange
        " Return to mark 'a' and add <wrapped>.
        norm 'a
        norm o<wrapped>
        return 1
    endif
    return 0
endfunction

function! FileWrapInner()
    " Copy current line into 't' buffer.
    norm "tyy
    " Delete anything in line after 79th character.
    norm 0
    norm 79l
    norm d$
    " Paste 't' buffer at end of file.
    norm G
    norm "tp
    " Delete first 79 characters.
    norm 0
    norm 79x
    let w:madeChange = 1
endfunction

Cela suppose une largeur maximale de 79 caractères. Pour les autres montants, modifiez les occurrences de 80et 79dans les fonctions ci-dessus.

Jim K
la source