Sıklıkla tam bir sayfayı kaydırmanın çok yönünü şaşırmış, yarım sayfayı çok fazla buluyorum, ancak çeyrek sayfa doğru. Şu anda sadece ok tuşlarını basılı tutarak yapıyorum.
Sayfanın% 25'ini kolayca aşağı ve yukarı nasıl kaydırabilirim?
Sıklıkla tam bir sayfayı kaydırmanın çok yönünü şaşırmış, yarım sayfayı çok fazla buluyorum, ancak çeyrek sayfa doğru. Şu anda sadece ok tuşlarını basılı tutarak yapıyorum.
Sayfanın% 25'ini kolayca aşağı ve yukarı nasıl kaydırabilirim?
Yanıtlar:
Belki ctrldve ctrluaradığınız şey olabilir. Varsayılan olarak ekranın yarısını taşırlar.
Gönderen :h CTRL-D
:
Pencerede arabellekte aşağı kaydırın. Satır sayısı 'kaydırma' seçeneğinden gelir (varsayılan: yarım ekran).
[Sayım] verilmişse, önce 'kaydırma' seçeneğini [sayım] olarak ayarlayın.
Bu, bir pencerede ilk kez kaydırma yapmak istediğinizde, XXctrldXX'nin pencerenizdeki satır sayısının% 25'i olduğu anlamına gelir . scroll
XX değerine ayarlandığında , ekranın% 25'ini taşımak için ctrldve ctrlutuşlarını kullanabilirsiniz .
Ayrıca, bunun :h scrolling
sizin için ilginç olabileceğini düşünüyorum .
Düzenle
Ve işte size bir işlev ve bazı eşlemeler eklemek için başka bir çözüm .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>
İşlev geçerli pencerenin yüksekliğini alacak ve parametresine göre ekranı yüksekliğin dörtte biri kadar aşağı veya yukarı kaydıracaktır.
Eşleştirmeler işlevi çağırır, ilki yukarı, ikincisi aşağı iner.
Tabii ki, değiştirebilir <up>
ve <down>
size ok tuşları varsayılan davranışını tutmak istiyorsanız diğer bazı tuşlara.
ctrl-E
ve ctrl-Y
eşlemelerde daha mantıklı görünebilir , çünkü a). daha sonra hem 1/2 sayfa hem de 1/4 sayfa kaydırma için ayrı kısayollarınız olur. b). ctrl-U
/ ctrl-D
öğesinin davranışı tutarlıdır ve eşlemeyi daha önce kullanıp kullanmadığınıza bağlı değildir.
let key="^U"
Çift tırnak arasındaki kısmın anahtar kodunu temsil ettiği satıra bakın ctrl+u
. Kopyaladığınız Yani vim Fonksiyon ilk çift tırnak hit üzerinde imleci ci"
tırnak içeriğini değiştirmek ve daha sonra hit ctrl+v
ardından ctrl+u
hat üzerinde aynı etmek let key="^D"
.
let key="^Y"
yerine kullanmak istedim let key="^U"
. 'scroll'
Ayarı etkilemeden aynı davranışı oluşturur .
Sen kullanabilirsiniz ctrleve ctrlyyukarı ve aşağı bir çizgi ile sayfayı taşımak için.
Daha sonra +/-% 25'in taşınmasını istiyorsanız bunu kullanabilirsiniz 20ctrleve bu da sizi 20 satır aşağı taşıyacaktır.
İşte size de benzeyen iyi açıklanmış bir soru: /programming/3458689/how-to-move-screen-without-moving-cursor-in-vim
Ben variated statox o linewraps üzerinde daha tutarlı kayar böylece yaklaşım. Çeyrek adım istiyorsanız, 0,618'i tekrar 0,25 olarak değiştirin.
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>
Tam bir% 25 değil, iyi bir genel yanıt istiyorsanız, bir sayfadaki normal satır sayısını 25'e bölerek ve bazı sistem eşlemeleri ayarlayabilirsiniz. Örneğin, normalde ekranda bir seferde yaklaşık 100 satırınız varsa, bunun% 25'i 25 satırdır, böylece 25 satır hızla yukarı ve aşağı hareket etmek için başkent J ve K gibi bir şey üzerinde bir anahtar eşleme ayarlayabilirsiniz.
noremap J 25j
noremap K 25k
Tüm dosyanın çeyrek işaretine atlamak istiyorsanız normal modda şunu yazın:
25%
noremap J 25j
değeri kodlar, 25
örneğin 100 satır penceresini yatay olarak böldüğünüzde, eşlemeniz yeni pencerelerin% 50'sinde gezinir. İkinci seçeneğiniz hakkında :25%
var olduğunu bilmiyordum ama testlerimden imleci ilk satıra dayanan bir konuma getiriyor gibi görünüyor: 100 satırlık bir tamponum varsa ve% 25 ileriye doğru yazmak istersem :25%
bana getirecek imlecimin nerede olduğu önemli değil. Ayrıca, dokümanda bulamadığım bu özelliği açıklayan yardım konusunu da koyabilir misiniz?
:h N%
:-)