매개변수화된 키 바인딩 만들기

매개변수화된 키 바인딩 만들기

+Ngtsum 에서 sum -Ngt까지 맵을 플롯하고 싶습니다 . 다음과 같은 키 바인딩을 만들 수 있습니다.:tabnext N:tabprev N

nnoremap <buffer> <silent> +1gt :tabnext 1
nnoremap <buffer> <silent> +2gt :tabnext 2
nnoremap <buffer> <silent> +3gt :tabnext 3
nnoremap <buffer> <silent> +4gt :tabnext 4
nnoremap <buffer> <silent> +5gt :tabnext 5
nnoremap <buffer> <silent> +6gt :tabnext 6
...

하지만 내가 더 잘할 수 있을까? (단지 를 입력하는 것보다 훨씬 느리기 때문에 "6 탭 앞으로" 이동하고 싶은 것은 아니지만 Ngt나중에 참고할 수 있도록 이 질문을 하는 것이 자연스러운 것 같습니다.)

좋은 예는 NGline 명령으로 점프하는 것입니다 N. Vim이 내부적으로 이동하려는 각 줄에 별도의 키 바인딩을 추가하는지 의심스럽습니다.

답변1

예, 더 잘할 수 있습니다.

nnoremap <silent> gt @=":tabnext\n"<CR>

그런 다음 6gt6개 탭 등으로 앞으로 이동 합니다. 표현식 레지스터를 사용하는 것은 =숫자 접두어로 맵을 반복할 수 있게 만드는 요령입니다.

참고 사항: Vim 관련 질문을 자신의 질문에 게시하면 더 나은 결과를 얻을 수도 있습니다.. :)

관련 정보