স্ক্রিনের এক চতুর্থাংশ (25%) উপরে বা নীচে স্ক্রোল করুন


15

আমি প্রায়শই একটি সম্পূর্ণ পৃষ্ঠাটিকে খুব বিঘ্নজনক বলে মনে করি, অর্ধেক পৃষ্ঠা খুব বেশি, তবে একটি চতুর্থাংশ পৃষ্ঠা ঠিক সঠিক। আমি বর্তমানে এটি কেবল তীর কীগুলি ধরে রেখেই করছি।

আমি কীভাবে পৃষ্ঠার 25% নীচে এবং সহজে স্ক্রোল করব?


1
এই উত্তরে ক্রস আউট ফাংশনটি পরীক্ষা করুন: stackoverflow.com/a/3102890
সন্দীপ

উত্তর:


20

হতে পারে ctrldএবং ctrluআপনি যা খুঁজছেন তা হতে পারে। ডিফল্টরূপে তারা পর্দার অর্ধেক স্থানান্তর করে।

থেকে :h CTRL-D:

বাফারে উইন্ডোটি নীচের দিকে স্ক্রোল করুন। লাইনের সংখ্যা 'স্ক্রোল' বিকল্প থেকে আসে (ডিফল্ট: অর্ধেক পর্দা)।

যদি [গণনা] দেওয়া হয়, প্রথমে [কাউন্ট] এ 'স্ক্রোল' বিকল্পটি সেট করুন।

যার অর্থ হ'ল প্রথমবার আপনি যখন উইন্ডোতে স্ক্রোল করতে চান আপনি করতে পারেন XXctrldযেখানে আপনার উইন্ডোতে লাইন সংখ্যা 25% হয় XX এটি scrollXX মান হিসাবে সেট করে আপনি তারপরে স্ক্রিনের 25% ব্যবহার ctrldএবং ctrluস্থানান্তর করতে পারবেন ।

এছাড়াও, আমি মনে করি এটি :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>কিছু অন্যান্য কীতেও করতে পারেন।


2
দেখে মনে হচ্ছে এটি ব্যবহার ctrl-Eএবং ctrl-Yম্যাপিংগুলিতে আরও বুদ্ধিমান হতে পারে , কারণ ক)। তারপরে আপনার 1/2 পৃষ্ঠা এবং 1/4 পৃষ্ঠা স্ক্রোলিং উভয়ের জন্য পৃথক শর্টকাট রয়েছে। খ)। ctrl-U/ এর আচরণটি ctrl-Dসামঞ্জস্যপূর্ণ এবং আপনি ম্যাপিং এর আগে ব্যবহার করেছেন কিনা তার উপর নির্ভর করে না।
ধনী

আমি আপনার গুরুত্বপূর্ণ নোট বুঝতে পারি না। ম্যানুয়ালি প্রবেশ করানোর অর্থ কী? বর্তমানে এটি ব্যবহার করে পৃষ্ঠা সরানোর পরিবর্তে একটি লাইন মুছে ফেলা হয়।
লুই হংক

@LouisHong লাইন দেখুন let key="^U"ডাবল উদ্ধৃতি মধ্যে অংশ চাবি কোড প্রতিনিধিত্ব বোঝানো হয় ctrl+u। তাই আপনি যদি কপি তেজ ফাংশন প্রথম ডাবল উদ্ধৃতি হিট উপর আপনার কার্সার করা ci"কোট বিষয়বস্তু পরিবর্তন করতে এবং তারপর আঘাত ctrl+vদ্বারা অনুসরণ ctrl+uলাইনে একই let key="^D"
স্ট্যাটক্স

@ ধনী: হ্যাঁ এটি একটি ভাল বিষয়। আমি তীর কীগুলি ব্যবহার করেছি কারণ ওপি বলেছিল যে সে ব্যবহার করেছে তবে আপনার বক্তব্য প্রাসঙ্গিক।
স্ট্যাটাক্স

@ স্ট্যাটক্স আপনি আমাকে ভুল বুঝেছেন! (আমি পরিষ্কার ছিল না)। আমি let key="^Y"পরিবর্তে ব্যবহার বোঝাতে চাই let key="^U"। এটি একই আচরণ তৈরি করবে কিন্তু 'scroll'সেটিংসকে প্রভাবিত না করে।
ধনী

3

আপনি পৃষ্ঠাটি এক লাইন উপরে এবং নীচে সরানোর জন্য ctrleএবং ব্যবহার করতে পারেন ctrly

তারপরে আপনি যদি +/- 25% সরানো চান তবে আপনি ব্যবহার করতে পারবেন 20ctrleএবং এটি আপনাকে 20 লাইন নিচে নামিয়ে দেবে।

এখানেও একটি ভাল ব্যাখ্যা করা প্রশ্ন যা আপনার কাছে সমান: /programming/3458689/how-to-move-screen-without-moving-cursor-in-vim


3

আমি স্টাটক্স পদ্ধতির পরিবর্তিত হয়েছি তাই এটি লাইনর্যাপগুলির উপর আরও সুসংগতভাবে স্ক্রল করে। আপনি যদি কোনও চতুর্থাংশ পদক্ষেপ চান, 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>

0

আপনি যদি একটি ভাল সাধারণ উত্তর চান এবং সঠিক 25% না চান তবে আপনি কোনও পৃষ্ঠায় সাধারণ লাইন গণনাটিকে 25 দ্বারা ভাগ করে কিছু সিস্টেম ম্যাপিং সেট করতে পারেন। উদাহরণস্বরূপ যদি আপনার কোনও স্ক্রিনে সাধারণত প্রায় 100 টি লাইন থাকে তবে তার 25% 25 টি লাইন থাকে যাতে আপনি 25 লাইনগুলি দ্রুত সরিয়ে এবং নীচে নেওয়ার জন্য আপনার মূলধন জে এবং কে এর মতো কিছুতে একটি কী ম্যাপিং সেট করতে পারেন you

noremap J 25j
noremap K 25k

আপনি যদি পুরো ফাইলটির কোয়ার্টার চিহ্নে ঝাঁপিয়ে যেতে চান তবে সাধারণ মোডে কেবল টাইপ করুন:

25%

1
আমি মনে করি আপনার সমাধানের সাথে দুটি অপূর্ণতা রয়েছে: noremap J 25jহার্ডকোডের মানটি 25এইভাবে যখন আপনি অনুভূমিকভাবে 100 লাইনের উইন্ডোটি বিভক্ত করেন তবে আপনার ম্যাপিংটি নতুন উইন্ডোর 50% নেভিগেট করবে। আপনার দ্বিতীয় বিকল্প সম্পর্কে :25%আমি এটির অস্তিত্ব জানতাম না তবে আমার পরীক্ষাগুলি থেকে মনে হয় এটি কার্সারটিকে প্রথম লাইনের উপর ভিত্তি করে একটি অবস্থানে রাখে: আমার যদি 100 লাইন বাফার থাকে এবং আমি 25% এগিয়ে যেতে চাই তবে টাইপিং :25%আমার কাছে নিয়ে আসবে লাইনে 25 আমার কর্সার যেখানেই থাকুক না কেন। এছাড়াও আপনি কী দয়া করে এই বৈশিষ্ট্যটি বর্ণনা করে সহায়তা বিষয় রেখে যেতে পারেন যা আমি দস্তাবেজে এটি খুঁজে পাচ্ছি না?
স্ট্যাটক্স

1
আমি সহায়তা বিষয়টি পেয়েছি :h N%:-)
স্ট্যাটক্স
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.