programing tip

Vim에서 텍스트를 일정 길이로 줄 바꿈하려면 어떻게해야합니까?

itbloger 2020. 8. 20. 07:57
반응형

Vim에서 텍스트를 일정 길이로 줄 바꿈하려면 어떻게해야합니까?


상대적 측정에 대해 이야기 해 봅시다. 내 Vim은 다음과 같습니다.

aaaaaaaaaaaaa 
bbbbbbbbbbbbb 
ccccccccccccc 
etc

더 작게하고 싶습니다.

aaaaa
aaaaa
bbbbb
bbbbb
ccccc
ccccc
etc

어떻게받을 수 있습니까? 그리고 그러한 블록의 길이 설정을 어떻게 관리 할 수 ​​있습니까?


실제로 다음 두 가지를 수행 할 수 있습니다.

  1. 줄 바꿈을 삽입하여 vim 형식 (iechange)으로 텍스트를 더 짧은 줄로 지정
  2. 줄은 그대로 두되 줄 바꿈 표시

당신은 무엇을 원합니까?

옵션 1은 설정에 의해 달성됩니다 textwidth(예 : :set textwidth=30(Swaarop의 답변에서)). 그런 다음 텍스트를 강조 표시하고 (시각적 모드에서)를 입력하여 텍스트 서식을 변경할 수 있습니다 gq. ( textwidth으로 축약 할 수 tw있으므로 :set tw=30.)

옵션 2는 :set wrap/ 를 실행하여 전환 할 수 있습니다 :set nowrap. 창에 비해 너무 긴 줄을 줄 바꿈합니다.

둘 다 독립적입니다.


'textwidth'를 설정하면 시각적 모드로 텍스트를 선택하고 gq를 눌러 멋지게 포장 할 수 있습니다 (일부 이전 / 레거시 구성에서도 Q를 사용할 수 있음).

몇 가지 유용한 팁 :

gqq (wrap the current line)
gq} (wrap this 'paragraph', i.e. until the next blank line)
:h gq

fold (1) 사용은 한 가지 가능성입니다.

:%!fold -w5 

결과:

aaaaa
aaaaa
aaa 
bbbbb
bbbbb
bbb 
ccccc
ccccc
ccc

:set textwidth=30

특정 길이로 나누고 싶은 공백이없는 텍스트가있는 경우 외부를 사용 fold하거나 직접 작성할 필요가 없습니다 formatexpr.

:%s/\(.\{80\}\)/\1\r/g

80 자에서 모든 줄을 끊습니다.

참고 URL : https://stackoverflow.com/questions/823754/how-can-i-wrap-text-to-some-length-in-vim

반응형