레지스터 / 여러 레지스터를 완전히 지우려면 어떻게해야합니까?


16

나는 꽤 자주 사용하는 :registers모든 레지스터의 내용을 표시하는 명령을 (난의 역할을 정확히 어디에, 내가 넣어 잊지 "*, "., "%, 등이있다).

특히 "옵션에 옵션을 설정했기 viminfo때문에 내 레지스터가 vim 세션 (일반적으로 단기적으로 원할 때) 사이에 지속되므로 시간이 지남에 따라 :registers목록이 길어지고 길어지고 더 번거롭고 채워집니다. 정말 오래된 것들로.

지금까지, 나는이 문제를 해결하기 위해 찾은 유일한 방법은 수동으로 편집하는 것입니다 몇 가지 중 내용을 등록하려면 '오래된' ~/.viminfo내가 함께 할 필요가, vim -u NONE따라서 조금 복잡합니다.

모든 레지스터를 지우거나 특정 레지스터를 지우는 더 확실한 방법이 :registers있습니까? 더 이상 목록에 나타나지 않습니까?

답변:


12

요컨대, 레지스터를 완전히 삭제하는 깔끔한 방법은 없습니다 :reg.

와 함께 ~/.viminfo어둡게 하지 않고 실제로 공백으로 설정하여 레지스터를 "소프트 클리어"하는 경향이 있습니다. a예를 들어 레지스터 를 지우려면 레지스터를 빈 문자열 qaq로 설정 a합니다. 마찬가지로, :let @a=''동일합니다.

그런 다음 :reg빈 레지스터와 포함 된 레지스터를 쉽게 식별 할 수 있기 때문에 출력 결과를 보는 것이 여전히 유용합니다. 다른 한편으로, 나는 본질적으로 모든 명명 된 레지스터가 맨 위 행 (매크로) 또는 메인 행 (유용한 붙여 넣기)에 있으며 심지어 약 15 개의 명명 된 레지스터 만 사용했습니다.

있었다 스레드 Vim은 메일 링리스트는 레지스터를 닦아 더 쉬운 방법이 없다고 결론을 내렸다 것을 몇 년.


5

(예를 들어, 레지스터 이름을 제거하고자하는 사람들을 위해 a으로부터) :registers목록이 입니다 지금 할 수있는 방법. 명령을 실행하십시오 :call setreg('a', []).

사용자 @LucHermitte의 StackOverflow에 대한이 질문 에서이 사실을 알았습니다. 그의 답변 은 여러 레지스터를 지우는 방법을 자세히 설명합니다. 이 작업을 매우 쉽게하려면 .vimrc:)


3

이것을 당신의 것으로 넣으십시오 .vimrc:

command! WipeReg for i in range(34,122) | silent! call setreg(nr2char(i), []) | endfor

모든 등록을 지우십시오 :WipeReg

Vim을 시작할 때마다 그렇게하려면 다음을 추가하십시오.

autocmd VimEnter * WipeReg

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