ভিজ্যুয়াল মোডে নির্বাচিত লাইনের একটি সেট কীভাবে মন্তব্য করবেন?


35

ভিজ্যুয়াল মোড নির্বাচিত লাইনে আমি কীভাবে একাধিক মন্তব্য করব? আমি কীভাবে এটিকে ভাষা নির্দিষ্ট করে তুলব?

উদাহরণস্বরূপ, যদি প্রথম 4 টি লাইন নির্বাচন করা হয়:

def foo(a,b):
    for each in (a,b):
        print each
    return a+b
print "2"

একটি কমান্ড / ম্যাক্রোর ক্রিয়াকলাপের ফলে এটি (পাইথনটিতে) হওয়া উচিত:

#def foo(a,b):
#    for each in (a,b):
#        print each
#    return a+b
print "2"

উত্তর:


31

আপনি যদি ভাষা নির্দিষ্ট মন্তব্য করতে চান তবে আপনাকে নারডকমেন্টারের মতো প্লাগইন লাগবে

বিকল্পভাবে, যদিও এটি আপনার প্রকৃত প্রশ্নের উত্তর দেয় না, আপনি বিল্টিন ভিম ক্রিয়া এবং প্রতিটি ভাষার মন্তব্যের অক্ষর সম্পর্কে আপনার জ্ঞান ব্যবহার করতে পারেন ...

বিকল্প # 1: ভি-ব্লকস

  1. :1 Enter (লাইন 1 এ যান)
  2. Ctrl-ভি (ভি-ব্লক মোড)
  3. jjj (আরও 3 লাইন নিচে)
  4. Shift-আই (ব্লকের আগে সন্নিবেশ মোড প্রবেশ করান)
  5. # (একটি '#' )োকান)
  6. Esc (স্বাভাবিক মোডে ফিরে)

বিকল্প # 2: প্রতিস্থাপন

:1,4s/^/#/

ভাঙ্গন:

  1. : প্রাক্তন কমান্ড অনুসরণ
  2. 1,4 1 থেকে 4 পর্যন্ত লাইনে
  3. s বিকল্প
  4. /সাবস্টিটিউশন কমান্ডের টুকরাগুলির জন্য পৃথককারী।
    (আপনি আলাদা আলাদা অক্ষরও ব্যবহার করতে পারেন, যেমন :)
  5. ^ লাইনের শুরু
  6. / বিভাজক
  7. # অজগর জন্য মন্তব্য চরিত্র
  8. / চূড়ান্ত বিভাজক

বিকল্প # 3: ম্যাক্রোর পুনরায় প্রয়োগ ( উত্স )

  1. :1 Enter (লাইন 1 এ যান)
  2. qa(রেজিস্টারে রেকর্ডিং শুরু করুন a)
  3. Shift-আই (লাইনের শুরুতে সন্নিবেশ মোড প্রবেশ করান
  4. # (লাইনের শুরুতে একটি '#' যুক্ত করুন)
  5. Esc (স্বাভাবিক মোডে ফিরে)
  6. q (রেকর্ডিং বন্ধ করুন)

  7. :2,4 normal @a( a2 এবং 4 এর মধ্যে লাইনে নিবন্ধিত ম্যাক্রো পুনরায় চালনা করুন )

    অথবা

    আপনি ভিজ্যুয়াল মোডে লাইনগুলি নির্বাচন করতে পারেন এবং প্রবাহটি :স্বয়ংক্রিয়ভাবে :'<,'>(ভিজ্যুয়াল নির্বাচনের শুরু থেকে শেষ পর্যন্ত একটি রেঞ্জ) পপুলেট করতে পারেন তারপরে টাইপ করুন normal @aএবং হিট Enter( উত্স )।

এখন, যখনই আপনি কিছু লাইন মন্তব্য করতে চান কেবল aসেই লাইনে নিবন্ধিত করতে রেকর্ডকৃত ম্যাক্রোটি আবার চালান :

:9,22 normal @a (comment out lines 9-22)

1
বিকল্প 4: প্লাগইন
কোডি পোল

আমি বুঝতে পারছি না আপনি কেন একক কমান্ডের জন্য ম্যাক্রো ব্যবহার করেন, যখন আপনি :9,22 normal I#আমার উত্তর অনুসারে করতে পারেন ।
বেন

আপনি কেন ব্যবহার করবেন: 1 জিপিটি ব্যবহার করতে পারবেন যখন আপনি জিজি ব্যবহার করতে পারেন?
তনাথ

@ তানাথ প্রথম লাইন থেকে মন্তব্য করা এই উদাহরণের সাথে নির্দিষ্ট ছিল। লেখক যদি 9 থেকে 22 লাইন থেকে মন্তব্য করতে চান তবে তারা জিজি ব্যবহার করতে পারবেন না।
বিএসমিথ 89

@ বেন আমি normalউত্তরটি লেখার আগে কমান্ড সম্পর্কে কিছুই জানতাম না । তুমি ঠিক বলছো; :9,22 normal I#পাশাপাশি কাজ করবে।
বিএসমিথ 89

26

ভিজ্যুয়াল ব্লক মোড ( CtrlV) ব্যবহার করে লাইনের শুরুটি নির্বাচন করুন। তারপরে এই লাইনের প্রতিটিটিতে হ্যাশ অক্ষর সন্নিবেশ করানোর জন্য I#(এটি একটি মূল অক্ষর I) হিট করুন। তারপরে Escসন্নিবেশ মোড থেকে নরমাল মোডে ফিরে আসতে টিপুন ।


এটি আমার পক্ষে কাজ করে না। এটি কেবল প্রথম লাইনে একটি মন্তব্য serোকায়।
gon1332

আপনি কি চাপ দিচ্ছেন ctrl? কারণ ctrl+vশুধু থেকে একটি আলাদা জিনিস v
কোডি পোল

@ কোডিপল আমি জানি সবকিছু ঠিক আছে I। আমি যখন টিপব I, তখন #কেবল প্রথম লাইনের সামনে স্থাপন করা হবে।
gon1332

@ কোডিপল ওকে .. আমি সবেমাত্র রোগী ছিলাম। আমি Escপ্রক্রিয়া বর্ণিত পরে টিপুন না ।
gon1332

@ gon1332 যতদূর আমি জানি আপনার Escশেষে চাপতে হবে।
গোনালো রিবেইরো

18

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

:norm 0i#

কাজ করে (প্রতিটি লাইনের জন্য, সাধারণ মোডে, প্রথম কলামে যান এবং সন্নিবেশ করান #Using :norm I#ব্যবহারটি এটি প্রথম অ-শ্বেতস্পেস অক্ষরের আগে সন্নিবেশ করবে, যা আপনি চান তা নাও পারে)) ব্যবহারটিও :norm i#কাজ করবে, কারণ :normএটি শুরুতে শুরু হয় লাইন, তবে আপনি যদি না জানেন তবে এটি কম স্পষ্ট এবং কম স্পষ্ট।

অবশ্যই, আপনি যদি এটি ঘন ঘন করতে চান, আপনি ম্যাপিং সেট আপ করতে পারেন বা একটি প্লাগইন সন্ধান করতে চান।


1
0 ডিফল্টরূপে প্রয়োজন হয় না, normalলাইন শুরুর দিকে কমান্ড কার্সার দিয়ে কার্যকর করা হয়।
নীতিশ

1
কোর্সের, লাইন নম্বর,%, চিহ্ন এই কমান্ডের সাথে উপসর্গ করা যেতে পারে। উদাহরণ: 1,5norm i # (বা): 'a,' bnorm i # (বা): 10% আদর্শ আমি #
সিবিকোডার

9

এটি স্বয়ংক্রিয়ভাবে করার জন্য আপনার vimrcফাইল ( উত্স ) এ নিম্নলিখিতগুলির মতো কিছু যুক্ত করতে হবে :

au FileType haskell,vhdl,ada let b:comment_leader = '-- '
au FileType vim let b:comment_leader = '" '
au FileType c,cpp,java let b:comment_leader = '// '
au FileType sh,make let b:comment_leader = '# '
au FileType tex let b:comment_leader = '% '
noremap <silent> ,c :<C-B>sil <C-E>s/^/<C-R>=escape(b:comment_leader,'\/')<CR>/<CR>:noh<CR>
noremap <silent> ,u :<C-B>sil <C-E>s/^\V<C-R>=escape(b:comment_leader,'\/')<CR>//e<CR>:noh<CR>

,cএকটি অঞ্চলে মন্তব্য করতে এবং ,uএকটি অঞ্চলকে অস্বস্তিতে ব্যবহার করে । এটি ম্যানুয়ালি বিভিন্ন ভাষার জন্য মন্তব্য প্রতীকগুলি সেট করে।

দ্বিতীয় বিকল্প মত একটি প্লাগইন ব্যবহার করা tcomment , তেজ-ভাষ্য বা comments.vim । আমি নিজে টিকমেন্ট ব্যবহার করি। দয়া করে, তাদের পৃষ্ঠাগুলিতে ব্যবহার এবং ইনস্টলেশনের নির্দেশাবলীটি পড়ুন, কারণ আমি প্রশ্নটির বিষয়বহির্ভূত that's

আমি আপনাকে পরামর্শ দিচ্ছি যে আপনি একটি প্লাগিন ব্যবহার করুন (উপরে বা অন্যটির সাথে সংযুক্ত একটি) কারণ এটি আপনার vimrcফাইলে কোডের একটি অংশ বজায় রাখার চেয়ে অনেক সহজ ।

সম্পাদনা করুন: প্রশ্নটি পরিবর্তিত হওয়ার সাথে সাথে আমি ম্যানুয়াল পদ্ধতিটি সরিয়েছি এবং 200_success দ্বারা সঠিক উপায়ে উত্তর দেওয়া হয়েছিল।


একটি অতিরিক্ত প্লাগইন পরামর্শ:
এনইআরডি

দ্রষ্টব্য: এটি কেবল লাইনওয়াইজ মন্তব্যগুলিকে সমর্থন করে। উদাহরণস্বরূপ, এএনএসআই সি স্বীকৃতি দেয় না //(কেবল /* */)।
wchargin

আমি এই পদ্ধতির পছন্দ করার সময়, এটি টগল মন্তব্য করার কোন উপায় আছে?
ধারণাগুলি 42

1
@ ধারণাগুলি 42 আপনি পরিবর্তে একটি ফাংশন তৈরি করতে হবে এবং বর্তমান লাইনটি কোনও মন্তব্য দিয়ে শুরু হয়েছে কিনা তা পরীক্ষা করে দেখতে হবে এবং তারপরে :sউত্তরের অংশে প্রদর্শিত কমান্ডগুলির মধ্যে যে কোনও একটিই কলটির উপর নির্ভর করবে। চেক নিজেই কিছু হবে getline('.') =~ "^" . escape(b:comment_leader, '\/')। যদি এটি সত্যিকারের অসাধারণ, অন্যথায় মন্তব্য করুন। এটি পরীক্ষা করা হয় না এবং এটি কেবল উদাহরণ হিসাবে পরিবেশন করা উচিত।
টোকোয়ামি

5

আমি এর জন্য স্ক্রলুজ / নারডকমেন্টার ব্যবহার করি

এই প্লাগইনটির সাহায্যে আপনি আপনার লাইনগুলি ভিজ্যুয়াল নির্বাচন করতে পারবেন এবং মন্তব্যগুলিতে টগল করতে leader+ cটিপুন। ফাইলের ধরণের উপর নির্ভর করে এটি মন্তব্য করার জন্য বিভিন্ন চিহ্ন ব্যবহার করবে।


5

আপনি লাইনগুলি নির্বাচন করার পরে, কেবল টাইপ করুন

:norm I#

:স্বয়ংক্রিয়ভাবে '<,'>আপনার কমান্ড লাইনে লাগিয়ে দেবে, এটি আপনার নির্বাচনের শুরু থেকে শেষ অবধি; normএকটি সাধারণ মোড কমান্ড কার্যকর করে এবং এই ব্যাপ্তিতে কাজ করবে; I#সাধারণ মোড কমান্ডটি যা লাইনের শুরুতে একটি '#' সন্নিবেশ করে।


4

আমি এর জন্য টিকমেন্টের একটি বড় অনুরাগী ; আমি কেবল ফাইলের টাইপ নির্দিষ্ট মন্তব্যের স্টাইলই করতে পারি না, এমনকি ব্লক মন্তব্যগুলিকে সমর্থন করে এমন ভাষাগুলির জন্য প্রতি লাইনে ব্লক বনাম নির্দিষ্ট করে দিতে পারি।

    gc{motion}   :: Toggle comments (for small comments within one line 
                    the &filetype_inline style will be used, if 
                    defined)
    gcc          :: Toggle comment for the current line

Explicit commenting/uncommenting:

    g<{motion}   :: Uncomment region
    g<c          :: Uncomment the current line
    g<b          :: Uncomment the current region as block

    g>{motion}   :: Comment region
    g>c          :: Comment the current line
    g>b          :: Comment the current region as block

In visual mode:

    gc           :: Toggle comments
    gC           :: Comment selected text

আপনার উত্তরের জন্য ধন্যবাদ! আপনি সম্ভবত এটি প্রসারিত করতে পারেন? প্লাগইন-উত্তর সরবরাহ করা ভাল, তবে এখনই এটি একটি প্লাগইনের কেবলমাত্র লিঙ্ক। খুব কমপক্ষে, এটি কী করে এবং এটি কীভাবে ব্যবহার করবে তার একটি প্রাথমিক বিবরণ উত্তরে প্রত্যাশিত। এছাড়াও এই মেটা পোস্ট দেখুন
মার্টিন টর্নয়েজ

কী-বাইন্ডগুলি অনুলিপি / পেস্ট করতে বোকামি মনে হয় তবে আপনি সেখানে যান; আমি এটি ইতিমধ্যে বর্ণনা করেছি।
কলিন গ্র্যাডি

3

আমি খুঁজে পাই ভিম-কমেন্টারি প্লাগইন এটি করার সহজতম উপায় এবং দূরত্বে। বিভিন্ন রেখার সীমা নির্বাচন করুন, তারপরে কেবল হিট করুন gc। এটি আপনার খোলার ফাইল টাইপের জন্য উপযুক্ত মন্তব্য করার অক্ষর ব্যবহার করবে। এটা দিয়ে uncomment সংলগ্ন মন্তব্য লাইনে কোন চাক্ষুষ নির্বাচন ছাড়া এমনকি সম্ভব gcuবা gcgc


2

ধরে নিই যে আপনি লাইনের শুরুতে 5 টি লাইনে উপসর্গ যুক্ত করতে চান, তারপরে আপনি অনুসন্ধান এবং প্রতিস্থাপন করতে পারেন :

:.,+5s/^/prefix_/g

বা লাইনের শেষে:

:.,+5s/$/suffix_/g

অথবা পাঠ্যের উল্লম্ব ব্লকটি নির্বাচন করতে ভিজ্যুয়াল মোড ( Ctrl+ v) ব্যবহার করুন, তারপরে সন্নিবেশ মোডটি প্রবেশ করুন ( I) এবং কিছু টাইপ Escকরুন এবং অন্যান্য লাইনে পরিবর্তনগুলি নিশ্চিত করতে এবং প্রয়োগ করতে টিপুন ।

সম্পর্কিত:


2

এই উত্তরটি একটি পেস্ট সঠিক কোড প্রদর্শিত 1 করার জন্য এখানে) হল .vimrcপেতে vim 7.4+মন্তব্য / যখন চাক্ষুষ মোডে 1 শর্টকাট এবং 2) সঙ্গে খাঁজের স্তর পালন এটা ব্যাখ্যা করার uncommenting ব্লক না।

কোডটি এখানে:

let b:commentChar='//'
autocmd BufNewFile,BufReadPost *.[ch]    let b:commentChar='//'
autocmd BufNewFile,BufReadPost *.cpp    let b:commentChar='//'
autocmd BufNewFile,BufReadPost *.py    let b:commentChar='#'
autocmd BufNewFile,BufReadPost *.*sh    let b:commentChar='#'
function! Docomment ()
  "make comments on all the lines we've grabbed
  execute '''<,''>s/^\s*/&'.escape(b:commentChar, '\/').' /e'
endfunction
function! Uncomment ()
  "uncomment on all our lines
  execute '''<,''>s/\v(^\s*)'.escape(b:commentChar, '\/').'\v\s*/\1/e'
endfunction
function! Comment ()
  "does the first line begin with a comment?
  let l:line=getpos("'<")[1]
  "if there's a match
  if match(getline(l:line), '^\s*'.b:commentChar)>-1
    call Uncomment()
  else
    call Docomment()
  endif
endfunction
vnoremap <silent> <C-r> :<C-u>call Comment()<cr><cr>

কিভাবে এটা কাজ করে:

  • let b:commentChar='//': এটি ভিমে একটি পরিবর্তনশীল তৈরি করে। bএখানে সুযোগ, যা এই ক্ষেত্রে বাফার অন্তর্ভুক্ত করা হয়, বর্তমানে খোলা ফাইল অর্থ বোঝায়। আপনার মন্তব্যের অক্ষরগুলি স্ট্রিং এবং কোটগুলিতে মুড়ে ফেলা দরকার, টোটাল টগল করার সময় কোটগুলি কী পরিমাণে প্রতিস্থাপন করা হবে তার অংশ নয়।

  • autocmd BufNewFile,BufReadPost *...: স্বতঃশব্দগুলি বিভিন্ন জিনিসে ট্রিগার করে, এক্ষেত্রে নতুন ফাইল বা পঠন ফাইলটি নির্দিষ্ট এক্সটেনশনের সাথে শেষ হলে এগুলি ট্রিগার হয়। একবার ট্রিগার হয়ে গেলে, নিম্নলিখিত কমান্ডটি কার্যকর করুন যা আমাদের commentCharফাইল টাইপের উপর নির্ভর করে পরিবর্তন করতে দেয় । এটি করার অন্যান্য উপায় রয়েছে তবে তারা নবীনদের (আমার মতো) আরও বিভ্রান্তিকর।

  • function! Docomment(): ফাংশনগুলি শুরু করে functionএবং শেষ করে ঘোষণা করা হয় endfunction। কার্যাদি একটি মূলধন দিয়ে শুরু করা উচিত। !নিশ্চিত করে যে এই ফাংশন পূর্ববর্তী কোনো ফাংশন হিসাবে সংজ্ঞায়িত মুছে ফেলা হয় Docomment()এর এই সংস্করণের সাথে Docomment()। ছাড়া !, আমার ত্রুটি ছিল, তবে এটি সম্ভবত কারণ আমি ভিএম কমান্ড লাইনের মাধ্যমে নতুন ফাংশনগুলি সংজ্ঞায়িত করছি।

  • execute '''<,''>s/^\s*/&'.escape(b:commentChar, '\/').' /e': এক্সিকিউট একটি কমান্ড কল। এই ক্ষেত্রে, আমরা সম্পাদন করছি substitute, যা %পুরো বাফার বা '<,'>হাইলাইটেড বিভাগের জন্য (পূর্বনির্ধারিতভাবে এটি বর্তমান লাইনটি) একটি পরিসর নিতে পারে । ^\s*রেগেক্সটি কোনও লাইন শুরুর সাথে মিলে যায় তার পরে কোনও পরিমাণ শ্বেতস্পেস, যা এরপরে যুক্ত হয় (কারণে &)। .এখানে স্ট্রিং সংযুক্তকরণের জন্য ব্যবহৃত যেহেতু হয় escape()করতে পারেন কোট আবৃত না। escape()এর সাথে আপনাকে প্রিন্ট করে commentCharআর্গুমেন্টগুলি (এই ক্ষেত্রে \এবং /) এর সাথে মিল রেখে চরিত্রের হাত থেকে বাঁচতে দেয় \। এর পরে, আমরা আমাদের substituteস্ট্রিংয়ের সমাপ্তি নিয়ে আবারও সম্মতি জানাই , যা রয়েছেeপতাকা। এই পতাকাটি আমাদের নিঃশব্দে ব্যর্থ হতে দেয়, এর অর্থ হ'ল যদি আমরা একটি প্রদত্ত লাইনে কোনও মিল খুঁজে না পাই তবে আমরা এটির জন্য চিৎকার করব না। সামগ্রিকভাবে, এই লাইনটি প্রথম পাঠ্যের ঠিক আগে একটি স্থানের পরে একটি মন্তব্য চরিত্র রাখতে দেয়, যার অর্থ আমরা আমাদের ইনডেন্টেশন স্তরটি রেখেছি।

  • execute '''<,''>s/\v(^\s*)'.escape(b:commentChar, '\/').'\v\s*/\1/e': এটি আমাদের শেষ বিশাল দীর্ঘ কমান্ডের অনুরূপ। এটির সাথে অনন্য, আমাদের রয়েছে \v, যা নিশ্চিত করে যে আমাদের পালাতে হবে না ()এবং 1যা আমাদের সাথে তৈরি গ্রুপকে বোঝায় ()। মূলত, আমরা এমন একটি লাইনের সাথে মিলছি যা কোনও পরিমাণ শ্বেতস্পেসের সাথে শুরু হয় এবং তারপরে আমাদের মন্তব্য চরিত্রের পরে কোনও পরিমাণ শ্বেতস্পেস থাকে এবং আমরা কেবল সাদা স্থানটির প্রথম সেট রাখছি। আবার, eআমাদের যদি সেই লাইনে কোনও মন্তব্য চরিত্র না থাকে তবে আমাদের নিঃশব্দে ব্যর্থ হতে দিন।

  • let l:line=getpos("'<")[1]: এটি আমাদের মতামত চরিত্রের মতো অনেকটা পরিবর্তনশীল সেট lকরে তবে স্থানীয় সুযোগকে বোঝায় (এই ফাংশনের স্থানীয়)। getpos()এক্ষেত্রে আমাদের হাইলাইটিংয়ের শুরু এবং এর অবস্থানটি পায় যা [1]আমরা কেবল লাইন নম্বর সম্পর্কেই যত্ন করি, কলামের সংখ্যার মতো অন্যান্য জিনিস নয়।

  • if match(getline(l:line), '^\s*'.b:commentChar)>-1: আপনি জানেন কিভাবে ifকাজ করে। match()প্রথম জিনিসটিতে দ্বিতীয় জিনিস রয়েছে কিনা তা যাচাই করে, সুতরাং আমরা যে লাইনটি আমাদের হাইলাইটিং শুরু করেছি তা ধরলাম এবং এটি আমাদের মন্তব্য চরিত্রের পরে হোয়াইটস্পেস দিয়ে শুরু হয় কিনা তা পরীক্ষা করে দেখুন। match()সূচিটি যেখানে এটি সত্য, এবং -1যদি কোনও মিল খুঁজে পাওয়া যায় নি returns যেহেতু ifসমস্ত নঞ্জেরো সংখ্যাটি সত্য বলে মূল্যায়ন করে, আমাদের আউটপুটটি -1 এর চেয়ে বেশি কিনা তা দেখতে আমাদের তুলনা করতে হবে। vimরিটার্নের তুলনায় 0 টি মিথ্যা হলে এবং 1 টি যদি সত্য হয়, যা ifসঠিকভাবে মূল্যায়ন করতে দেখতে চায়।

  • vnoremap <silent> <C-r> :<C-u>call Comment()<cr><cr>: এর vnoremapঅর্থ নীচের কমান্ডটি ভিজ্যুয়াল মোডে মানচিত্র করুন, তবে এটিকে পুনরাবৃত্তভাবে মানচিত্র করবেন না (অর্থাত্ কোনও উপায় যা অন্য উপায়ে ব্যবহার করতে পারে তা পরিবর্তন করবেন না)। মূলত, আপনি যদি কোনও ভিম ​​আভিজাত্য হন তবে সর্বদা noremapআপনার জিনিসগুলি ভঙ্গ করবেন না তা নিশ্চিত করার জন্য ব্যবহার করুন । <silent>এর অর্থ "আমি আপনার শব্দগুলি চাই না, কেবল আপনার ক্রিয়াকলাপ" এবং কমান্ড লাইনে কোনও কিছু না প্রিন্ট করতে বলে। <C-r>এই জিনিসটি আমরা ম্যাপ করছি, যা এই ক্ষেত্রে সিটিআরএল + আর (নোট করুন যে আপনি এখনও এই ম্যাপিংটি দিয়ে সাধারণ মোডে "redo" এর জন্য সিআর সাধারণভাবে ব্যবহার করতে পারেন)। C-uবিভ্রান্তিকর, তবে মূলত এটি নিশ্চিত করে যে আপনি আপনার ভিজ্যুয়াল হাইলাইটিংয়ের ট্র্যাকটি হারাবেন না ( এই উত্তর অনুসারে এটি আপনার আদেশটি শুরু করে '<,'>যা আমরা যা চাই তা দিয়ে শুরু করে )।callএখানে কেবল আমাদের নামকরণ করা ফাংশনটি কার্যকর করতে ভিমকে বলে এবং বাটনটি <cr>আঘাত করা বোঝায় enter। আমাদের ফাংশনটি কল করতে একবার এটি আঘাত করতে হবে (অন্যথায় আমরা call function()কমান্ড লাইনে সবেমাত্র টাইপ করেছি এবং আমাদের বিকল্পগুলি সমস্ত পথ দিয়ে যেতে পেতে এটি পুনরায় আঘাত করতে হবে (কেন তা নিশ্চিত নয় তবে কেন যাই হোক না কেন)।

যাইহোক, আশা করি এটি সাহায্য করবে। এই দিয়ে হাইলাইট কিছু লাগবে v, Vঅথবা C-v, চেক যদি প্রথম লাইন মন্তব্য করা হয়, হ্যাঁ হলে, সব হাইলাইট লাইন uncomment চেষ্টা করে, এবং যদি না, প্রতিটি লাইনে মন্তব্য অক্ষরের একটি অতিরিক্ত স্তর যোগ করুন। এটি আমার কাঙ্ক্ষিত আচরণ; আমি চাইনি যে এটি ব্লগের প্রতিটি লাইন মন্তব্য করা হয়েছে কিনা তা টগল করতে চাই না, তাই বিষয়টিতে একাধিক প্রশ্ন জিজ্ঞাসা করার পরে এটি আমার পক্ষে নিখুঁতভাবে কাজ করে।

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