এর আগের মানটিতে একটি চিহ্ন সেট করুন


9

মাঝে মাঝে আমি চিহ্ন ব্যবহার ব্যবহার করে বিভিন্ন ফাইল মাধ্যমে সহজে নেভিগেট করতে mA, mB... আর 'A, 'B...

এবং একসময় (আমি প্রায়শই স্বীকার করতে চাইছি) অযত্নের কারণে বা কারণ যা-ই হোক না কেন, আমি m[LETTER]ইতিমধ্যে বিদ্যমান চিহ্নটি ব্যবহার করি যা যখন না চাইলে এর পূর্ববর্তী মান মুছে দেয়। বেশিরভাগ সময় আমি যখন এটি করি তখন আমার কাছে চিহ্নটি চিহ্নিত করে ফাইলটি খোলা থাকে না।

এই ক্ষেত্রে আমি যখন তাত্ক্ষণিকভাবে বুঝতে পেরেছিলাম যে আমি একটি ভুল করে ফেলেছি তখন আমার চিহ্নের পূর্ববর্তী মানটি যেখানে এটি ইঙ্গিত করেছিল তা স্মরণ করা, এই স্থানে নেভিগেট করে আবার সেট করা ছাড়া কী পাওয়া সম্ভব?

আমি ডকটিতে এর মতো কোনও আদেশ পাইনি তাই যদি এটির অস্তিত্ব না থাকে তবে আপনারা কেউ কেউ এই পরিস্থিতিতে ব্যবহার করেন এমন কোনও চৌকস কাজ আছে?


1
এছাড়াও আপনি আরও তথ্যের জন্য এই পোস্টটি দেখতে পারেন: superuser.com
প্রশ্নগুলি

@ নোব 4 আপনার লিঙ্কের জন্য ধন্যবাদ আমি এটি খুঁজে পাই নি তবে এটি নিশ্চিত হয়ে গেছে যে এটি সহজেই করা সম্ভব নয়।
স্ট্যাটক্স

লাফ কমান্ড (ব্যবহার করুন ctrl-o, ctrl-iএবং :jumpsআপনার নিজের ব্যক্তিগত মেমরির :))
VanLaser

উত্তর:


5

এখানে কিছু বেসিক ভিমস্ক্রিপ্ট যা আপনি যা চান মোটামুটি করে।

প্রকৃত চিহ্নটি নির্ধারণের জন্য আসল কল করার আগে আমরা বর্তমান মানটি সংরক্ষণ করতে ম্যাপিংগুলির maমাধ্যমে ওভাররাইড করি । আমরা সংজ্ঞায়িত মাধ্যমে বলেন চিহ্ন ইতিহাস দেখানোর জন্য।mzg:previous_marksm<Leader>ma<Leader>mz

আপনি সম্ভবত g:previous_marksআরও সুসংহত পদ্ধতিতে তথ্য সংরক্ষণ করতে এবং দ্রুত একটি চিহ্ন পুনরুদ্ধার করার ক্ষমতা যুক্ত করতে চাইবেন (কেবলমাত্র অবস্থানগুলি না দেখে) তবে এই উদাহরণটি কীভাবে এটি করা যায় তা দেখায়, আরও টুইটগুলি একটি অনুশীলন হিসাবে রেখে গেছে পাঠকের কাছে ;-)

let g:previous_marks = {}
fun! MyMark(mark)
    let l:marks = ''
    redir => l:marks
        try
            silent! execute 'marks ' . a:mark
        catch
        endtry
    redir END

    if l:marks != ''
        if !has_key(g:previous_marks, a:mark)
            let g:previous_marks[a:mark] = []
        endif
        call add(g:previous_marks[a:mark], split(l:marks, "\n")[1])
    endif

    execute 'normal! m' . a:mark
endfun

fun! ShowHistory(mark)
    if !has_key(g:previous_marks, a:mark)
        echoerr 'No history for ' . a:mark
        return
    endif

    for l:line in g:previous_marks[a:mark]
        echo l:line
    endfor
endfun

fun! MakeMappings()
    for l:char in range(97, 122)
        let l:char = nr2char(l:char)

        execute 'nnoremap <silent> m' . l:char . ' :call MyMark("' . l:char . '")<CR>'
        execute 'nnoremap <silent> <Leader>m' . l:char . ' :call ShowHistory("' . l:char . '")<CR>'
    endfor
endfun

call MakeMappings()

বাহ যথারীতি আশ্চর্যজনক উত্তর! পাঠকের জন্য
অনুশীলনটি

2

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


আমি মার্জিনে দৃশ্যমান চিহ্নের খুব ভাল অনুরাগী নই তবে মনে হয় কিছু আকর্ষণীয় বৈশিষ্ট্য রয়েছে যা আমি এটি একবার দেখব।
স্ট্যাটক্স

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

হ্যাঁ আমি কয়েক সময়ের জন্য শিরোনামগুলি ব্যবহার করেছি (স্বাক্ষরের বিপরীতে) এই কারণেই আমি বলেছিলাম যে আমি মার্জিনে চিহ্নের অনুরাগী নই তবে আমি এখনই স্বাক্ষরের চেষ্টা করছি আমার পছন্দ হয়েছে কিনা তা দেখার জন্য :-)
স্ট্যাটক্স

2

যেহেতু আসল সমস্যাটি একাধিক ফাইল / পজিশনের মধ্যে নেভিগেশন বলে মনে হচ্ছে, তাই আমি এই সহজ সমাধানটির পরামর্শ দিচ্ছি যা ইউনিট প্লাগইনের উপর ভিত্তি করে :

:Unite jump -auto-preview

এই কমান্ডটি (যা <leader>jউদাহরণস্বরূপ কোনও কিছুর সাথে ম্যাপ করা যায় ) একটি পূর্বরূপ সহ জাম্পের তালিকাটি প্রদর্শন করবে : প্রতিবার আপনি যখন j/ দিয়ে তালিকাটি নেভিগেট করবেন তখন kসেই ফাইলের কার্সারের অবস্থানের চারপাশে কয়েকটি লাইন প্রদর্শিত হবে।

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


বিকল্প:

ডিফল্ট চিহ্নগুলিকে ওভাররাইট করা খুব সহজ: সম্ভবত নামক বুকমার্কগুলি আপনার ব্যবহারের ক্ষেত্রে উপযুক্ত হবে, যেমন সাদামাটা - বুকমার্কস প্লাগইন সহ।


আমি সত্যিই বলতে পারি না যে সমস্যাটি এই ধরণের নেভিগেশন কারণ আমি এই চিহ্নগুলি সত্যই উপলক্ষে ব্যবহার করি এবং বেশিরভাগ সময় আমি আমার ফাইলগুলির মাধ্যমে আলাদাভাবে নেভিগেট করি। তবুও আমি দীর্ঘদিন ধরে ভাবছিলাম যে আমার আরও লাফের তালিকাটি প্রায়শই ব্যবহার করা উচিত যাতে এটি করার কোনও দুর্দান্ত উপায় বলে মনে হয়!
স্ট্যাটক্স

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

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