VIM 편집기에 긴 줄이 있다고 가정하십시오 (예 : 300 자 이상). 단어 경계를 대략 80 자로 나누려면 어떻게 여러 줄로 나눌 수 있습니까?
예:
This is a really long line This is a really long line This is a really long line This is a really long line This is a really long line This is a really long line This is a really long line This is a really long line This is a really long line This is a really long line This is a really long line
에
This is a really long line
This is a really long line
This is a really long line
This is a really long line
This is a really long line
This is a ...
답변
Vim은 이것을 매우 쉽게합니다 (단어 경계에서 줄 바꿈).
gq{motion} % format the line that {motion} moves over
{Visual}gq % format the visually selected area
gqq % format the current line
...
난 당신이 체크 아웃 좋을 것 :help gq
하고 :help gw
.
또한 텍스트 너비 ( tw
)를 설정 하면 입력하는 동안 초과하면 자동 줄 바꿈이 제공됩니다. 그것은에 사용 gq
해제 한 경우지만, 너무 gq
가 먼저 발생 창 크기에 휴식 또는 79 따라.
:set tw=80
텍스트 너비를 포함하도록 형식 옵션을 설정하면 vim이 tw 설정에서 자동으로 끊어집니다.
:set fo+=t
답변
먼저 vim을 설정하여 80자를 원하는 것으로 이해하십시오.
:set tw=80
그런 다음 줄을 강조하십시오.
V
vim을 다시 포맷하십시오.
gq
답변
이것은 실제로 VIM과 관련이 없지만 다음 과 같이 fmt 프로그램을 사용할 수 있습니다
$ fmt myfile
답변
실선 텍스트의 경우 일반 모드에서 v를 사용하여 영역을 강조 표시 한 다음
:s/\v(.{80})/\1\r/g
80 번째 문자마다 줄 바꿈이 추가됩니다.
:s/ replaces within the current select
\v uses regular expressions
(.{80}) selects 80 characters & placed them into group one
\1\r replaces group one with group one and a newline
답변
* nix를 fold
사용 중이라면 아마도 사용 가능 했을 것입니다 .
사용하려는 지역을 선택하면 v
다음을 사용하여 너비가 80 인 공백을 끊을 수 있습니다.
!fold --spaces --width=80
이것은 본질적으로를 사용하는 것과 같습니다 gq
.
그러나 문자 80으로 나누고 공백으로 제한하지 않으려면 다음을 사용할 수 있습니다.
!fold --width=80
한 번의 키 입력으로 원한다면 매핑을 설정하십시오.
vmap <f1> !fold --width=80<CR>
답변
이미 존재하는 줄 바꿈을 제거하지 않고 전체 문서에서 긴 줄을 나누려면 다음을 사용하십시오.
:set formatoptions+=w
:set tw=80
gggqG
답변
한 줄이 아닌 전체 파일을 다시 포맷해야했습니다. Wernsey가 지적한 것처럼 ‘fmt’를 사용할 수 있었지만 vim의 다음 시퀀스도 트릭을 수행했습니다 (여러 가지 대답에서 차용).
<ESC>
:setl tw=80 fo=t
1GVGgq