Notepad ++ ou Vim Document Wrap ou Text File Wrap

0

Isso vai soar estranho, tenha paciência comigo. Não estou procurando pela quebra automática de palavras, que já sei como alternar.

Existe alguma possibilidade de fazer uma "quebra automática de documentos" ou "quebra automática de texto" no Notepad ++? Exemplo, imagine um arquivo de texto com três linhas longas (número da linha no início):

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

Uma versão "documento finalizado" ficaria assim:

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

O melhor é fazer com que o Notepad ++ faça e desfaça-o automaticamente (semelhante ao Word Wrap toggle). No entanto, também podemos usar uma solução que modifique permanentemente o conteúdo do arquivo - talvez usando uma regex para cortar o excesso de linhas que excedem o número da coluna e colá-las na parte inferior do arquivo.

Também posso experimentar um recurso vim , se houver.

    
por ADTC 06.01.2016 / 07:00

1 resposta

3

Digite o seguinte no seu vimrc e pressione F12 para usar. Pressione u para desfazer as alterações.

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

Isso pressupõe uma largura máxima de 79 caracteres. Para outros valores, altere as ocorrências de 80 e 79 nas funções acima.

    
por 06.01.2016 / 19:09