답변:
어쩌면 ctrld및 ctrlu당신이 찾고있는 수 있습니다. 기본적으로 화면의 절반을 이동합니다.
보낸 사람 :h CTRL-D
:
버퍼에서 스크롤 창을 아래쪽으로 내립니다. 줄 수는 '스크롤'옵션에서 나옵니다 (기본값 : 화면 반).
[count]가 지정된 경우 먼저 'scroll'옵션을 [count]로 설정하십시오.
이것은 창에서 처음 스크롤 할 때 수행 할 수있는 것을 의미합니다. XXctrld여기서 XX는 창의 행 수의 25 %입니다. 이 설정으로 scroll
사람 XX 값으로 당신은 사용할 수 있습니다 ctrld및 ctrlu화면의 25 %를 이동합니다.
또한, 나는 그것이 :h scrolling
당신에게 흥미로울 것이라고 생각 합니다.
편집하다
그리고 여기에 추가 할 함수와 매핑이있는 또 다른 솔루션이 있습니다 .vimrc
.
function! ScrollQuarter(move)
let height=winheight(0)
if a:move == 'up'
let key="\<C-Y>"
else
let key="\<C-E>"
endif
execute 'normal! ' . height/4 . key
endfunction
nnoremap <silent> <up> :call ScrollQuarter('up')<CR>
nnoremap <silent> <down> :call ScrollQuarter('down')<CR>
이 함수는 현재 창의 높이를 가져 오며 그에 따라 매개 변수에 따라 높이의 1/4 화면을 위아래로 스크롤합니다.
매핑은 함수를 호출합니다. 첫 번째 함수는 올라가고 두 번째 함수는 내려갑니다.
물론 화살표 키의 기본 동작을 유지하려면 다른 키를 변경 <up>
하거나 <down>
다른 키로 변경할 수 있습니다 .
ctrl-E
과 ctrl-Y
)가 있기 때문에, 매핑에. 그런 다음 1/2 페이지 및 1/4 페이지 스크롤에 대한 별도의 바로 가기가 있습니다. 비). ctrl-U
/ 의 동작 ctrl-D
은 일관되며 이전에 매핑을 사용했는지 여부에 의존하지 않습니다.
let key="^U"
큰 따옴표 사이의 부분은의 키 코드를 나타내는 행을 참조하십시오 ctrl+u
. 복사 한 경우에 따라서 정력의 함수는 첫 번째 큰 따옴표 히트에 커서를 ci"
따옴표의 내용을 수정 한 후 히트 ctrl+v
다음 ctrl+u
라인에 동일로 let key="^D"
.
let key="^Y"
대신 사용 을 의미했다 let key="^U"
. 'scroll'
설정에 영향을 미치지 않으면 서 동일한 동작을 생성합니다 .
당신은 사용할 수 있습니다 ctrle및 ctrly위아래 하나의 선으로 페이지를 이동합니다.
그런 다음 +/- 25 %를 이동하려면 사용할 수 20ctrle있으며 20 줄 아래로 이동합니다.
여기에 또한 좋은는 당신과 비슷한입니다 질문을 설명했다 /programming/3458689/how-to-move-screen-without-moving-cursor-in-vim
나는 statox 접근 방식을 바꿨으므로 라인 랩에서 보다 일관되게 스크롤됩니다. 1/4 단계를 원하면 0.618을 다시 0.25 등으로 변경하십시오.
function! ScrollGolden(move)
let height=winheight(0)
if a:move == 'up'
let prep='L'
" let key="^Y"
let key='gk'
let post='zb'
elseif a:move == 'down'
let prep='H'
" let key="^E"
let key='gj'
let post='zt'
endif
execute 'normal! ' . prep . float2nr(round(height*0.618)) . key . post
endfunction
nnoremap <silent> <BS> :call ScrollGolden('up')<CR>
nnoremap <silent> <Space> :call ScrollGolden('down')<CR>
정확한 일반 답변을 원하고 정확한 25 %가 아닌 경우 페이지의 일반 줄 수를 25로 나눠서 일부 시스템 매핑을 설정할 수 있습니다. 예를 들어 일반적으로 한 번에 화면에 약 100 줄이있는 경우 25 줄이 25 줄이므로 25 줄을 빠르게 위아래로 이동하기 위해 대문자 J 및 K와 같은 것에 키 매핑을 설정할 수 있습니다
noremap J 25j
noremap K 25k
전체 파일의 쿼터 마크로 건너 뛰려면 일반 모드에서 다음을 입력하십시오.
25%
noremap J 25j
합니다. 값 25
을 하드 코딩 하므로 예를 들어 100 줄 창을 가로로 분할하면 매핑이 실제로 새 창의 50 %를 탐색합니다. 두 번째 옵션에 :25%
대해서는 그것이 존재한다는 것을 알지 못했지만 테스트에서 첫 줄을 기준으로 위치에 커서를 놓는 것 같습니다 .100 줄 버퍼가 있고 25 % 앞으로 입력 :25%
하면 타이핑 이 나옵니다. 커서 위치에 상관없이 25 행에서 또한이 기능을 설명하는 도움말 항목을 문서에서 찾을 수 없습니까?