Vim에서 여러 줄의 편집을 어떻게 반복합니까?
나는 Vim에서 종종 앞에 숫자를 추가하여 명령을 반복 할 수 있다는 것을 알고 있습니다. 예를 들어, 다음을 통해 5 줄을 삭제할 수 있습니다.
5dd
예를 들어 명령을 적용 할 행 범위를 지정할 수도 있습니다.
:10,20s:hello:goodbye:gc
'수직 편집'을 어떻게 수행 할 수 있습니까? 예를 들어 주어진 줄의 모든 줄의 시작 (공백을 건너 뛰면 명령 줄에 Shift-I 다음에 쉼표를 입력하면 얻을 수있는 것)에 특정 기호, 쉼표를 삽입하고 싶습니다. 범위. 이를 어떻게 다운 기간 (down-down-down-down-down-down-down-period)없이 달성 할 수 있습니까?
:10,20s/^/,/
또는 매크로를 사용하여 다음을 기록하십시오.
q a i , ESC j h q
함께 사용 :
@ a
설명 : q a
매크로 등록 기록 시작 a
, q
끝이 기록. 사용할 수 있는 레지스터 a
가 z
있습니다.
Ctrl- v시각 모드를 블록 단위로 입력합니다. 그런 다음 ( hjkl일반적으로 -wise) 이동할 수 있으며 여러 줄에 무언가를 삽입하려면 Shift-를 사용하십시오 i.
따라서 텍스트의 경우 :
abc123abc
def456def
ghi789ghi
당신이 충돌하는 경우 Ctrl- v커서와 함께 1 이상, 명중 j두 개의 열이 내려 가고 두 번, 다음 Shift- i,ESC이 같을 것이다 텍스트 :
abc,123abc
def,456def
ghi,789ghi
(멀티 라인 인서트에는 약간의 지연이 있으며를 누른 후에는 렌더링되지 않습니다 ESC.)
이것이 : norm (al) 명령의 목적입니다 :
: 10,20 정상 I,
이미 '.'을 사용중인 경우 마지막 명령을 많이 반복 하면 이것이 지금까지 가장 편리한 솔루션이라는 것을 알았습니다 . 그것은 당신이 사용하여 시각적 블록의 각 줄에 마지막 명령을 반복 할 수 있습니다
" allow the . to execute once for each line of a visual selection
vnoremap . :normal .<CR>
가장 쉬운 방법은
1) 한 줄의 매크로를 기록하고 'a'라고 부릅니다. 이 경우 한 가지 유형
qa I, ESC jq
2) 매크로를 적용하려는 선 블록을 선택하십시오.
3) 'norm'함수를 사용하여이 행 블록에 대해 매크로 'a'를 실행하십시오.
:'<,'>norm@a
가장 쉬운 방법은 매크로를 기록한 다음 원하는만큼 매크로를 반복하는 것입니다. 예를 들어 모든 줄의 시작 부분에 쉼표를 추가하려면 다음을 입력하십시오.
q a I , ESC j q
5 번 반복하려면
5 @ a
블록 비주얼 모드를 사용 합니다 . 이를 통해 여러 줄에 걸쳐 삽입 / 편집을 수행 할 수 있습니다 (일명 '수직 편집').
이미 답변 한 것처럼 매크로 외에도 쉼표를 다양한 행 (예 : 10 ~ 20 행)에 삽입하는 경우에는 다음과 같이 할 수 있습니다.
:10,20s/\(.*\)/,\1
즉, \ (및 \)와 함께 번호가 매겨진 그룹 일치를 만들고 대체 문자열에서 \ 1을 사용하여 "일치하는 내용으로 바꾸기"라고 말할 수 있습니다.
편집자가 .
운영자에 이미 저장 한 상태에서 다음을 수행하십시오.
- 시각 모드를 사용하여 연산자를 적용 할 텍스트를 선택하십시오.
- 그런 다음 명령을 실행하십시오.
:norm .
참고 URL : https://stackoverflow.com/questions/355907/how-do-i-repeat-an-edit-on-multiple-lines-in-vim
'development' 카테고리의 다른 글
하단 네비게이션보기에서 선택된 탭의 색상 (0) | 2020.07.30 |
---|---|
ggplot2를 사용할 때 지속적으로 유효하지 않은 그래픽 상태 오류 (0) | 2020.07.30 |
MySQL에서 한 테이블의 내용을 동일한 데이터베이스의 다른 테이블에 복사하는 방법은 무엇입니까? (0) | 2020.07.30 |
절차 적 기능과 기능적 차이점을 진정으로 이해 (0) | 2020.07.30 |
통합 된 diff 파일에서 문자 별 차이점을 어떻게 시각화 할 수 있습니까? (0) | 2020.07.30 |