방금 어제 Vim으로 시작하여 복사 및 붙여 넣기를 이해하는 데 문제가 있습니다. 복사하여 시각적 모드로 들어가 강조 표시 한 다음 k니다. 그런 다음 붙여 넣을 줄로 이동하지만 더 자주이 줄에서 일부 텍스트를 삭제할 필요가 없습니다. 나는이 사용 할 x
나 dw
. (나의 원본에이 다음 결과를 덮어 쓰지 x
및 dw
절단에 보인다). 이 문제를 어떻게 해결합니까?
예를 들어 보려면
$foo = $this->foo->property;
thislineuses($foo);
위의 코드를 사용하여 복사 $this->foo->property
한 다음 2 행으로 이동하여 삭제 $foo
하고 붙여 넣기 를 원합니다 . 문제는 $foo
2 행에서 삭제할 때 대신 대신 붙여 넣는 것입니다 $this->foo->property
.
답변
를보십시오 :h copy-move
. 기본 yank 또는 delete는 레지스터 (라는 이름의 레지스터 "
)로 이동합니다. 붙여 넣기 전에 일부 텍스트를 삭제해야하는 경우 발견 한대로 레지스터 x를 덮어 쓰지 않아야합니다. 다행히도 다른 문자 나 숫자를 사용하여 다른 레지스터의 이름을 지정할 수 있습니다.
"ayy
(레지스터에 줄을 넣습니다a
)x
,dd
등 (이름없는 레지스터로 일부 텍스트 삭제,"
)"ap
(레지스터에서 텍스트 붙여 넣기a
)
답변
문제는 단지 일부 text
를 일부로 text2
바꾸면 된다는 것 text2
입니다. 그런 다음 또는 대신 또는 을 text
눌러 붙여 넣 습니다 .p
P
text2
text
일반적인 vim 명령에 대한 빠른 추가 안내서는 http://www.catswhocode.com/blog/100-vim-commands-every-programmer-should-know 입니다 .
즐겨!
편집 : p
커서 다음과 커서 P
앞에 텍스트 를 붙여 넣습니다 .
답변
명명 된 레지스터로 복사하고 "ayw
삭제 한 다음 명명 된 레지스터에서 붙여 넣기를 수행 할 수 있습니다 "ap
.
그러나 일반적으로 작업 순서를 변경하는 것이 더 쉽습니다. 붙여 넣기를 수행 한 다음 삭제 또는 복사 / 붙여 넣기를 수행하십시오.
또는 블랙홀 레지스터로 삭제할 수 "_d
있습니다. 참조 /programming//q/54255/70863를
답변
다른 텍스트 값을 보유하는 데 사용할 수있는 다양한 레지스터가 있습니다. 삭제 된 텍스트가있는 곳이 아닌 다른 레지스터에 텍스트를 저장하려면 (예 : x또는을 d w사용하여) 다음을 사용하십시오.
레지스터에 텍스트를 저장하려면 a
:
- 프레스 " a[십중팔구 및 이동 명령 (레지스터에 텍스트를 저장
a
) - 텍스트를 붙여 넣으려는 곳으로 이동
- 키를 누릅니다 " a p(레지스터에서 텍스트를 붙여 넣습니다
a
)
키보드의 각 문자와 각 숫자에 대한 레지스터를 사용할 수 있습니다. 텍스트를 삭제하면 해당 레지스터가 사용되지 않으므로 세션을 종료하거나 수동으로 다른 내용을 입력 할 때까지 텍스트는 레지스터에 남아 있습니다.
답변
당신이 사용하는 경우 전체 라인을 강조 할 필요가 없습니다 v
(반대로 V
비주얼 모드). 그것이 당신이 요구하는 것이라면.
복사 한 텍스트를 수정하는 것에 대해 이야기하고 있다면 먼저 복사하고 지우기 부분을 사용하십시오.
그리고 복사하려면 원본을 수정 한 다음 붙여 넣으십시오. 그러면 다른 레지스터에 들어갈 수 있습니다. 와 같이 "2y
수정 한 다음 다른 곳으로 이동하여"2p
.