मुझे अक्सर लगता है कि एक पूरा पृष्ठ बहुत अधिक छोटा है, आधा पृष्ठ बहुत अधिक है, लेकिन एक चौथाई पृष्ठ ही सही है। मैं वर्तमान में इसे तीर कुंजी को दबाकर कर रहा हूं।
मैं पृष्ठ का 25% नीचे और ऊपर आसानी से कैसे स्क्रॉल करूं?
मुझे अक्सर लगता है कि एक पूरा पृष्ठ बहुत अधिक छोटा है, आधा पृष्ठ बहुत अधिक है, लेकिन एक चौथाई पृष्ठ ही सही है। मैं वर्तमान में इसे तीर कुंजी को दबाकर कर रहा हूं।
मैं पृष्ठ का 25% नीचे और ऊपर आसानी से कैसे स्क्रॉल करूं?
जवाबों:
हो सकता है ctrldऔर ctrluहो सकता है कि तुम क्या देख रहे हो। डिफ़ॉल्ट रूप से वे स्क्रीन के आधे भाग को हिलाते हैं।
से :h CTRL-D
:
बफर में नीचे की ओर स्क्रॉल विंडो। लाइनों की संख्या 'स्क्रॉल' विकल्प (डिफ़ॉल्ट: आधा स्क्रीन) से आती है।
यदि [गणना] दी गई है, तो पहले 'स्क्रॉल' विकल्प को [गिनती] पर सेट करें।
जिसका अर्थ है कि पहली बार जब आप एक विंडो में स्क्रॉल करना चाहते हैं तो आप कर सकते हैं 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>
फ़ंक्शन को वर्तमान विंडो की ऊंचाई मिलेगी, और इसके पैरामीटर के अनुसार स्क्रीन को एक चौथाई ऊंचाई तक या नीचे स्क्रॉल करेगा।
मैपिंग फ़ंक्शन को कहेंगे, पहला ऊपर जाने के लिए और दूसरा नीचे जाने के लिए।
बेशक, आप बदल सकते हैं <up>
और <down>
कुछ अन्य चाबियाँ करने के लिए आप अपने तीर कुंजी के डिफ़ॉल्ट व्यवहार को रखना चाहते हैं।
ctrl-E
और ctrl-Y
मैपिंग में अधिक समझदारी हो सकती है , क्योंकि a)। फिर आपके पास 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
मैंने स्टैटोक्स दृष्टिकोण को चर दिया, इसलिए यह लाइनव्रेप्स पर अधिक सुसंगत है। यदि आप एक चौथाई चरण चाहते हैं, तो 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 लाइनें होती हैं, ताकि आप अपनी राजधानी J और K जैसी किसी चीज़ की मैपिंग जल्दी से ऊपर और नीचे की 25 पंक्तियों पर कर सकें।
noremap J 25j
noremap K 25k
अगर आपकी इच्छा पूरी फाइल के क्वार्टर मार्क पर कूदने की है तो सामान्य मोड में टाइप करें:
25%
noremap J 25j
मूल्य को हार्डकोड करता है 25
उदाहरण के लिए जब आप क्षैतिज रूप से 100 लाइनों की खिड़की को विभाजित करते हैं तो आपकी मैपिंग वास्तव में 50% नई विंडो नेविगेट करेगी। आपके दूसरे विकल्प के बारे में :25%
मुझे नहीं पता था कि यह अस्तित्व में है लेकिन मेरे परीक्षणों से ऐसा लगता है कि यह कर्सर को पहली पंक्ति के आधार पर स्थिति में रखता है: अगर मेरे पास 100 लाइनें बफर हैं और मैं 25% आगे बढ़ना चाहता हूं तो टाइपिंग :25%
मुझे लाएगा। लाइन 25 पर कोई फर्क नहीं पड़ता कि मेरा कर्सर कहां था। इसके अलावा, क्या आप इस विषय का वर्णन करने में सहायता विषय डाल सकते हैं, जिसे मैं इसे डॉक्स में नहीं पा सकता हूँ?