[vim] vim 레지스터는 어떻게 사용합니까?

레지스터를 사용하는 하나의 인스턴스 만 CtrlR*클립 보드에서 텍스트를 붙여 넣는 것입니다.

레지스터의 다른 용도는 무엇입니까? 그것들을 사용하는 방법?

VI 레지스터에 대해 알고있는 모든 것 (vi 7.2에 중점을 두자)은 우리와 공유하십시오.



답변

Vim의 레지스터를 사용하면 저장된 텍스트에 대해 동작이나 명령을 실행할 수 있습니다. 레지스터에 액세스하려면 "a명령 앞에 입력하십시오 . 여기서 a레지스터 이름입니다. 현재 줄을 register에 복사하려면 k다음을 입력하십시오.

"kyy

또는 대문자를 사용하여 레지스터에 추가 할 수 있습니다

"Kyy

그런 다음 문서를 이동하여 다음을 사용하여 다른 곳에 붙여 넣을 수 있습니다.

"kp

Linux의 시스템 클립 보드에서 붙여 넣기

"+p

Windows의 시스템 클립 보드 또는 Linux의 “mouse highlight”클립 보드에서 붙여 넣기

"*p

현재 정의 된 모든 레지스터 유형에 액세스하려면

:reg


답변

0레지스터를 발견했을 때 나는 기뻤습니다 . 특정 레지스터에 텍스트를 할당하지 않고 텍스트를 잡아 당기면 0기본 "레지스터 에 저장 될뿐만 아니라 레지스터에 할당됩니다 . 0"레지스터 의 차이점은 0양각 텍스트로만 채워지는 반면 기본 레지스터는 d/ D/ x/ X/ c/ C/ s/ S명령을 사용하여 삭제 된 텍스트로 채워집니다 .

텍스트를 복사하고 삭제하고 복사 한 텍스트로 바꾸려는 경우에 유용합니다. 다음 단계는 예를 보여줍니다.

  • 복사하려는 텍스트를 Yank하십시오 y[motion]-이 텍스트는 저장 "되고 0등록됩니다
  • 바꾸려는 텍스트를 삭제하십시오 d[motion]-이 텍스트는 "레지스터에 저장됩니다
  • 구부러진 텍스트를 "0p

"다음 명령에 레지스터를 사용하는 명령은 어디에 있습니까 ?

마지막 단계에서을 사용하여 기본 레지스터에서 붙여 넣으 p려면 방금 삭제 한 텍스트 (아마 의도하지 않은 텍스트)가 사용됩니다.

참고 p또는 P기본 레지스터에서 붙여 넣습니다. 이에 상응하는 Longhand는 ""p(또는 ""P)이고 "0마지막 yank를 "1보유하고, 마지막 삭제 또는 변경을 보유합니다.

자세한 내용은을 참조하십시오 :help registers.


답변

레지스터에서 가장 좋아하는 부분 중 하나는 매크로로 사용하는 것입니다!

탭으로 구분 된 값 파일을 다음과 같이 처리한다고 가정 해 봅시다.

ID  Df  %Dev    Lambda
1   0   0.000000    0.313682
2   1   0.023113    0.304332
3   1   0.044869    0.295261
4   1   0.065347    0.286460
5   1   0.084623    0.277922
6   1   0.102767    0.269638
7   1   0.119845    0.261601

이제 % Dev 필드 끝에 백분율 기호를 추가해야한다고 결정합니다 (두 번째 줄부터 시작). m다음과 같이 (임의로 선택한) 레지스터 에 간단한 매크로를 만듭니다 .

  1. 누릅니다 : qm: m등록에서 매크로 기록을 시작합니다 .

  2. EE: 3 번째 열의 끝으로 이동하십시오.

  3. a:이 열의 끝에 추가 할 삽입 모드.

  4. %: 추가 할 퍼센트 부호를 입력하십시오.

  5. <ESC>: 명령 모드로 돌아갑니다.

  6. j0: 다음 줄의 시작으로 이동하십시오.

  7. q: 매크로 기록 중지

이제 @m현재 줄에서이 매크로를 실행하도록 입력 하면됩니다. 한층 더 @@반복 해 입력 할 수도 있습니다 100@m! 인생은 꽤 좋아 보인다.

이 시점에서 ” 하지만 대기자는 등록자와 어떤 관계가 있습니까?”

훌륭한 지적입니다. m를 입력 하여 레지스터 내용에 무엇이 있는지 조사해 봅시다 "mp. 그런 다음 다음을 얻습니다.

EEa%<ESC>j0

처음에는 실수로 메모장에서 이진 파일을 연 것처럼 보이지만 두 번째로 보면 매크로의 정확한 문자 시퀀스입니다!

당신은 호기심 많은 사람이므로, 흥미로운 것을하고이 텍스트 줄을 편집 !하여 지루한 것 대신 삽입하십시오 %.

EEa!<ESC>j0

그런 다음 n을 입력하여 이것을 레지스터에 넣습니다 B"nyE. 그런 다음 킥을 위해 …를 n사용하여 데이터 라인 에서 매크로를 실행하십시오 @n.

세상에, A 추가 !

기본적으로 매크로를 실행하는 것은 해당 매크로의 레지스터에서 정확한 키 시퀀스를 누르는 것과 같습니다. 그것이 멋진 등록 트릭이 아니라면 모자를 먹을 것입니다.


답변

다른 유용한 레지스터 :

"*또는 "+-시스템 클립 보드의 내용

"/ -마지막 검색 명령

": -마지막 명령.

vim 매크로를 사용하면 매크로를 기록 할 때 사용되는 키 입력 목록 일 뿐이므로 편집 할 수 있습니다. 따라서 "ap매크로 a 를 작성 하는 데 사용하는 매크로를 텍스트 파일 에 쓰고 편집 한 다음로 레지스터에로드 할 수 있습니다 "ay$. 유용한 매크로를 저장하는 좋은 방법입니다.


답변

블랙홀 레지스터 _ 는 IS /dev/null레지스터.

기본 레지스터를 업데이트하지 않고 단일 문자를 삭제할 수 있도록 vimrc에서 사용합니다.

noremap x "_x

기본 레지스터를 업데이트하지 않고 시각적 모드로 붙여 넣습니다.

vnoremap p "_dP


답변

ex-mode 명령에 레지스터 내용을 붙여 넣으려면를 누르십시오 <C-r><registerletter>.

왜 이것을 사용 하시겠습니까? 검색을하고 긴 문자열을 바꾸고 싶었으므로 시각적 모드에서 선택하고 검색 / 바꾸기 표현식을 입력하기 시작했으며 :%s/[PASTE YANKED PHRASE]//g하루를 보냈습니다.

ex 모드에서 한 단어 만 붙여 넣으려면 ex 모드로 들어가기 전에 커서가 커서에 있는지 확인한 다음 <C-r><C-w>ex 모드에서 단어를 붙여 넣으십시오.


답변

비밀 전문가 레지스터는 표현식 = 레지스터라고 생각합니다. 광고 소재 매핑에 사용할 수 있습니다.

:inoremap  \d The current date <c-r>=system("date")<cr>

위와 같이 시스템과 함께 사용하거나 맞춤형 VimL 기능 등으로부터 응답을 얻을 수 있습니다.

또는 그냥 임시 같은 것들

<c-r>=35+7<cr>