vim에서 강조 모드를 사용하여 일부 문자를 복사합니다. 그러면 한 번 이상 붙여넣고 싶습니다. 현재 기술이 잘 작동하지 않습니다.
예시 텍스트:Linux Solaris Irix HP-UX
단어를 복사한 다음 and Linux
에 붙여넣고 싶다고 가정해 보겠습니다 .Solaris
Irix
- 커서를
L
다음에 놓으세요.Linux
- 명령
v
(시각적 hilite용), thene
(단어 끝의 경우), theny
(복사/복사용) - 이제
Linux
내 "vim 클립보드"에 S
커서를 inSolaris
(첫 번째 인스턴스) 으로 이동합니다 .- 명령
v
(시각적 하이라이트의 경우), thene
(단어 끝의 경우), thenp
(붙여넣기의 경우) - 텍스트는 이제:
Linux Linux Irix HP-UX
이지만 이제Solaris
내 "vim 클립보드"에 있습니다. I
inIrix
(두 번째 인스턴스) 으로 커서 이동- 명령
v
(시각적 하이라이트의 경우), thene
(단어 끝의 경우), thenp
(붙여넣기의 경우) - 지금 문자 보내세요:
Linux Linux Solaris HP-UX
이건 제가 예상한 것이 아닙니다.
저는 마우스(X 터미널을 통해)를 통해 하이라이트/붙여넣기를 사용합니다. 물론, 나는 더 잘할 수 있다. 어떻게?
답변1
나는 이렇게 할 것입니다. (많은 붙여넣기에 정말 효과적입니다.)
- 단어의 어딘가로 이동하여
Linux
해당 "ayiw단어를 복사하세요.- "a레지스터 "a"를 선택하십시오.
- y복사용
- i"in"(단어, 단락...)에 있음을 지정합니다.
- w단어를 선택하세요
- 다음 단어 w(또는 단어의 특정 위치)에 도달
- 시간별로 붙여넣고 매크로로 저장하세요qbdiw"aPq
- qb레지스터 "b"에서 매크로 기록 시작
- d삭제를 위해
- i"in"(단어, 단락...)에 있음을 지정합니다.
- w단어를 선택하세요
- "a레지스터 "a" 선택(이전에 저장됨)
- P커서 앞에 단어 붙여넣기
- q매크로 기록 중지
- 그런 다음 처음으로 매크로를 사용하려면 다음 단어로 이동 w하여@b
- 마지막으로 이 방법의 장점을 볼 수 있는 곳입니다. 바꾸고 싶은 단어를 각각 찾아서 누르세요.@@
힌트:문장 부호가 있는 단어를 선택 하려면 wby로 바꾸세요 (예:Wqbdiw"aPqHP-UX
질문:단어가 줄의 마지막 단어이면 단어 앞의 공백이 제거됩니다.
답변2
이 기능이 너무 자주 필요해서 이를 단순화하고 최대 속도를 허용하는 플러그인을 작성했습니다.레지스터로 교체.
플러그인은 gr
{모션}/텍스트 개체, 전체 줄 또는 현재 선택 항목에 포함된 텍스트를 레지스터의 내용으로 대체하는 2-in-1 명령을 제공합니다. 이전 텍스트는 블랙홀 레지스터에서 삭제됩니다. 즉, 사라진다. 많은 엣지 케이스를 투명하게 처리하고 .
표준 명령을 통해 빠른 반복을 허용합니다. 마음에 들지 않으면 해당 페이지에 대안에 대한 링크가 있습니다.
답변3
답변4
"0p
시각적 모드로 붙여넣을 때 이 점을 고려할 수 있습니다.
참조번호:help v_p
Move to L in Linux
ye # Yank to end of word.
w # Move to next word.
<C>ve # Highlight Solaris.
"0p # Paste Linux, Solaris ends up in unnamed register and Linux in 0
w # Move to next word.
<C>ve # Mark next word. (Or anywhere else)
"0p # Paste Linux.
또는 이 정확한 예에서는 다음과 같이 할 수도 있습니다.
L
리눅스를 타깃으로
yww<C>v2f 2p
# Or
yww<C>v2el2p
yw # Yank Linux
w # Move to S in Solaris
<C>v2el # Enter visual mode, highlight two * end, and l to consume space.
2p # Paste Linux twice.
'<C>v2f ' # Alternative to <C>v2el