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
빠르고 불쾌하게 다음지도를 사용해보십시오.
map q 080lwbels<CR><ESC>
그것은 말합니다 :
- 줄의 0 번째 위치를 시작하고
- 오른쪽으로 80 번째 문자로 이동
- 다음 단어의 시작으로 이동
- 이전 단어로 돌아가서
- 현재 단어의 끝으로 이동
- 하나의 문자 오른쪽으로 이동
- 해당 문자의 CR을 대체하십시오.
그런 다음 q와 CR을 누르면 단어 경계에서 줄을 덩어리로 나눕니다.
'Programing' 카테고리의 다른 글
IntelliJ IDEA에서 명령 줄 인수를 어떻게 입력합니까? (0) | 2020.06.02 |
---|---|
D는 Java 및 C ++의 확실한 대안입니까? (0) | 2020.06.02 |
Spark 데이터 프레임에 전체 열 내용을 표시하는 방법은 무엇입니까? (0) | 2020.06.02 |
C에서 void 포인터에 대한 포인터 산술 (0) | 2020.06.02 |
VS.NET 2013에서 __vwd / js / artery를 비활성화하려면 어떻게해야합니까? (0) | 2020.06.02 |