Ctrl + a, ctrl + x এর মাধ্যমে "সত্য" এবং "মিথ্যা" মানগুলি অদলবদল করে


10

আমি মনে করি যে + বা + সংমিশ্রণ সহ কোডটিতে দ্রুত অদলবদল trueএবং falseমানগুলি পাওয়া সম্ভব হবে । তার জন্য কিছু প্লাগইন আছে বা অন্য কিছু?ctrlactrlx

উত্তর:


6

আপনি যে বুলিয়ান মানগুলি চেষ্টা করতে পারেন তা টগল করার জন্য আমি একটি প্লাগইন ( টগল-বুল ) লিখেছি । এটি নিম্নলিখিত বুলিয়ান মানগুলিকে সমর্থন করে:

  • true <-> false
  • yes <-> no
  • on <-> off
  • 0 <-> 1

ওহ, আমি যা খুঁজছিলাম তবে আমার একটা ছোট সমস্যা আছে। আপনি এটা ঠিক করতে পারবো? github.com/sagarrakshe/toggle-bool/issues/1
আলেকজান্ডার মাইশভ

1
@ লুসিডব্রোট সংশোধন করেছেন
সাগর

12

এখানে সুইচ.ভিম রয়েছে এবং এটি কাস্টমাইজযোগ্য।

প্লাগইনটির প্রধান এন্ট্রি পয়েন্ট হ'ল একক কমান্ড :Switch,। কমান্ডটি কার্যকর করা হলে, প্লাগইন কার্সারের নীচে কয়েকটি নির্দিষ্ট নিদর্শনগুলির মধ্যে একটি সন্ধান করে এবং প্যাটার্নের উপর নির্ভর করে একটি সাবস্টিশন সম্পাদন করে।

উদাহরণস্বরূপ যদি trueনিম্নলিখিত কোডে কার্সারটি থাকে :

flag = true

তারপর মৃত্যুদন্ড কার্যকর করার পরে :Switch, trueইচ্ছা রূপান্তরিত হবে false


আপনাকে স্বাগতম! আমার কাছে একটি 'ভিআইএম-ডুইম' প্লাগইন সম্পর্কে এই ক্রেজি ধারণা রয়েছে যা কার্সারের অধীনে সিনট্যাক্সের উপর ভিত্তি করে আলাদাভাবে কাজ করে (উদাহরণস্বরূপ, এন্টার চাপার সময়) এবং আমি মনে করি আমি এই প্লাগইন থেকে নিজেকে ভারীভাবে অনুপ্রাণিত করব। আমি যদি কখনও এটি তৈরি করা শুরু করি তবে তা।
ভ্যানলেজার

7

প্লাগইনগুলির প্লিথোড়া

টগলিং true/ falseএবং অনুরূপ অনেক প্লাগইন লেখক প্রয়োগ করেছেন। এর মধ্যে দুটি উল্লেখ করা হয়েছে:

  • অ্যান্ড্রু রাদেভ ( # 4172 , গিথুব ) এবং সুইচ.ভিম
  • টগল- বুল সাগর রাকশে ( গিথুব ) দ্বারা।

অন্যরা হয় টগল টিমো Teifel (দ্বারা # 895 ), সোমবার স্টিফান Karlsson (দ্বারা # 1046 ), toggle_words ভিনসেন্ট ওয়াং (দ্বারা # 1676 ), toggle_word Alexandru Ungur (দ্বারা # 1748 ), incbool.vim দিমিত্রি পেট্রোভ দ্বারা ( # 4361 , GitHub ) , মাইকেল আর্ট দ্বারা পরবর্তী ( # 4536 , গিথুব )।

কেবলমাত্র যদি আপনি একটি কাস্টম সিরিজ অনুসারে সংখ্যা বাড়াতে চান, যেমন ফিবোনাচি সিরিজ, ব্যারি আর্থার ( গিথুব ) দ্বারা নেক্সাস পরীক্ষা করে দেখুন ।

প্লাগইনস সুপারচার্জিং Ctrl-A/X

যাইহোক, তাদের সব ডিফল্টরূপে ধারণা অনুসরণ প্রসারিত করতে Ctrl-A/Xকিন্তু কোন নতুন আদেশ এবং / অথবা একটি নতুন ম্যাপিং সংজ্ঞায়িত (Incl। Switch.vim এবং টগল-bool, )। আমি সেই প্লাগইনগুলি হাইলাইট করতে চাই যা Ctrl-A/Xবাক্স থেকে 'সুপারচার্জ' করে এবং তাই, ওপি যা বলেছে তা ডিফল্টরূপে সরবরাহ করে:

  • মাইকেল ব্রাউন দ্বারা পরিবর্তিত ( # 2294 , গিথুব ),
  • বর্ধিত-একটিভেটর Takuya Nishigori দ্বারা ( # 4817 , GitHub ),
  • CtrlXA Konfekt দ্বারা ( # 5600 , GitHub ),
  • চক্র Zef Houssney (দ্বারা GitHub ),
  • চক্র bootleq দ্বারা ( GitHub )

যা প্রসারিত একটি সংশ্লিষ্ট প্লাগইন Ctrl-A/Xকরা হয় speeddating টিম পোপ (দ্বারা # 2120 , GitHub ) যা আপনি বৃদ্ধি তারিখ করতে পারবেন।

পিছু হট

কিছু প্লাগইন Ctrl-A/Xএকটি ফ্যালব্যাক হিসাবে দ্বিতীয় ইনক্রিমেন্টর প্লাগইন একত্রিত করার অনুমতি দেয় eg

  • মাইকেল ব্রাউন লিখেছেন :

    nmap <Plug>SwapItFallbackIncrement <Plug>SpeedDatingUp
    nmap <Plug>SwapItFallbackDecrement <Plug>SpeedDatingDown
    vmap <Plug>SwapItFallbackIncrement <Plug>SpeedDatingUp
    vmap <Plug>SwapItFallbackDecrement <Plug>SpeedDatingDown
    
  • বুটলেক দ্বারা চক্র :

    map <silent> <Plug>CycleFallbackNext <Plug>SpeedDatingUp
    map <silent> <Plug>CycleFallbackPrev <Plug>SpeedDatingDown
    
  • অ্যান্ড্রু রাদেভ দ্বারা সুইচ.ভিম :

    nnoremap <c-a> :if !switch#Switch()<bar>call speeddating#increment()<bar>endif<cr>
    nnoremap <c-x> :if !switch#Switch({'reverse': 1})<bar>call speeddating#decrement()<bar>endif<cr>
    

দ্রষ্টব্য
আপনি যদি বিল্টিনের সিক আচরণ ব্যবহার করেন Ctrl-A/X(বৃদ্ধির সাথে সাথে পরবর্তী সম্ভাব্য মানটি সন্ধান করুন), তাদের সুপারচার্জিং হস্তক্ষেপ করতে পারে।


1

আপনি কী ব্যবহার করতে চান তাতে ম্যাপিংটি পরিবর্তন করুন

পূর্ববর্তী স্থানটি যদি কোনও স্থানের উপরে ব্যবহার করে তবে এটি যেহেতু সিআইইউ শব্দের পরিবর্তে স্থানটি সম্পাদনা করবে (এবং নির্ভরযোগ্যভাবে সঠিক শব্দটিতে পৌঁছানোর সহজ উপায় নেই)

function SwapBool ()
  let s:w = expand("<cword>")
  if s:w == "false"
    normal ciwtrue
    if expand("<cword>") != "true"
      normal u
    endif
  elseif s:w == "true"
    normal ciwfalse
    if expand("<cword>") != "false"
      normal u
    endif
  endif
endfunction
noremap <C-F> :call SwapBool()^M

<C-V><Enter>আক্ষরিকভাবে ^ এম না হওয়াতে note এম হওয়া দরকার


1
এই সাইটে আপনাকে স্বাগতম! মনে রাখবেন যে একটি শর্ত যুক্ত করা আকর্ষণীয় হবে যা ফাংশনটি অন্তর্নির্মিতের মতো করে তোলে <C-a>এবং <C-x>যখন বর্তমান শব্দটি বুলিয়ান নয়, এইভাবে ওপি এই ম্যাপিংগুলি ব্যবহার করতে সক্ষম হবে। এছাড়াও আপনি ব্যবহার করতে পারেন <CR>পরিবর্তে ^Mআপনার ম্যাপিং, এবং এটি সাধারণত আপনার এমন মোডে প্রদান একটি সেরা অভ্যাস mapকমান্ড এখানে nnoremapচেয়ে বেশি উপযুক্ত হবে noremap
স্টাটক্স
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.