ভিআইএম: আপেক্ষিক সংখ্যার সাথে টগল নম্বর


15

সঙ্গে

setl nu!

আমি রিলেটিভেনবারের সাথে অনুরূপ নম্বর (চালু / বন্ধ) টগল করতে পারি

setl rnu!

আমি কীভাবে টগল করতে পারি number অফ, নাম্বার, রিলেটিভেনবার}?


5
Aw। কেন পৃথিবীতে এই প্রশ্নটি এসইউতে স্থানান্তরিত হয়েছিল? এটি একটি প্রোগ্রামিং সরঞ্জাম সম্পর্কিত একটি প্রোগ্রামিং প্রশ্ন । এটি এর চেয়ে বেশি এসও পায় না। যে প্রোগ্রামাররা এসও-তে ফোকাস দেয় (আমার মতো) এখন তারা এই উত্তরটি খুঁজে পাবে না কারণ 5 জন জানেন না যে ভিম কী। চিত্রে যান. মিতা
25925

@ সে, আমি সম্মত, এটি স্ট্যাকওভারফ্লোয়ের জন্য একটি প্রশ্ন
janpablo

উত্তর:


9
if &nu == 1
   set rnu
elseif &rnu == 1
   set nornu
else
   set nu
endif

বেনোইটকে ধন্যবাদ, আমি আপনার সমাধানটি একটি সংক্ষিপ্ত রূপ
juanpablo

1
@ জুয়ানপাবলো: মিমি। আমি আমার সংস্করণ মত আরো ভাল :)
sehe

1
@ সেহ: আমি আমার সংস্করণটি সম্পর্কে একই কথা বলব। :-)

17

কারণ আমি একটি যুক্তি ধাঁধা পছন্দ করি এবং সত্যই এটি পছন্দ করি যখন উইম কমান্ড সুসংগত পুনরাবৃত্তি ( @:একটি ব্যক্তিগত প্রিয়) জন্য একক লাইনে ফিট করে :

:exec &nu==&rnu? "se nu!" : "se rnu!"

এটি একই চক্র বজায় রাখবে। আমি মনে করি এটি মূলত কারণটি let &nu=1স্পষ্টভাবে নোরালাইভেনবার সেট করবে - সম্ভবত ডকুমেন্টেশনে পাওয়া কারণগুলির জন্য :)


3
আমি এটিকে F1 nmap <F3> :exec &nu==&rnu? "se nu!" : "se rnu!"<CR>ব্যবহার করে তিনটি বিকল্পের মাধ্যমে টগল করার জন্য একটি লাইন হিসাবে আমার .vimrc ফাইলে রাখতে পারি বলে +1 করুন।

3
আপনি nnoremap <silent> <F3>দেখতে পেলেন ... ভিজ্যুয়াল ডিসট্রেশন হ্রাস করতে এবং অন্যান্য ম্যাপিংয়ের সাথে হস্তক্ষেপ করতে।
sehe

আমি প্রায় একই (কিন্তু খাটো :-) লাইন নিয়ে এসেছেন যখন প্রশ্ন পড়ুন: exe'se'&nu+&rnu?'rnu!':'nu'

উপায় দ্বারা, নিজেকে numberএবং relativenumberবিকল্পগুলির মধ্যে সংযোগ সম্পর্কে নিজেকে নিশ্চিত করতে , দেখুন :helpg When setting this option

@ বিবি: ভাগ করে নেওয়ার জন্য ধন্যবাদ। আমি সত্যিই আপনার ভিম কোড গল্ফগুলিকে ভালবাসি - সেখানে এমন রত্ন রয়েছে যা সত্যিই আমার প্রতিদিনের কাজকে গতি দেয়; তবে এক্ষেত্রে আমি নির্দিষ্টভাবে আমার সংস্করণটি বেছে নিয়েছি (একটি নেট 3 অক্ষর দীর্ঘ - হোয়াইটস্পেস ক্র্যাম্প ছাড়াও) কারণ এটি সুসংগঠিত। আমার মতে, এটা আরও ঘনীভূত থেকে কোন লাভ নয়: কঠিন পেতে টাইপ করতে এবং অনেক কঠিন এমনকি যদি আপনি কি কখনো মনে রাখা নেই ছিল স্মৃতি থেকে এটা টাইপ করুন। এটি ম্যাপিংয়ে চলেছে।
বেনোইটের

8

ভিম 7.3.1115 হিসাবে এটি করা কিছুটা জটিল হয়ে উঠেছে।

কারণটি হ'ল "লাইন সংখ্যা নেই" এবং "নিখুঁত লাইন নম্বর" ছাড়াও এখন আপেক্ষিক লাইন সংখ্যাগুলির জন্য দুটি সেটিংস রয়েছে: সাধারণ "আপেক্ষিক লাইন সংখ্যা", এবং "কার্সার লাইনে পরম সংখ্যাযুক্ত আপেক্ষিক লাইন সংখ্যা"।

আরো টেকনিক্যালি ভাষী, চারটি সমন্বয় 'number'এবং 'relativenumber'এখন সম্ভব।

কীভাবে টগল করা যায় তা এখানে:

  • চারটি সেটিংস টোগল করুন, কার্সার লাইনে পরম সহ কোনও সংখ্যাপরমআপেক্ষিকআপেক্ষিক নয় :

    :exe 'set nu!' &nu ? 'rnu!' : ''
    
  • কোনও সংখ্যানিখুঁতআপেক্ষিকের মধ্যে টগল করুন :

    :let [&nu, &rnu] = [&nu+&rnu==0, &nu]
    
  • কার্সার লাইনে নিখুঁত সাথে সম্পর্কিত কোনও সংখ্যারনিখুঁত → এর মধ্যে টগল করুন :

    :let [&nu, &rnu] = [!&rnu, &nu+&rnu==1]
    

7

যারা আরও পঠনযোগ্য সমাধান চান, তাদের জন্য আমার .vimrc এ নিম্নলিখিতটি রয়েছে

" Relative or absolute number lines
function! NumberToggle()
    if(&nu == 1)
        set nu!
        set rnu
    else
        set nornu
        set nu
    endif
endfunction

nnoremap <C-n> :call NumberToggle()<CR>

এই সম্পর্কে দুর্দান্ত জিনিস আপনি আপেক্ষিক এবং পরম সংখ্যা মোডের মধ্যে টগল করতে ctrl+ nটিপুন করতে পারেন !


0

উপরে এরিক অ্যান্ডারসনের মতো আর একটি বিকল্প :

"Relative with start point or with line number or absolute number lines
function! NumberToggle()
    if(&number == 1)
        set number!
        set relativenumber!
      elseif(&relativenumber==1)
        set relativenumber
        set number
      else
        set norelativenumber
        set number                                                  
    endif
endfunction

nnoremap <C-n> :call NumberToggle()<CR>

0
" put this in your .vimrc or source it from your .vimrc


  function! ToggleRelativeNumber()

      if &relativenumber

           set norelativenumber

      else

           set relativenumber

      endif

  endfunction

  nmap ;r :call ToggleRelativeNumber()<CR>
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.