문제

마지막 키를 누르면 트리거 된 조치가 반복되도록 .gvimrc의 매핑을 정의하고 싶습니다. 구체적으로, 나는 같은 일을하고 싶습니다

map <SPACE>t :set transparency-=1
map <SPACE>T :set transparency+=1

MacVim의 경우, 그러나 T/T가 유지 될 때 투명성이 계속 감소/증가하기를 원합니다 (우주 바를 계속 누르지 않아도됩니다).

투명성을 조정하는 더 좋은 방법에 대한 제안이 있다면, 또한 감사하겠습니다.

별도로 입력 할 수있는 것이 좋을 것입니다. 20 우주 투명성이 20만큼 감소했습니다. 그러나 내가 시도 할 때 나는 얻는다

E481: No range allowed.

범위 사양을 어떻게 활성화합니까?

정말 감사합니다.

도움이 되었습니까?

해결책

나는 당신의 질문의 첫 부분에 대해서는 확실하지 않지만 20 <Space> 일을 할 수 있으려면 :

:map <space>t :<C-U>exe "set transparency-=".v:count1<CR>
  • 와 함께 <C-U> 입력 할 때 전 사령부에 추가되는 라인 범위를 제거합니다. 20 정상 모드에서.
  • 와 함께 exe '동적'vimscript를 실행합니다.
  • v:count1 마지막 정상 모드 명령에 대한 카운트입니다 (이 예제의 20). 그리고 기본값이 1로 표시된 경우 카운트가 없다면.

추가 정보는 참조하십시오

:h v:count
:h v:count1

업데이트:

당신은 생략 할 수 있습니다 exe 사용 let 대신 형태 set 하나:

:map <space>t :<C-U>let &transparency-=v:count1<CR>

보다 :h :let-&.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top