Vim에 복사, 삭제 및 붙여 넣기


15

방금 어제 Vim으로 시작하여 복사 및 붙여 넣기를 이해하는 데 문제가 있습니다. 복사하여 시각적 모드로 들어가 강조 표시 한 다음 k니다. 그런 다음 붙여 넣을 줄로 이동하지만 더 자주이 줄에서 일부 텍스트를 삭제할 필요가 없습니다. 나는이 사용 할 xdw. (나의 원본에이 다음 결과를 덮어 쓰지 xdw절단에 보인다). 이 문제를 어떻게 해결합니까?

예를 들어 보려면

$foo = $this->foo->property;
thislineuses($foo);

위의 코드를 사용하여 복사 $this->foo->property한 다음 2 행으로 이동하여 삭제 $foo하고 붙여 넣기 를 원합니다 . 문제는 $foo2 행에서 삭제할 때 대신 대신 붙여 넣는 것입니다 $this->foo->property.

답변:


16

를보십시오 :h copy-move. 기본 yank 또는 delete는 레지스터 (라는 이름의 레지스터 ")로 이동합니다. 붙여 넣기 전에 일부 텍스트를 삭제해야하는 경우 발견 한대로 레지스터 x를 덮어 쓰지 않아야합니다. 다행히도 다른 문자 나 숫자를 사용하여 다른 레지스터의 이름을 지정할 수 있습니다.

  • "ayy(레지스터에 줄을 넣습니다 a)
  • x, dd등 (이름없는 레지스터로 일부 텍스트 삭제, ")
  • "ap(레지스터에서 텍스트 붙여 넣기 a)

9

문제는 단지 일부 text를 일부로 text2바꾸면 된다는 것 text2입니다. 그런 다음 또는 대신 또는 을 text눌러 붙여 넣 습니다 .pPtext2text

일반적인 vim 명령에 대한 빠른 추가 안내서는 http://www.catswhocode.com/blog/100-vim-commands-every-programmer-should-know 입니다 .

즐겨!

편집 : p커서 다음과 커서 P앞에 텍스트 를 붙여 넣습니다 .


이것은 중간 레지스터에 대해 생각할 필요가 없기 때문에 좋습니다. 그냥 작동합니다.
Jon Schoning

7

명명 된 레지스터로 복사하고 "ayw삭제 한 다음 명명 된 레지스터에서 붙여 넣기를 수행 할 수 있습니다 "ap.

그러나 일반적으로 작업 순서를 변경하는 것이 더 쉽습니다. 붙여 넣기를 수행 한 다음 삭제 또는 복사 / 붙여 넣기를 수행하십시오.

또는 블랙홀 레지스터로 삭제할 수 "_d있습니다. 참조 /programming//q/54255/70863를


3

다른 텍스트 값을 보유하는 데 사용할 수있는 다양한 레지스터가 있습니다. 삭제 된 텍스트가있는 곳이 아닌 다른 레지스터에 텍스트를 저장하려면 (예 : x또는을 d w사용하여) 다음을 사용하십시오.

레지스터에 텍스트를 저장하려면 a:

  • 프레스 " a[십중팔구 및 이동 명령 (레지스터에 텍스트를 저장 a)
  • 텍스트를 붙여 넣으려는 곳으로 이동
  • 키를 누릅니다 " a p(레지스터에서 텍스트를 붙여 넣습니다 a)

키보드의 각 문자와 각 숫자에 대한 레지스터를 사용할 수 있습니다. 텍스트를 삭제하면 해당 레지스터가 사용되지 않으므로 세션을 종료하거나 수동으로 다른 내용을 입력 할 때까지 텍스트는 레지스터에 남아 있습니다.


0

당신이 사용하는 경우 전체 라인을 강조 할 필요가 없습니다 v(반대로 V비주얼 모드). 그것이 당신이 요구하는 것이라면.

복사 한 텍스트를 수정하는 것에 대해 이야기하고 있다면 먼저 복사하고 지우기 부분을 사용하십시오.

그리고 복사하려면 원본을 수정 한 다음 붙여 넣으십시오. 그러면 다른 레지스터에 들어갈 수 있습니다. 와 같이 "2y수정 한 다음 다른 곳으로 이동하여"2p .

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.