বানানের পরামর্শের মাধ্যমে লুপ করতে আদেশ দিন


12

আমি ম্যাপ zzথেকে 1z=, যা বেশির ভাগ সময়ে প্রচুর বটে, কিন্তু হরদম প্রথম প্রস্তাবনা সঠিক নয়।

তাই আমি অন্য পরামর্শগুলির মাধ্যমে পুনরাবৃত্তি zz(বা .) চালিয়ে যেতে চাই ।

zzএকই শব্দের উপর একটি সেকেন্ড , তারপরে, কাজ করবে u2z=, তৃতীয়াংশ zzমতো কাজ করবে u3z=

কিভাবে এটি সম্পর্কে কোন ধারণা?


সম্পাদনা:

@ Nobe4 এর দুর্দান্ত উত্তরের ভিত্তিতে আমি যা চাই তা করতে পরিচালিত হয়েছি, তবে কারওর কোনও উন্নতি বা পরামর্শ থাকলে কিছুক্ষণের জন্য এটি এখানে রেখে দেব:

let s:spell_position = []
let s:spell_count = 0
let s:spell_word = ""

function! LoopSpell()

    if s:spell_position != getpos('.') ||
            \ (s:spell_count > 0 && s:spell_word !~ expand("<cword>"))
        let s:spell_count = 0
        let s:spell_position = getpos('.')
    endif

    if s:spell_count > 0
        silent execute "normal! u"
    endif

    let s:current_word = expand("<cword>")
    if len(s:current_word) <= 0
        return
    endif

    let s:spell_suggestions = spellsuggest(expand(s:current_word))
    if len(s:spell_suggestions) <= 0
        return
    endif

    if s:spell_count >= len(s:spell_suggestions)
        let s:spell_word = s:current_word
        let s:spell_count = 0
    else
        let s:spell_word = s:spell_suggestions[s:spell_count]
        let s:spell_count += 1
    endif
    silent execute "normal! ciw" . s:spell_word
    let s:spell_position = getpos('.')

endfunction

nnoremap <c-m> :call LoopSpell()<CR>

( <c-m>@ ভিজিটরের মন্তব্যের কারণে আমি ম্যাপিংটি পরিবর্তিত করেছি Also এছাড়াও এটি আমাকে কীগুলি ধরে রাখতে এবং সাজেশনগুলিকে সত্যই দ্রুত সরবরাহ করতে দেয় I'm আমি এটি হিসাবে ভাবছি <c-mistake>))


2
আমি আপনাকে এই প্লাগইনটি যাচাই করার পরামর্শ দিচ্ছি যা এই সাইটের একজন ব্যবহারকারী তৈরি করেছেন। সংশোধন আপনি ব্যবহার শুরু করার জন্য: এটা সত্যিই বানান পরীক্ষণের কর্মপ্রবাহ উন্নতি :Correctআপনার সাথে সঠিক শব্দ নালা নেভিগেট করতে সক্ষম হবেন: কমান্ড nএবং N, একটি বিভক্ত উইন্ডোর আপনি কেবল তাদের মাধ্যমে নেভিগেট সঙ্গে আসতে পারে যা সমস্তই সংশোধন পরামর্শ দিয়ে প্রর্দশিত jএবং kএবং <CR>হবে সংশোধন প্রয়োগ করুন।
স্ট্যাটক্স

@ স্টাটক্স এই পরামর্শের জন্য ধন্যবাদ। আমি এটি পরীক্ষা করে দেখব, তবে আমি এখনও আমার zzআদেশটি নির্দিষ্ট জিনিসগুলি দ্রুত ঠিক করার জন্য চাই ।
dbmrq

3
আশা করি আপনি অবগত আছেন যে মূলত zzবর্তমান লাইনের চারদিকে উইন্ডোটি কেন্দ্র করে। আমি সম্ভবত প্রায়শই ব্যবহার করি এমন শর্টকাটগুলির মধ্যে এটি সম্ভবত। আপনার চেকআউট করা উচিত zbএবং zt
Vitor থেকে

@ ভিটার আকর্ষণীয়, আমি এটি জানতাম না! আমি সাধারণত আমার scrolloffবেশ উঁচুতে রাখি , তবে এটি এখনও কার্যকর বলে মনে হয়, আমি অন্য ম্যাপিংটি বিবেচনা করব। ধন্যবাদ!
dbmrq

এই তেজ স্ক্রিপ্ট আছে শব্দ পরিপূরণ / বানান সংশোধন / প্রতিশব্দের (aspell, জ্ঞানভাণ্ডার, অভিধান ব্যবহার করে) stackoverflow.com/a/46645434/476175
mosh

উত্তর:


6

আমি এখানে যা এলাম তা এখানে:

বানান ঘোরান

বানান ঘোরান

বৈশিষ্ট্য

  • '[এবং ']চিহ্ন টেক্সট উপর কাজ করা হচ্ছে ট্র্যাক রাখতে ব্যবহার করা হয়। অন্য কোথাও পরিবর্তন করা কার্যকরভাবে প্রস্তাবিত পরিবর্তনটিকে "গ্রহণ" করবে।
  • একটি গণনা গ্রহণ করে।
  • ব্যবহার করে পিছনে যায় zp
  • ভিএম -রিপিট ব্যবহার করে পুনরাবৃত্তিযোগ্য
  • কতগুলি পরামর্শ সাইকেল করা হয়েছে তা নির্বিশেষে মূল শব্দটি পুনরুদ্ধার করতে একবার পূর্বাবস্থায় ফিরুন।
  • বিভক্ত শব্দের জন্য পরামর্শ পেতে ভিজ্যুয়াল মোডে কাজ করে (যেমন "শিরোনাম" -> "শিরোনাম")
    • পাঠ্যের উপর নজর রাখতে ব্যবহার '<এবং '>চিহ্নগুলি।
    • দ্রষ্টব্য : ভিএম-পুনরাবৃত্তির সাথে পুনরাবৃত্তিযোগ্য বলে মনে হয় না ।
  • পরিবর্তিত হচ্ছে আসল শব্দটি নামবিহীন রেজিস্টারে রাখা হয়েছে।
  • মূল, পূর্ববর্তী, বর্তমান এবং পরবর্তী পরামর্শগুলি কমান্ড লাইনে প্রদর্শিত হবে।
  • :SpellRotateSubAllবর্তমান পরামর্শের সাথে মূল পাঠ্যের সাথে সমস্ত পাঠ্য প্রতিস্থাপনের জন্য নিষ্কলঙ্ক কমান্ড ।

প্লাগইন: বানান

function! s:spell_rotate(dir, visual) abort
  if a:visual
    " Restore selection.  This line is seen throughout the function if the
    " selection is cleared right before a potential return.
    normal! gv
    if getline("'<") != getline("'>")
      echo 'Spell Rotate: can''t give suggestions for multiple lines'
      return
    endif
  endif

  if !&spell
    echo 'Spell Rotate: spell not enabled.'
    return
  endif

  " Keep the view to restore after a possible jump using the change marks.
  let view = winsaveview()
  let on_spell_word = 0

  if exists('b:_spell') && getline("'[") == getline("']")
    let bounds = b:_spell.bounds
    " Confirm that the cursor is between the bounds being tracked.
    let on_spell_word = bounds[0][0] == bounds[1][0]
          \ && view.lnum == bounds[0][0]
          \ && view.col >= bounds[0][1]
          \ && view.col <= bounds[1][1]
  endif

  " Make sure the correct register is used
  let register = &clipboard == 'unnamed'
        \ ? '*' : &clipboard == 'unnamedplus'
        \ ? '+' : '"'

  " Store the text in the unnamed register.  Note that yanking will clear
  " the visual selection.
  if on_spell_word
    if a:visual
      keepjumps normal! y
    else
      keepjumps normal! `[v`]y
    endif
    call winrestview(view)
  elseif a:visual
    keepjumps normal! y
  else
    keepjumps normal! viwy
  endif

  let cword = getreg(register)

  if !on_spell_word || b:_spell.alts[b:_spell.index] != cword
    " Start a new list of suggestions.  The word being replaced will
    " always be at index 0.
    let spell_list = [cword] + spellsuggest(cword)
    let b:_spell = {
          \ 'index': 0,
          \ 'bounds': [[0, 0], [0, 0]],
          \ 'cword': cword,
          \ 'alts': spell_list,
          \ 'n_alts': len(spell_list),
          \ }

    if len(b:_spell.alts) > 1
      " Do something to change the buffer and force a new undo point to be
      " created.  This is because `undojoin` is used below and it won't
      " work if we're not at the last point of the undo history.
      if a:visual
        normal! xP
      else
        normal! ix
        normal! x
      endif
    endif
  endif

  if a:visual
    normal! gv
  endif

  if len(b:_spell.alts) < 2
    echo 'Spell Rotate: No suggestions'
    return
  endif

  " Force the next changes to be part of the last undo point
  undojoin

  " Setup vim-repeat if it exists.
  silent! call repeat#set(printf("\<Plug>(SpellRotate%s%s)",
        \ a:dir < 0 ? 'Backward' : 'Forward', a:visual ? 'V' : ''))

  " Get the suggested, previous, and next text
  let i = (b:_spell.index + (a:dir * v:count1)) % b:_spell.n_alts
  if i < 0
    let i += b:_spell.n_alts
  endif

  let next = (i + 1) % b:_spell.n_alts
  let prev = (i - 1) % b:_spell.n_alts
  if prev < 0
    let prev += b:_spell.n_alts
  endif

  let next_word = b:_spell.alts[next]
  let prev_word = b:_spell.alts[prev]

  let b:_spell.index = i
  call setreg(register, b:_spell.alts[i])

  if a:visual
    normal! p`[v`]
  else
    keepjumps normal! gvp
  endif

  " Keep the original word in the unnamed register
  call setreg(register, b:_spell.cword)

  let b:_spell.bounds = [
        \ getpos(a:visual ? "'<" : "'[")[1:2],
        \ getpos(a:visual ? "'>" : "']")[1:2],
        \ ]

  echon printf('Suggestion %*s of %s for "', strlen(b:_spell.n_alts - 1), b:_spell.index, b:_spell.n_alts - 1)
  echohl Title
  echon b:_spell.cword
  echohl None
  echon '":  '

  if a:dir < 0
    echohl String
  else
    echohl Comment
  endif
  echon prev_word
  echohl None

  echon ' < '

  echohl Keyword
  echon b:_spell.alts[i]
  echohl None

  echon ' > '

  if a:dir > 0
    echohl String
  else
    echohl Comment
  endif
  echon next_word
  echohl None

  redraw
endfunction


function! s:spell_rotate_suball() abort
  if !exists('b:_spell') || len(b:_spell.alts) < 2
    return
  endif
  execute '%s/'.b:_spell.cword.'/'.b:_spell.alts[b:_spell.index].'/g'
endfunction


command! SpellRotateSubAll call s:spell_rotate_suball()

nnoremap <silent> <Plug>(SpellRotateForward) :<c-u>call <sid>spell_rotate(v:count1, 0)<cr>
nnoremap <silent> <Plug>(SpellRotateBackward) :<c-u>call <sid>spell_rotate(-v:count1, 0)<cr>
vnoremap <silent> <Plug>(SpellRotateForwardV) :<c-u>call <sid>spell_rotate(v:count1, 1)<cr>
vnoremap <silent> <Plug>(SpellRotateBackwardV) :<c-u>call <sid>spell_rotate(-v:count1, 1)<cr>

nmap <silent> zz <Plug>(SpellRotateForward)
nmap <silent> zp <Plug>(SpellRotateBackward)
vmap <silent> zz <Plug>(SpellRotateForwardV)
vmap <silent> zp <Plug>(SpellRotateBackwardV)

1
বাহ, এখন আমরা কথা বলছি! আপনার এটিকে একটি স্বতন্ত্র প্লাগইনে রূপান্তর করা উচিত যাতে আমরা ভবিষ্যতে পরিবর্তন এবং উন্নতিগুলি একই স্থানে রাখতে পারি। অথবা আপনি আগ্রহী না হলে আমি এটি করার চেষ্টা করতে পারি।
dbmrq

@ ড্যানিয়েলবারমার্কস যথেষ্ট সহজ, আপনি এখানে যান: github.com/tweekmonster/spellrotate.vim
টমি এ

কল্পনা, ধন্যবাদ! আমি আপনার উত্তরটিকে যথাযথ হিসাবে গ্রহণ করব কারণ এটি ঠিক যা চেয়েছিল এবং আরও অনেক কিছু, এবং আমি তার সমস্ত প্রচেষ্টা এবং সহায়তার জন্য @ nobe4 কে এই অনুদান দেব।
dbmrq

@ ডানিয়েলবমার্কস কোন সমস্যা নেই আকর্ষণীয় প্রশ্ন এবং সমাধানের জন্য আমি এতে আছি Tom
টমি এ

5

@ স্ট্যাটাক্সের পরামর্শ অনুসারে আপনি যে প্লাগইনটি লিখেছিলেন তা ব্যবহার করতে পারেন: ভিমক্রেক্ট

আমি এটি মূলত কীভাবে কাজ করে তা ব্যাখ্যা করব, সুতরাং আপনি যদি এর কিছু অংশ পুনরায় ব্যবহার করতে চান তবে আপনি পারেন।

পরের ভুল বানানযুক্ত শব্দটির উপরে ফোকাস করতে আমি সরাসরি ব্যবহার করি ]sএবং [sসেগুলি পরবর্তী / পূর্ববর্তী ম্যাচে ঝাঁপিয়ে পড়ে। আমি বর্তমান শব্দটি হাইলাইট করতে একটি কাস্টম মিল ফাংশনটি সংজ্ঞায়িত করেছি:

এখানে চিত্র বর্ণনা লিখুন

matchadd('error', '\%'.line('.').'l'.'\%'.col('.').'c'.s:current_word)

যা errorবর্তমান লাইনে / কলামে মিল একই গ্রুপে বর্তমান শব্দ যুক্ত করে (একই লাইনে একাধিক মিলকে আটকাতে)।


spellbadword()ফাংশন কার্সার অধীনে শব্দের জন্য সম্ভব সংশোধন একটি তালিকা ফিরে যান।

আমি এই তালিকাটি কেবল একটি বাফারে প্রদর্শন করি এবং আমি <CR>বর্তমান লাইনে ভুল বানানটির শব্দের প্রতিস্থাপন করতে মানচিত্র তৈরি করি (অর্থাত্ একটি সম্ভাব্য সংশোধিত শব্দ)।


আমিও মানচিত্র nএবং Nকরতে ]sএবং [s, আমি অনুসন্ধান করতে তাদের টিপুন ব্যবহৃত করছি।

q প্লাগইনটি ছেড়ে দিতে, বিভাজনটি বন্ধ করতে এবং হাইলাইটটি সরিয়ে ম্যাপ করা হয়েছে।

দ্রষ্টব্য : এটি এখনও অত্যন্ত অস্থির, তবে শীঘ্রই কিছু পরিবর্তন করার পরিকল্পনা করছি plan আপনার যদি মনে হয় আপনি এই প্লাগইনটি উন্নত করতে / করতে চান তবে বিনা দ্বিধায় / একটি টানার অনুরোধটি খুলুন।


বর্নানার জন্য ধন্যবাদ. আপনার প্লাগইনটি দুর্দান্ত দেখাচ্ছে, আমি অবশ্যই এটি ব্যবহার করব। আমি এখনও আমার zzকমান্ড চাই , তাই আমি বিশেষ মোডে না withoutুকিয়ে জিনিসগুলি দ্রুত ঠিক করতে পারি। vimcorrectআমি এটি যুক্ত করতে পারি যদি আমি কখনই এটি খুঁজে বের করি। :)
dbmrq

ঠিক আছে, আমার অবশ্যই আরও কাস্টমাইজেশন যুক্ত করা দরকার। সুতরাং কাস্টম ম্যাপিং সংজ্ঞায়িত করা আপনি চাইলে যোগ করতে পারেন এমন একটি উন্নতি হতে পারে :) (আপনি যদি উইমস্ক্রিপ্টে বিকাশ শুরু করেন তবে এটি শেখার একটি ভাল উপায় হতে পারে)
নবে 4

2

এখানে একটি ফাংশন যা কাজ করা উচিত:

let s:last_spell_changedtick = {}

function! LoopSpell()
  " Save current line and column
  let l:line = line('.')
  let l:col = col('.')

  " check if the current line/column is already in the last_spell_changedtick
  if has_key(s:last_spell_changedtick, l:line) == 0
    let s:last_spell_changedtick[l:line] = {}
  endif

  if has_key(s:last_spell_changedtick[l:line], l:col) == 0
    let s:last_spell_changedtick[l:line][l:col] = 0
  endif

  " If the value already exists, undo the change
  if s:last_spell_changedtick[l:line][l:col] != 0
    normal u
  endif

  " Get the current word
  let l:current_word = spellbadword()
  if len(l:current_word) == 0
    call <SID>Quit()
  endif

  " Get suggestions for the current word
  let s:current_word = l:current_word[0]
  let l:suggestions = spellsuggest(expand(s:current_word))

  " If the current word present no spelling suggestions, pass
  if len(suggestions) <= 0
    return
  endif

  " Replace the word with suggestion
  silent execute "normal! ce" . l:suggestions[s:last_spell_changedtick[l:line][l:col]]
  normal! b

  " Increment the count
  let s:last_spell_changedtick[l:line][l:col] = s:last_spell_changedtick[l:line][l:col] + 1

endfunction

function! LoopConfirm()
  let s:last_spell_changedtick = {}
endfunction

nnoremap zz :call LoopSpell()<CR>
nnoremap z= :call LoopConfirm()<CR>

মূল ধারণাটি হ'ল প্রতিটি পরিবর্তিত শব্দকে একটি লাইন / কলাম জুটিতে ম্যাপ করা (যাতে এটি কেবলমাত্র একটি উপাদানের জন্য কাজ করে না) এবং উপাদানটি ইতিমধ্যে সংশোধন করা হয়েছে কিনা তা পরীক্ষা করে দেখুন।

প্রতিস্থাপনটি করার জন্য, এটি আমার প্লাগইন যা করতে চলেছে তা অনেকটাই:

  • বর্তমান ভুল বানানযুক্ত শব্দটি আনুন
  • সংশোধন বিদ্যমান কিনা তা পরীক্ষা করে দেখুন
  • সংশোধন পরামর্শ সহ শব্দ প্রতিস্থাপন

এটি ব্যবহার করার সময়, আপনি যদি ভুল বানানটিতে ফিরে যেতে চান তবে আপনি কেবল চাপতে পারেন u

LoopConfirmফাংশন অভিধান রিসেট, তাই আপনি যদি আপনার পাঠ্য পরিবর্তন, আপনি এটি দুর্ঘটনায় প্রতিরোধ কল করতে পারেন।

আপনি যদি কোনও সমস্যা নিয়ে চলে থাকেন / আপনার কাছে প্রশ্ন থাকে তবে আমাকে জানান।


উহু, ভাল লাগছে। যদিও এটি এখনও অনেক সমস্যা আছে। "তে কিক বোর্ন ফোজ জুমস অফের তি লাজি ডোর" এর মতো একটি বাক্যাংশ নিন এবং প্রতিটি শব্দকে সেভাবে সংশোধন করার চেষ্টা করুন। আমি কখনই "তে" "" তে "পেতে পারি না, যদিও এটি তালিকার 4 নম্বরে। "কিউক" কাজ করে, তবে "বোর্ন" অন্য কিছুতে পরিবর্তিত হয়, এমনকি যদি "ব্রাউন" তালিকায় প্রথমে থাকে এবং তারপরে এটি সরাসরি "ফোজ" এ চলে যায়। আমি এর আগে কখনও পাইনি। এছাড়াও আমি অতিরিক্ত z=অংশটি পছন্দ করি না তবে বাকীগুলি যদি কাজ করে তবে আমি সম্ভবত নিজের কাছাকাছি যাওয়ার কোনও উপায় খুঁজে পেতে পারি। যদিও আমি যা চাই এটি এটি খুব কাছে চলেছে। আমি এটা ঠিক করার চেষ্টা চালিয়ে যাব। ধন্যবাদ!
dbmrq

আমার আপডেট দেখুন, আমি খুব শীঘ্রই একটি বর্ধিতকরণ যুক্ত করব :) হ্যাঁ আমি z=উভয়ের সাথেও খুশি নই । তবে এই পদ্ধতির সাহায্যে আপনি কোথায় আছেন তার একটি রেফারেন্স রাখতে হবে। তবে আপনার যদি একই সাথে সমস্ত রেফারেন্স রাখার প্রয়োজন না হয় তবে আমি
এটিকে

আমি নিশ্চিত না যে আপনি "সমস্ত রেফারেন্স একই সাথে রাখুন" এর অর্থ কী ... তবে যখনই কার্সারটি সরানো যায় আমরা কেবল অভিধানটি পুনরায় সেট করতে পারি না? ফাংশনটি পরীক্ষা করে দেখাবে যে কার্সারটি একই সাথে একই জায়গায় রয়েছে যা এটি গতবার বলা হয়েছিল, এবং যদি এটি পুনরায় সেট করা না হয়।
dbmrq

কার্সার শব্দের শুরুতে না থাকলে এটি যেভাবে হয় তা সঠিকভাবে কাজ করে না বলে মনে হয়। সেই বাক্যের প্রতিটি ভুল সংশোধন করার চেষ্টা করুন প্রতিটি শব্দের মাঝখানে কার্সার রেখে। আমি এখনই পরের দিকে এড়িয়ে যাই।
dbmrq

1
ঠিক আছে, আমার মনে হয় আমি পেয়েছি! আমার শেষ সম্পাদনা পরীক্ষা করুন। এটি বেশ নিখুঁতভাবে কাজ করে বলে মনে হচ্ছে। অন্য কারও কাছে কিছু যোগ করার আছে কিনা তা দেখার জন্য আমি প্রশ্নটি আরও বেশি দিন ছেড়ে দেব, তবে আপনার উত্তরটি দুর্দান্ত ছিল, ধন্যবাদ। :)
dbmrq

2

অন্যান্য উত্তর ছাড়াও সেখানে আসলে একটি উপায় ডান তেজ আগে থেকেই হল: <C-x>s। এটি ভিমের সন্নিবেশ মোড সমাপ্তির মেনু ব্যবহার করবে।

<C-x>sসন্নিবেশ মোড থেকে টিপলে কার্সারের নীচে শব্দটি প্রথম পরামর্শে সংশোধন করা উচিত এবং আরও পরামর্শ (যদি থাকে তবে) দিয়ে সমাপ্তি মেনুটি প্রদর্শন করা উচিত। 'completeopt'সমাপ্তি মেনুতে কিছু সেটিংস কাস্টমাইজ করতে আপনি সেটিংসটি ব্যবহার করতে পারেন ।

এটি কিছুটা বিরক্তিকর যে এটি কেবল সন্নিবেশ মোড থেকে কাজ করে এবং ব্যবহার <C-x><C-s>করা সমস্যাযুক্ত হতে পারে (নীচের নোটটি দেখুন), আপনি এটির জন্য নিজের ম্যাপিং সংজ্ঞা দিতে পারেন:

inoremap <expr> <C-@>  pumvisible() ?  "\<C-n>" : "\<C-x>s"
nnoremap <expr> <C-@> pumvisible() ?  "i\<C-n>" : "i\<C-x>s"

<C-@> কন্ট্রোল + স্পেস।

এছাড়াও দেখুন :help ins-completion :help i_CTRL-X_s


আমি ব্যক্তিগতভাবে আরও উন্নত সংস্করণ ব্যবহার করি যা "অনুমান" করবে যদি আমরা হয় কাজটি পরীক্ষা করে দেখতে চাই, বা কোডের জন্য নিয়মিত স্বতঃপূরণ ব্যবহার করতে চাই:

fun! GuessType()
    " Use omnicomplete for Go
    if &filetype == 'go'
        let l:def = "\<C-x>\<C-o>"
    " Keyword complete for anything else
    else
        let l:def = "\<C-x>\<C-n>"
    endif

    " If we have spell suggestions for the current word, use that. Otherwise use
    " whatever we figured out above.
    try
        if spellbadword()[1] != ''
            return "\<C-x>s"
        else
            return l:def
        endif
    catch
        return l:def
    endtry
endfun

inoremap <expr> <C-@>  pumvisible() ?  "\<C-n>" : GuessType()
inoremap <expr> <Down> pumvisible() ? "\<C-n>" : "\<Down>"
inoremap <expr> <Up> pumvisible() ? "\<C-p>" : "\<Up>"
nnoremap <expr> <C-@> pumvisible() ?  "i\<C-n>" : 'i' . GuessType()

আমি বিশ্বাস করি এমন কিছু প্লাগইন রয়েছে যা মোটামুটি একই রকম কাজ করে (যেমন সুপারটাব, যা মোটামুটি জনপ্রিয়) তবে আমি কখনই সেগুলি আমার মতো আচরণ করতে পারি না।


ক্যাভেট : আপনি যদি কোনও টার্মিনাল থেকে ভিম ব্যবহার করছেন তবে <C-s>তার অর্থ হবে "স্টপ আউটপুট"। এই কারণেই উভয় <C-x><C-s> এবং <C-x>s ডিফল্টরূপে ম্যাপ করা হয়। <C-q>আপনি যদি <C-s>দুর্ঘটনাক্রমে চাপ দেন তবে আউটপুট চালিয়ে যেতে ব্যবহার করুন । আপনি <C-s>যদি এটি ব্যবহার না করেন তবে আপনি অক্ষম করতে পারেন ( এই প্রশ্নটি দেখুন )। আপনি যদি জিভিম ব্যবহার করে থাকেন তবে আপনি এটিকে এড়িয়ে যেতে পারেন।

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