() 안의 텍스트를 이전에 번쩍 인 텍스트로 바꾸는 방법은 무엇입니까?


9

Fnord이전에 텍스트가 사라졌고 커서 B가 줄 위에 있다고 가정 합니다 .

M:mock(Baz)

이전에 구부러진 텍스트로 () 안의 텍스트를 어떻게 변경합니까?

현재 나는 종종 다음을 수행하여 실수를 저지 릅니다.

  • di( 일명 "내부 삭제 ()"
  • Shift + P

그러나 삭제 된 텍스트가 레지스터로 이동하므로 정확한 텍스트가 다시 표시됩니다.

가지고 싶다:

M:mock(Fnord)


1
@Rich 제공되는 질문은 구부러진 단어를 대체하는보다 일반적인 경우를 다룹니다. 나는이 질문이 좀 더 구체적이며 같은 대답을 끌어 내지 않는다고 생각합니다.
k0pernikus

팁 : 0레지스터에는 마지막으로 눌린 텍스트가 포함됩니다. :h quote0
Peter Rincker

1
언급 된 질문의 승인 된 답변과 동일한 아이디어가 여기에 적용될 수 있습니다. 커서를 괄호 안에두고 간단히을 누릅니다 vi)p. 이 답변은 i)텍스트 개체 대신 텍스트 개체를 사용 하는 것과 동일 w합니다.
EvergreenTree

1
@ k0pernikus 나는 우리가 그 의견에 동의하지 않을 것을 두려워합니다. 나에게, 두 질문의 중요한 부분은 그것을 적용하는 데 사용되는 텍스트 객체가 아니라 교체입니다.
Rich

답변:


13

시각적 선택을 사용하여 바꿀 텍스트를 선택한 다음 다음과 같이 붙여 넣을 수 있습니다.

vi(p

vi(Baz를 선택하고 (괄호로 p묶었 기 때문에) Fnord를 붙여 넣습니다.

그러나 이것은 붙여 넣기를 한 후에 Baz를 레지스터에 넣습니다. 원하는 것이 아닐 수도 있습니다.


10

레지스터를 지정하지 않으면 p(또는 P)가 마지막으로 채워진 레지스터를 사용합니다. 이름이 지정되지 않은 레지스터 ""에는 가장 최근에 눌린 텍스트 나 삭제 된 텍스트가 포함되어 "ay있지만 ( 예 :로 다른 레지스터를 지정하지 않은 경우 )이 또한 "0멍크 또는 "1삭제 / 변경에 사용됩니다. 레지스터를 참조하십시오 .

마지막 텍스트가 잘못 표시된 경우을 사용 y하여 0레지스터 에서 붙여 넣을 수 있습니다 "0P. 삭제 된 경우 ( is now )를 사용하여 2레지스터로 액세스 할 수 있습니다 ."2P"1Baz

또는 레지스터가 엉망이되는 것을 피하고 블랙홀 레지스터로"_ 삭제할 수 있습니다 .

"_di(P

3

플러그인 설치가 옵션 인 경우 yankstack.vim을 사용할 수 있습니다 . 그런 다음 현재 워크 플로를 유지할 수 있습니다.

현재 나는 종종 다음을 수행하여 실수를 저지 릅니다.

  • di (일명 "삭제 내부 ()"
  • Shift + P
  • Alt + p-이전 yank로 순환

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