ভিম, প্রসঙ্গে-সংবেদনশীল মন্তব্য / অসম্পূর্ণ আচরণ


9

আমি ভিমের সাথে অনেকগুলি পিএইচপি কোড সম্পাদনা করি এবং আমি আমার কিছু ম্যাক্রো সহ একটি ছিনতাই করতে চলেছি .vimrc

আমি বর্তমানে এই দুটি ম্যাক্রো সি-স্টাইলে মন্তব্য / অসন্তুষ্ট করতে ব্যবহার করি

"c-style (//) comment (press the [.] key)
au FileType php vnoremap . :s/^\(\s*\)\(.\+\)$/\1\/\/\2/<CR>:noh<CR>gv
"c-style (//) uncomment (press the [,] key)
au FileType php vnoremap , :s/^\(\s*\)\/\//\1/<CR>:noh<CR>gv

এবং এই দুটি এইচটিএমএল-স্টাইলে মন্তব্য / অসন্তুষ্ট করতে

"html-style (<!-- -->) comment (press the [.] key)
au FileType html vnoremap . :s/^\(\s*\)\(.\+\)$/\1<!-- \2 -->/g<CR>:noh<CR>gv
"html-style (<!-- -->) uncomment (press the [,] key)
au FileType html vnoremap , :s/^\(\s*\)<!-- \(.*\) -->/\1\2/g<CR>:noh<CR>gv

এই ম্যাক্রোগুলি তাদের উদ্দেশ্যযুক্ত ফাইল-টাইপের ক্ষেত্রে প্রয়োগ করার সময় সূক্ষ্মভাবে কাজ করে, তবে যেহেতু প্রায়শই এইচটিএমএল কোনও পিএইচপি ফাইলের মধ্যে এম্বেড থাকে তাই পিএইচপি মন্তব্য করার স্টাইলটি অকেজো।

ভীমের কোনও পিএইচপি ফাইলের মধ্যে এইচটিএমএল কোডের একটি অংশে কাজ করছে কিনা তা সনাক্ত করার, এবং তারপরে সঠিক মন্তব্য করার আচরণের উপায় আছে কি?

সম্পাদনা: আমি জানি যে আমি নিজেই ফাইল টাইপ সেট করতে পারি এবং এর জন্য প্লাগইন উপলব্ধ রয়েছে, আমি আরও ভাল ম্যাক্রোগুলি লেখার বিষয়ে আরও জানতে চাইছিলাম।


উত্তর:


2

আপনি যা চান তা করার জন্য কোনও ফাংশন লেখার এবং এটিকে আপনার পছন্দের কীগুলি ম্যাপিংয়ের কাছাকাছি আসার কোনও উপায় নেই।

শুরু করার :echo synIDattr(synID(line("."), col("."), 1), "name")জন্য কার্সারের নিচে বর্তমান শব্দের জন্য হাইলাইট গোষ্ঠীর নাম মুদ্রণ করা হবে।

কোন মন্তব্য শৈলী ব্যবহার করবেন তা নির্ধারণ করতে আপনি সেই তথ্যটি ব্যবহার করতে পারেন।

আপনাকে শুরু করার জন্য একটি মোটামুটি উদাহরণ:

function! s:MyComment () range
    for i in range(a:firstline, a:lastline)
        exe "normal " . i . "gg"
        normal ^
        let stuff = synIDattr(synID(line("."), col("."), 1), "name")
        if strpart(stuff, 0, 4) == "html"
            normal I<!-- 
            normal A -->
        else
            normal I//
        endif
    endfor
endfunction
vmap <silent> . :call <SID>MyComment()<CR>

0

আপনি কোন ধরণের মন্তব্যটি ব্যবহার করতে চান তা ম্যানুয়ালি চয়ন করতে স্বীকার করতে পারলে আমি এই পরামর্শটি প্রস্তাব করব ।

আপনার মনে রাখার জন্য 4 টি সমন্বয় হবে:

C-style:
,* comment  
,c uncomment

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