하루에 한 번 이상 다음과 같은 상황이 발생합니다.
A: This line should also replace line X
...
X: This is line should be replaced
나는 그 일을 효율적으로 수행하지 못한다고 생각합니다.
내가하는 일 :
- A 행으로 이동 : AG
- Yank 라인 A : yy
- X 행 : XG로 이동
- A 행 붙여 넣기 : P
- 이전 줄로 이동 : j
- 이전 줄 삭제 : dd
이것은 라인 X가 이제 기본 레지스터에 있다는 추가적인 단점이 있습니다. A로 교체해야하는 다른 라인을 찾으면 짜증납니다. 추가 레지스터 ( “ayy , “aP )에 양킹하여 붙여 넣으면 이 간단한 작업도 가능합니다. 덜 효율적입니다.
내 질문 :
- 이전에 잡아 당긴 줄을 대체하는 내장 Vim 명령을 놓쳤습니까?
- 그렇지 않은 경우 기본 레지스터에 늘어진 줄을 남기거나 복원하는 내 명령을 어떻게 바인딩 할 수 있습니까?
답변
내가 할 것 :
aG
Y
xG
Vp
당신은 정상 모드를 종료 할 필요가 없습니다,하지만 하지 라인을 가득 차면. 그러나 V"0p
2 단계에서 항상 줄을 잡아 당기는 것을 사용할 수 있습니다 .
답변
Vp
: 줄을 선택하고 홱 잡아 당긴 것을 붙여 넣기
답변
이것은 X 행이 이제 기본 레지스터에 있다는 추가 단점이 있습니다 .A로 대체해야 할 다른 행을 찾으면 짜증납니다.
일반 레지스터에 영향을주지 않고 텍스트를 삭제하려면 블랙홀 레지스터를 사용할 수 있습니다 "_
.
"_dd
답변
사용 Vp
또는 VP
줄 위에 붙여 넣기 를 제안하는 답변을 기반으로 -yank 레지스터의 내용을 변경하지 않기 위해 가장 인체 공학적인 명령은 다음과 같습니다.
VPY
답변
- yy
- j (바꾸려는 줄로 이동)
- Vp (대문자 v 다음에 p가 얀크 된 내용으로 대체 됨)
답변
명령 줄 (Ex) 모드를 사용하고 다음 두 명령을 수행합니다.
:XmA
:Ad
이것은 X 행을 A 바로 아래로 이동 한 다음 A를 삭제하면 해당 행이 위로 이동합니다.
예를 들면
:7m3
:3d
답변
-
첫 번째 줄의 시작으로 이동합니다.
-
y, $– 끝에 줄 바꿈없이 줄 복사
-
대상 라인의 시작으로 이동합니다.
-
-
V, p– 하나의 대상 줄만 교체
-
c, c, Ctrlr, 0, Esc– 원래 양키와 목표 라인을 교체
-
-
다음 타겟 라인의 시작으로 이동합니다.
-
. – 4.2에서 실행 된 명령을 반복합니다.
노트:
-
4.1는 y, $당신이 경우에 때문에 y, y또는 Y당신은 LINEBREAK을 복사합니다, 그리고 Ctrlr, 0실제로 목표 라인 아래 LINEBREAK을 추가합니다.
-
4.2는 V p기술적으로 마지막 작업이 삭제이기 때문에 반복으로 작동하지 않는을 대체 하므로 .줄을 삭제합니다.
-
EX 모드 (명령 줄)에서 ‘현재 줄을 레지스터로 교체’를 실행하는 방법을 아는 사람이 있다면 여러분의 의견을 듣고 싶습니다 (그리고 문서를 어디에서 찾았는지 알고 싶습니다). 4.2보다 빠르거나 줄 바꿈 경고가없는 반복 가능한 EX 명령이있을 수 있습니다.