종종 구성 파일에서 행 블록을 복사하여 붙여 넣은 다음 해당 블록을 약간 변경하고 싶습니다. 붙여 x
넣은 후에 제거하려는 문자를 삭제 한 다음 계속해서 다음 블록을 붙여 넣습니다. 를 제외하고 x
내가 다시 라인의 블록을 다시 복사 할 수 있도록두고는 클립 보드에 문자를 삭제.
삽입 모드로 들어 가지 않고 이것을 수행하는 방법이 있습니까?
종종 구성 파일에서 행 블록을 복사하여 붙여 넣은 다음 해당 블록을 약간 변경하고 싶습니다. 붙여 x
넣은 후에 제거하려는 문자를 삭제 한 다음 계속해서 다음 블록을 붙여 넣습니다. 를 제외하고 x
내가 다시 라인의 블록을 다시 복사 할 수 있도록두고는 클립 보드에 문자를 삭제.
삽입 모드로 들어 가지 않고 이것을 수행하는 방법이 있습니까?
답변:
옵션은 다음과 같습니다.
_
. 예를 들어 줄을 삭제하려면을 입력 "_dd
합니다. 클립 보드에 영향을주지 않고 삭제합니다."ayy
다음을 입력 하고 붙여 넣습니다."ap
"0p
:help registers
처음 3에 대한 자세한 내용을 보려면 실행하십시오.
x
내가 사용 "_x
할까요?
x
것과 같은 모션 삭제를 배우는 것이 좋습니다 . 그런 다음 브레이스 영역 내부 와 같은 작업을 수행 할 수 있습니다 . 일반 모드에서 이는 " 이 브레이스 영역 내부의 모든 것을 블랙홀 로 삭제합니다 "dt)
d2W
"_di{
x
클립 보드에 물건을 넣지 않고 레지스터에 넣습니다 . 어떤 레지스터에 넣을지를 알려주지 않으면 명명되지 않은 레지스터에 넣습니다. 물론 이전 내용을 덮어 씁니다. 대신, 어떤 레지스터를 사용 " REGISTER x
해야하는지 알려주십시오. 여기서 REGISTER는 단일 문자입니다. 그런 다음 동일한 인용 부호 레지스터 접두사를 사용 p하여 해당 레지스터에서 붙여 넣습니다. (참고 : 소문자는 내용을 대체하고 대문자는 추가합니다).
또한 두 개의 특수 레지스터 "0
와가 "1
있습니다. "0
는 가장 최근에 눌린 y텍스트 ( )이며 다른 명령 (예 :)으로 일부 텍스트를 삭제하더라도 그대로 유지됩니다 x. "1
텍스트가 작지 않은 한 (한 줄) 가장 최근에 삭제 된 텍스트입니다. 작은 삭제 된 텍스트가에 들어갑니다 "-
.
마지막으로 Steve Vermeulen이 지적한 것처럼 vim은 블랙홀 레지스터를 지정하여 삭제 된 텍스트를 저장하지 않도록 지시 할 수 있습니다 "_
.
관련 도움말 명령은 :help registers
입니다.
이 :let
명령을 사용하면 명명 된 레지스터를 재정의 할 수 있습니다. vim의 명령 행에서 Control+를 1 R 번 두 번 누르면 레지스터 이름이 레지스터 내용을 명령에 붙여 넣습니다. 그런 다음 붙여 넣은 내용을 수정하고 수정 사항과 함께 레지스터를 저장할 수 있습니다.
예:
"fyy
하면 전체 줄 ( yy
)이 f
레지스터 ( "f
)에 들어갑니다.:let @f='
, 및 Control+ r, Control+를 r다시 입력 한 다음 f"Foo Bar"에 붙여 넣기가 표시되므로 :let @f='Foo Bar
커서가 맨 끝에있는 명령 행이 표시 됩니다.:let @f='foo bar baz
.:let @f='foo bar baz'
를 누르십시오 Enter.이제 f
레지스터 의 내용을 "foo bar baz"로 재정의했습니다 .
:help let
자세한 내용 은 매크로에도 적용됩니다 .
1 Control +를 r사용하면 문자를 입력하는 것처럼 이미 삽입 모드에있을 때 레지스터를 삽입 할 수 있습니다. 이 시퀀스를 사용하여 두 번하는 것은 "텍스트가없는 입력 한 경우로, 문자 그대로 삽입됩니다. 레지스터는 같은 문자가 포함이 다르기 때문에 중요하다 <BS>
." — insert.txt vimdoc,:help i_CTRL-R_CTRL-R
"_
@derobert가 언급 한 블랙홀 레지스터와 관련하여 http://vimcasts.org/episodes/meet-the-yank-register/ 에서 유용한 스크린 캐스트를 찾을 수 있습니다.
Vim은 표준 용어 인 잘라 내기, 복사 및 붙여 넣기 대신 delete, yank 및 put이라는 용어를 사용합니다. 같은 문자로 시작하여 붙여 넣기를 쉽게 교환 할 수 있습니다. yank라는 단어에 익숙해지면 복사와 동의어가됩니다. 그러나 Vim은 '삭제'라는 단어를 사용하는 데 문제가 있습니다. 그러나 Vim의 삭제 작업은 텍스트를 레지스터에 복사 한 다음 문서에서 제거합니다. 즉, Vim의 삭제 작업은 컷처럼 동작합니다.
http://www.vim.org/scripts/script.php?script_id=2703 (2009-2014)
매핑을 제안합니다 gr
.
gr
또는 gr<text object>
시각적으로 선택하지 않고 사용하십시오 . 점 반복은 repeat.vim
Tim Pope 및 visualrepeat.vim
Ingo Karkat 의 플러그인 이 설치 될 때 지원됩니다 .