답변:
명령을 사용하여 줄의 연속 된 공백을 줄 바꿈으로 간단히 바꿀 수 :s/\s\+/\r/g
있습니다. \s\+
평균 하나 이상의 공백 문자, 그리고 \r
볼, 줄 바꿈입니다 :help :substitute
및 :help regexp
자세한 내용은. 다음과 같은 줄에서 명령을 실행하면
foo bar baz
당신은 얻는다 :
foo
bar
baz
이 경우 hlsearch
사용 가능하고 사방 강조 공백 화면을 복잡하게하고 싶지 않아, 당신은 그것을 방지하기 위해 다음과 같은 작은 함수를 작성할 수 있습니다 :
function! SplitLineNicely()
" Save previous value of last search register
let saved_last_search_pattern = @/
" :substitute replaces the content of the search register with the `\s\+`
" pattern highlighting all whitespaces in the file
substitute /\s\+/\r/g
" Restore previous search register
let @/ = saved_last_search_pattern
endfunction
\r
, 참조 :help s/\r
. 리터럴 개행 문자로 대체 할 수 있습니다 <c-v><cr>
. 이 문맥 \n
에서 널 문자는를 참조하십시오 :help s/\n
.
replaces the content of the register
-어느 등록?
vim
의 대체를 사용 하는 것이 작업을 수행하는 더 좋은 방법 중 하나 일 수 있지만 매크로도 사용할 수 있습니다. 커서가 라인 1에 어딘가에 다음 데이터가 있다고 가정하십시오.
1 a b c d e f
~
일반 모드에서 qq시작하면을 통해 매크로 호출 가능 기록을 시작합니다 @q. 이후에 입력 한 내용 qq은 위에서 언급 한 전화를 통해 반복 할 수 있습니다. 우리의 목표는 원활한 반복을 위해 충분히 일반적인 명령을 기록하는 것입니다.
따라서 0커서를 줄의 시작 부분 fspace으로 가져간 다음 커서를 첫 번째 공간으로 이동하도록 입력 할 수 있습니다 . 이를 통해을 입력하면 다음 renter과 같은 결과가 발생합니다.
1 a
2 b c d e f
~
q재사용 가능한 매크로가 반복 될 준비가되었으므로 지금 치는 것이 좋습니다. 다소 임의로, 우리는 줄 바꿈으로 대체하기 위해 4 개의 공백이 남아 있음에 주목합니다. 따라서 타격에 의해, 4@q우리는 반복 q
매크로 4 번 결과 :
1 a
2 b
3 c
4 d
5 e
6 f
~
매크로 설정 방법으로 인해 현재 행에만 영향을 미치며 마지막 데이터 입력 오른쪽에 공백이 없으므로 9000 회 이상 명령을 반복하는 것이 안전했을 것 fspace입니다. 데이터가 개행 문자로 대체되는 것을 방지하여 '정말'실패합니다.
따라서 처음부터 반복하려면
qq0fspacerenterq9001@q
우리의 결과를 제공합니다.
9001
빠른 사용자 이름을 입력을 위해 키보드의 키를 누릅니다.
Vim에서 줄을 나누는 가장 쉬운 방법은 일반 모드 명령입니다 gq
(일반 또는 시각적 모드에서 두 문자를 빠르게 연속해서 입력하십시오).
비주얼 모드에서는 선택한 항목을 분할하고 일반 모드에서는 gq
동작 을 따릅니다 .
예를 들어 gql
한 줄을 현재 설정된 너비로 분할합니다. 현재 설정과 다른 것으로 분할 라인의 폭을 설정하려면, 당신이 사용할 수있는 :set textwidth=n
, 어디 n
당신이 라인, 예를 들어 원하는 문자 수입니다 10
작업을 완료 할 때와 일반 폭 변경 돌아 가기.
Kholidfu 의 Youtube 비디오 에서이 정보를 얻었습니다 . 모션을 사용하여 일반 모드에서 선을 연결하고 분할하는 방법을 보여줍니다.