这听起来可能有点奇怪,请忍耐一下。我不是寻找常规的自动换行,我已经知道如何切换。
在 Notepad++ 中是否有可能进行“文档换行”或“文本换行”?例如,想象一个包含三行长行(行号在开头)的文本文件:
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
“文档包装”版本如下所示:
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
最好的办法是让 Notepad++ 自动执行并撤消该操作(类似于自动换行切换)。但是,我们也可以使用永久修改文件内容的解决方案 - 也许使用正则表达式来剪切超过列数的多余行,然后将其粘贴到文件底部。
如果有的话,我也可以尝试一个vim
功能。
答案1
在您的vimrc,然后按F12使用。u按 撤消更改。
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
假设最大宽度为 79 个字符。如需其他数量,请更改上述函数中的80
和的出现次数。79