여러 줄을 클립 보드의 내용으로 바꾸는 가장 좋은 방법은 무엇입니까?
내가 가진 문제는 내가 한 줄을 잡아 당기고 다른 줄에 붙여 넣을 때 "yank"가 방금 교체 한 줄로 대체된다는 것입니다. 이제 다른 줄을 같은 줄로 바꾸려면 뒤로 돌아가서 다시 잡아 당겨야합니다.
이것을하기위한 더 나은 방법이 있어야합니다.
답변:
내 .vimrc에 다음이 있습니다.
xnoremap p pgvy
(참고 : 이것은 기본 레지스터에서만 작동하지만이 매핑은 기억하기 쉽습니다). 보다 정교한 버전을 작성할 수 있습니다. 또한 P를 사용하여 이전 동작을 얻을 수 있습니다.
vnoremap
) 대신 v를 사용하십시오 . Vim 도움말 파일 version7.txt
은 xmap과 smap이 해당 버전에 나타났습니다.
xnoremap
않고 vnoremap
작품
"0
양크의 내용물이 있어야합니다. 타이핑하는 것은 조금 더 지루하지만 "0p
원하는대로해야합니다.
또는 이전 라인을 앞에 선택하여 교체하지 마십시오. 검색으로 해당 줄을 찾으면 n.
(이니셜 뒤에) 계속해서 p
누른 다음 모두 붙여 넣을 때 필요한만큼 s를 수행하십시오.ndd
n.
Vim으로 옮길 때 제가해야 할 가장 큰 정신적 전환은 그룹 편집을 순차적으로 적용하는 방법을 알아내는 것입니다. 즉, 한 줄에서 여러 번 편집 한 다음 다른 줄에서 동일한 편집 작업을 수행하는 대신 여러 줄에서 첫 번째 편집을 수행 .
한 다음 (큰 효과를 사용 하여) 두 번째 편집을 한 번에 수행합니다. 다른 방법으로 매크로를 사용하면 환상적이기 때문에 도움이 될 수 있지만 "복잡한"변경 사항으로 올바르게 작동하는 데 약간 더 지루할 수 있습니다.
:%s/.../.../gc
유형 명령을 사용 하는 정규식 이 원하는 것에 더 가까울 수 있는 곳처럼 들립니다
5@m
(라는 매크로 m
)
xnoremap p "0p
~ / .vimrc
Vim에서 선택 항목 위에 붙여 넣으면 기본 레지스터가 선택 내용으로 대체됩니다. 선택 영역에 붙여 넣으면 클립 보드 레지스터의 내용이 지워진다면 .vimrc에 다음 줄이있을 가능성이 큽니다.
set clipboard=unnamed
한 가지 옵션은이를 제거하고 명시 적 클립 보드 레지스터를 사용하는 것입니다. "+
또 다른 옵션은 명시 적으로 명명 된 다른 레지스터 (az)를 사용하는 것입니다. 첫 번째 붙여 넣기 후 "c
예를 들어 라인을 다시 잡아 당기고 "cp
거기에서 붙여 넣기 위해 사용 합니다.
복사 / 붙여 넣기를 사용하는 대신 ciw
내부 단어를 변경하는 것과 같은 텍스트 개체 명령을 사용하는 것이 더 좋습니다 . 이 방법은 .
repeat 명령을 사용하여 쉽게 반복 할 수 있다는 장점이 있습니다 .
yiw
내부 단어를 Yank (커서 아래에있는 단어 복사, "first"라고 말함).ciw<C-r>0
"두 번째"를 "첫 번째"(Ctrl-R)로 바꾸십시오..
"third"를 "first"로 바꾸십시오.ciw<C-r>0
내 경우에는 작동하지 않습니다. 쓸모없는 ciw
삽입 모드로 변경됩니다 <C-r>
. 이것에 대한 쉬운 설명이 있습니까? (나는 RStudio에 PUR의 VIM하지만 VIM 키보드 바인딩을 사용하고 있지 않다) 문서 편집기와 함께 할 수 있었다는 것을
<C-r>
는 삽입 모드에서 사용하기위한 것입니다. 삽입 모드를 벗어나지 않고 레지스터에서 붙여 넣는 방식이기 때문입니다. 즉, Vim에서; 나는 RStudio에 익숙하지 않지만 당신이 옳다고 생각하고 그들은이 특정 키 바인딩을 구현하지 않았습니다.