ভিমে পাইথন কোডের একটি ব্লক কীভাবে মন্তব্য করবেন


186

আমি ভাবছিলাম যে আমাকে কিছু নির্দিষ্ট লাইন কোডের ইনডেন্ট করার অনুমতি দেওয়ার জন্য ভিমে কোনও কী ম্যাপিং ছিল কিনা (সেই লাইনগুলি ভিজ্যুয়াল মোডে নির্বাচন করা হয়েছে, বা বর্তমান কার্সারের অবস্থানের উপরে / নীচে এন লাইন আছে)।

সুতরাং মূলত এমন কিছু যা নিম্নলিখিতগুলিকে রূপান্তর করে

def my_fun(x, y):
    return x + y

প্রতি

#def my_fun(x, y):
#    return x + y

আমি উভয় ব্যবহার করে #বা """প্রাসঙ্গিক লাইন মন্তব্য করার জন্য ঠিক আছি । আদর্শভাবে, আমি একই কীম্যাপিংটিও চাই লাইনগুলিকে সংঘাতবদ্ধ করতে যদি দেওয়া লাইনগুলি মন্তব্য করা থাকে mented


চাকাটি পুনরায় উদ্ভাবনের দরকার নেই, একটি প্লাগইন রয়েছে: আপনার জন্য টিকমেন্ট , যা একাধিক ভাষার জন্য কমেন্ট কোডকে সমর্থন করে (আন)।
মায়ো

উত্তর:


411

পদক্ষেপ 1: আপনি মন্তব্য করতে চান প্রথম লাইনের প্রথম কলামে যান।

প্রারম্ভিক অবস্থা

পদক্ষেপ 2: টিপুন: Ctrl+ vএবং আপনি যে লাইনে মন্তব্য করতে চান তা নির্বাচন করুন:

লাইন নির্বাচন করুন

পদক্ষেপ 3: Shift - I#space(সন্নিবেশ-এ-বাম মোডে প্রবেশ করুন, সন্নিবেশ করতে অক্ষর লিখুন selection

মন্তব্য

পদক্ষেপ 4: Esc

<Esc চাপুন>


4
লাইনগুলি এভাবে মন্তব্য করা দুর্দান্ত কাজ করে। এই লাইনগুলি uncomment করার কোন উপায় আছে? Shift-I # <ESC>কাজ হয়নি (সম্ভবত আমি এটি ভুল করছি)।
habষভ মনোচা

41
@ রিশাভ-মনোচা: সমস্ত যোগ করা # টি নির্বাচন করতে ভিজ্যুয়াল ব্লক (Ctrl-V) ব্যবহার করুন এবং তাদের মুছতে এক্স টাইপ করুন।
থিসোপস

3
আপনি মনে রাখতে হবে যে শিফট -১ এর অর্থ "লাইনের প্রথম অ-ফাঁকা জায়গায় সন্নিবেশ করা", সুতরাং এটি মুছতে ব্যবহার করা যাবে না। সিটিআরএল-ভি দিয়ে ভিজ্যুয়াল নির্বাচন করা চরিত্রগুলিকে সংশোধন করার জন্য চিহ্নিত করে, তারপরে "x" নির্বাচিত অঞ্চলে একটি অক্ষর মুছে ফেলে, শেষ পর্যন্ত '#' অক্ষর মুছবে। আরও তথ্যের জন্য ": h I" এবং ": h CTRL-V" দেখুন im
টিন ম্যান

5
@ সমরসা সিটিআরএল-ভি সম্ভবত উইন্ডোজে কাজ করছে না। পরিবর্তে Ctrl-Q ব্যবহার করে দেখুন।
এজেড

1
২ টি অক্ষর মুছতে (যদি আপনি '#' inোকান), আপনি যে শীর্ষ লাইনটি সংশোধন করতে চান তার উপরের কার্সারটি সনাক্ত করুন, ভিজ্যুয়াল ব্লক মোডে প্রবেশ করতে ctrl-v টিপুন, সংশোধন করতে সমস্ত লাইন হাইলাইট করতে j (বা নীচে তীর) টিপুন, টিপুন l (বা ডান তীর) 2-চার প্রস্থ হাইলাইট করতে (হাইলাইট করতে প্রতি কলামে একবার টিপুন), এবং তারপরে হাইলাইট করা পাঠ্য মুছতে d টিপুন।
থিংম্যাসিভ

72

একটি উপায় ম্যানুয়ালি

:set number
:10,12s/^/#

4
আপনি কিভাবে তাদের অপসারণ করবেন?
চার্লি পার্কার

15
@ চর্লিপার্কার::10,12s/^#//
বিএসপিপিরে

1
প্রাক্তন উত্তরের জন্য
থাম্বস

এটি ইনডেন্টেড কোডের জন্য কাজ করে না
অ্যান্ড্রেস পেরেজ-আলবেলা এইচ।

49

আপনি .vimrc এ নিম্নলিখিত ম্যাপিংটি যুক্ত করতে পারেন

vnoremap <silent> # :s/^/#/<cr>:noh<cr>
vnoremap <silent> -# :s/^#//<cr>:noh<cr>

এর সাথে আপনার ব্লকটি হাইলাইট করুন:

Shift+v

# প্রথম কলাম থেকে আপনার লাইন মন্তব্য করতে।

-# একইভাবে uncomment করতে।


5
সরল উজ্জ্বল! তোমাকে ধন্যবাদ!
I159

1
@ আর্কিটেকটোনিকের কোনও প্রভাব নেই যদি না আপনি ভিজ্যুয়াল মোডে থাকেন এবং '#' ভিজ্যুয়াল মোডে আনবাউন্ড না হয় vimdoc.sourceforge.net/htmldoc/visual.html#visual-operators
২০১15

1
আমি কিছুটা পরিবর্তন করেছি: মন্তব্যের জন্য Ctrl + k "vnoremap <silent> <Ck>: s # ^ # \ ## <cr>: noh <cr>"> Ctrl + u আপত্তিহীনতার জন্য: "ভেনোরম্যাপ <সাইলেন্ট> <সিউ >: এস # ^ \ ### <cr>: নো <সিআর> "
প্রদীপ দাস

1
@ জোনাথান হার্টলি আপনি এই ক্ষেত্রে '/' ব্যবহার করতে হবে না '#' হ'ল ডিলিমিটার। সুতরাং: s / ^ / # / এবং: s / ^ # // সমতুল্য বিকল্প হয়। সুতরাং '#' দিয়ে লাইনের শুরুটি প্রতিস্থাপন করুন এবং '#' এর সাথে প্রথম কলামে '' দিয়ে প্রতিস্থাপন করুন। <ক্রিম: নো <সিআর> কেবল অনুসন্ধান স্ট্রিং সাফ করে তাই আপনার কাজ শেষ হয়ে গেলে কিছুই হাইলাইট না হয়ে যায়।
শে

1
@ জোনাথান হার্টলি সত্যই আমার কাছে মনে হয় আমি কেবল একটি প্যাটার্নটি অনুসরণ করেছি এটি সম্পর্কে চিন্তা না করেই। এখন আমি অবাক হয়েছি # বনাম / তাড়াতাড়ি আসেনি। সাধারণ জ্ঞানের ভিত্তিতে উত্তর পরিবর্তন করা হয়েছে। ধন্যবাদ!
সিডি

26

এর সাথে আপনার ব্লকটি হাইলাইট করুন: ShiftV

এর সাথে নির্বাচিত ব্লকটি মন্তব্য করুন: :norm i# (লোয়ার কেস আই)

কোনও অসুবিধা না করতে, আপনার ব্লকটি আবার হাইলাইট করুন এবং এর সাথে আপত্তিহীন করুন: :norm ^x

:normকমান্ড প্রত্যেক নির্বাচিত লাইন জন্য একটি অ্যাকশন সম্পাদন করে। মন্তব্য করা #প্রতিটি লাইনের শুরুতে একটি সন্নিবেশ করিয়ে দেবে, এবং অস্বস্তিকর বিষয়টি মুছে ফেলবে #


একটি আপ-টু-ডেট ভিম এবং একটি সরল কনফিগারেশনের সাহায্যে ভিজ্যুয়াল মোডে লাইন নির্বাচন করা (সহ Shift+v) এবং তারপরে :norm i#কেবলমাত্র প্রথম নির্বাচিত লাইন পরিবর্তন করে। এটি আমার পক্ষে 389 থেকে 391 লাইনগুলিতে মন্তব্য করতে কাজ করে::389,391norm i #
মেল

22

আমি সাধারণত একটি ভিজ্যুয়াল ব্লক ( <C-V>) পরিষ্কার করি, তারপরে প্রথম অক্ষরটি অনুসন্ধান এবং প্রতিস্থাপন করুন:

:'<,'>s/^/#

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

:'<,'>s/^#//


9

আমার মধ্যে নিম্নলিখিত লাইনগুলি রয়েছে .vimrc:

" comment line, selection with Ctrl-N,Ctrl-N
au BufEnter *.py nnoremap  <C-N><C-N>    mn:s/^\(\s*\)#*\(.*\)/\1#\2/ge<CR>:noh<CR>`n
au BufEnter *.py inoremap  <C-N><C-N>    <C-O>mn<C-O>:s/^\(\s*\)#*\(.*\)/\1#\2/ge<CR><C-O>:noh<CR><C-O>`n
au BufEnter *.py vnoremap  <C-N><C-N>    mn:s/^\(\s*\)#*\(.*\)/\1#\2/ge<CR>:noh<CR>gv`n

" uncomment line, selection with Ctrl-N,N
au BufEnter *.py nnoremap  <C-N>n     mn:s/^\(\s*\)#\([^ ]\)/\1\2/ge<CR>:s/^#$//ge<CR>:noh<CR>`n
au BufEnter *.py inoremap  <C-N>n     <C-O>mn<C-O>:s/^\(\s*\)#\([^ ]\)/\1\2/ge<CR><C-O>:s/^#$//ge<CR><C-O>:noh<CR><C-O>`n
au BufEnter *.py vnoremap  <C-N>n     mn:s/^\(\s*\)#\([^ ]\)/\1\2/ge<CR>gv:s/#\n/\r/ge<CR>:noh<CR>gv`n

শর্টকাটগুলি আপনার কার্সার অবস্থান এবং আপনার মন্তব্যগুলি যতক্ষণ না তারা শুরু করবে সংরক্ষণ করবে #(# এর পরেও জায়গা আছে)। উদাহরণ স্বরূপ:

# variable x
x = 0

মন্তব্য করার পরে:

# variable x
#x = 0

উদ্বেগের পরে:

# variable x
x = 0

ভাল লাগছে, তবে আমি মনে করি আপনি সরল s/^/#/রেজিএক্সপ্যাক্স ব্যবহার করে ভাল হবেন । আমি লাইনের শুরুতে মন্তব্যের চরিত্রটি উপস্থিত হওয়া পছন্দ করি ... তবে আরও গুরুত্বপূর্ণ বিষয়, 'মন্তব্য মন্তব্য করা' সত্যই বরং গুরুত্বপূর্ণ। আমি এগুলিও ফেলে দেব au BufEnter *.py, যেহেতু #সমস্ত বাফারে ডিফল্টরূপে আদেশগুলি ব্যবহার করার জন্য মন্তব্যগুলি যথেষ্ট সাধারণ।
travc

5

সত্যি বলতে আমি সেই লিঙ্কটির জন্য একটি টিকমেন্ট প্লাগইন ব্যবহার করি । এটি প্রায় প্রতিটি সিনট্যাক্স পরিচালনা করতে পারে। এটি দুর্দান্ত চলনগুলি সংজ্ঞায়িত করে, পাইথনের জন্য নির্দিষ্ট কিছু পাঠ্য ব্লক ম্যাথার ব্যবহার করে এটি একটি শক্তিশালী সরঞ্জাম হিসাবে তৈরি করে।


5

NERDcommenter মন্তব্য করার জন্য একটি দুর্দান্ত প্লাগইন যা স্বয়ংক্রিয়ভাবে বেশ কয়েকটি ফাইল টাইপ এবং তাদের সম্পর্কিত মন্তব্য অক্ষর সনাক্ত করে। হাস্যকরভাবে প্যাথোজেন ব্যবহার করে ইনস্টল করা সহজ

সাথে মন্তব্য করুন <leader>cc। সাথে অনর্থক <leader>cu। এবং সাথে মন্তব্য টগল করুন<leader>c<space>

( <leader>ভিমেতে ডিফল্ট কীটি হ'ল \)


3

ভিমের জন্য প্রচুর মন্তব্য প্লাগইন রয়েছে - যার মধ্যে অনেকগুলি বহু ভাষা রয়েছে - কেবল অজগর নয়। আপনি যদি ভান্ডলের মতো কোনও প্লাগইন ম্যানেজার ব্যবহার করেন তবে আপনি তাদের ব্যবহার করে (একবার আপনি ভন্ডল ইনস্টল করার পরে) উদাহরণস্বরূপ ব্যবহার করতে পারেন:

:PluginSearch comment

এবং আপনি ফলাফলের একটি উইন্ডো পাবেন। বিকল্পভাবে আপনি মন্তব্য প্লাগইনগুলির জন্য কেবল ভিএম-স্ক্রিপ্টগুলি অনুসন্ধান করতে পারেন ।


3

কোনও প্লাগইন বা ম্যাপিংয়ের প্রয়োজন নেই। অন্তর্নির্মিত "আদর্শ" কমান্ডটি ব্যবহার করে দেখুন, যা প্রতিটি নির্বাচিত লাইনে আক্ষরিক অর্থে আপনার পছন্দসই কিছু কার্যকর করে।

# মন্তব্য যুক্ত করুন

1. shift V to visually select lines
2. :norm i#

# মন্তব্য সরান

1. visually select region as before
2. :norm x

অথবা আপনার মন্তব্যগুলি ইন্টেন্টেড থাকলে আপনি এটি করতে পারেন :norm ^x

লক্ষ্য করুন যে এটি প্রতিটি সাধারণ লাইনে কমান্ডের আগে প্রতিটি লাইনে তাদের সম্পাদন করার জন্য ": আদর্শ" দ্বারা চালিত হয়।

"উত্তম" কমান্ডটি ব্যবহারের জন্য আরও একটি উত্তরের উত্তর এখানে

ভিমে মন্তব্য / অসম্পূর্ণ লাইনগুলির দ্রুত উপায় কী?


1

একটি খুব ন্যূনতম হালকা ওজনের প্লাগইন : ভিএম-মন্তব্য।

gcc একটি লাইন মন্তব্য
gcgcঅস্বস্তিতে মন্তব্য। আরও জন্য প্লাগইন পৃষ্ঠা দেখুন।

v+k/jব্লকটি হাইলাইট করুন তারপর ব্লকটি gccমন্তব্য করুন।


0

CtrlK মন্তব্যের জন্য (ভিজ্যুয়াল মোড):

vnoremap <silent> <C-k> :s#^#\##<cr>:noh<cr>

CtrlU অসচ্ছলতার জন্য (ভিজ্যুয়াল মোড):

vnoremap <silent> <C-u> :s#^\###<cr>:noh<cr>
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.