[vim] VIM에서 실제로 하나의 긴 줄을 여러 줄로 나누려면 어떻게해야합니까?

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