텍스트를 80 열로 재구성 / 강제하는 vim 명령
Vim 80 열 레이아웃 문제set textwidth
와 같이 vim에서 텍스트 너비를 자동으로 설정하는 방법이 있다는 것을 알고 있습니다 . 내가 찾고있는 것은 (indent line 명령) 과 비슷 하지만 80으로 줄 바꿈하는 것입니다. 유스 케이스는 때로는 텍스트 너비로 텍스트를 편집하고 줄을 결합하거나 삭제 / 추가 한 텍스트는 제대로 줄 바꿈되지 않는 경우가 있습니다.=
이상적으로,이 명령은 내가 선택한 줄을 완전히 재구성하고 짧은 줄을 추가하면서 긴 줄을 잘라냅니다. 예를 들면 :
long line is long!
short
명령을 실행 한 후 (랩이 13 열이라고 가정) :
long line is
long! short
이것이 진정한 vim 명령으로 가능하지 않다면, 아마도 입력을 파이프 할 수있는 명령 행 프로그램이 있습니까?
검색 후 나는 더 많은 옵션이있는이 참조를 발견했다 : http://www.cs.swarthmore.edu/help/vim/reformatting.html
textwidth
80 ( :set textwidth=80
)으로 설정 하고 파일의 시작 부분으로 이동 한 후 ( Ctrl- Home또는 으로 수행 가능 gg
)를 입력하십시오 gqG
.
gqG
텍스트를 현재 위치에서 시작하여 파일 끝으로 서식을 지정합니다. 가능하면 연속적인 라인에 자동으로 연결됩니다. 두 줄을 연결하지 않으려면 두 줄 사이에 빈 줄을 둘 수 있습니다.
Michael의 솔루션이 핵심이지만, 현재 단락의 나머지 부분을 다시 포맷하려고합니다. 이 동작에는을 사용하십시오 gq}
.
gq
모든 이동 연산자와 함께 사용할 수 있습니다 . 예를 들어 현재 줄의 끝으로 만 서식을 바꾸려면 (예 : 커서가있는 줄을 줄 바꿈) 다음을 사용할 수 있습니다.gq$
시각 모드에서 텍스트를 선택하고 (`v를 사용하여 이동) gq를 입력하여 다시 포맷 할 수도 있습니다.
줄을 강제로 감는 다른 옵션도 있습니다.
텍스트를 재구성하기 위해 끝까지 기다릴 필요없이 텍스트를 삽입하는 동안 vim이 줄을 줄 바꿈하려면 다음 옵션이 유용합니다.
:set textwidth=80
:set wrapmargin=2
( wrap
및 linebreak
에 의해 추적되지 않으므로 화면에 표시되는 텍스트 만 다시 포맷하고 버퍼의 텍스트는 변경하지 않습니다)
DonaldSmith의 의견 덕분에 textwidth
옵션이 긴 텍스트 줄을 다시 포맷하지 않기 때문에 이것을 찾았습니다 (16 진수 변환을 사용하여 게임을 변환하고있었습니다).
:%!fold -w 60
그것은 전체 파일 (나에게 한 줄)을 길이가 60 줄로 재구성했습니다.
비 Vim 방식을 찾고 있다면 , 항상 UNIX 명령 fmt 및 par가 있습니다.
메모:
- 유니 코드에 대해서는 언급 할 수 없으며 다르게 동작하거나 그렇지 않을 수 있습니다.
- @nelstrom은 이미
par
그의 웹 캐스트에서 사용 을 언급 했습니다.
다음은 두 가지 예를 모두 사용하는 방법입니다.
$ echo -e 'long line is long!\nshort' > 3033423.txt
$ cat 3033423.txt
long line is long!
short
$ fmt -w 13 3033423.txt
long line is
long! short
$ par 13gr 3033423.txt
long line is
long! short
Vim 내부에서 사용하려면 :
:%! fmt -w 13
:%! par 13gr
:formatprg
par 또는 fmt 및 override로 설정할 수도 있습니다 gq
. 자세한 내용은 :help formatprg
Vim 내부에 문의하십시오 .
거의 항상 gq
비주얼 모드에서 사용 합니다. 나는 학생들에게 까다로운 사람들을위한 잡지 인 "Gentlemens 'Quarterly"의 약자라고 말합니다.
참고 URL : https://stackoverflow.com/questions/3033423/vim-command-to-restructure-force-text-to-80-columns
'IT story' 카테고리의 다른 글
jQuery를 사용하여 요소의 제목 속성을 변경하는 방법 (0) | 2020.04.20 |
---|---|
Python 3.0에서 generator.next ()가 표시됩니까? (0) | 2020.04.20 |
iframe을 다시로드 / 새로 고치는 가장 좋은 방법은 무엇입니까? (0) | 2020.04.20 |
클립 : : 오류 : : 누락 요구 사항 유효성 검사기 레일 4 오류 (0) | 2020.04.20 |
문자열이 유효한 HTTP URL인지 확인하는 방법은 무엇입니까? (0) | 2020.04.20 |