Vim - কীতে শেষ শেল কমান্ডটি মানচিত্র করুন


10

বাশকে প্রেরিত শেষ কমান্ডটির পুনরাবৃত্তি করতে নেদার-আর ম্যাপ করার কোনও উপায় আছে কি?

উদাহরণস্বরূপ, সি ফাইলগুলির সাথে কাজ করার সময় আমি টাইপ না করে ভিএম থেকে প্রোগ্রামটি কম্পাইল করে চালাতে চাই:! মেক বা জিসিসি cc

আমি জানি আমি কীটিতে নির্দিষ্ট কমান্ডটি আবদ্ধ করতে পারি তবে এটি অন্যান্য ধরণের ফাইলের জন্য কাজ করবে না।

উত্তর:



1

সম্পাদনা: ইনগো কারকাতের উত্তরটি আরও ভাল। ... আমি এই পোস্টটি গ্রহণ না করা হলে মুছে ফেলতাম (যার অর্থ আমি পারব না)।

এখানে একটি সমাধান। এটি কেবল সর্বশেষ 100 কমান্ড অনুসন্ধান করে, স্পষ্টতই, আপনি এই সংখ্যাটি পরিবর্তন করতে পারেন (ইতিহাস সূচীকরণ -1 থেকে শুরু হয়, এটি আপনার টাইপ করা শেষ কমান্ড, সুতরাং সংখ্যাটি কম, আরও অনুসন্ধান করা হবে)।

fun! LastCommand()
        let l:i = -1
        while l:i > -100
                let l:cmd = histget("cmd", l:i)
                if strpart(l:cmd, 0, 1) == "!"
                        let l:i = 1
                        execute l:cmd
                        break
                endif
                let l:i -= 1
        endwhile

        if l:i < 1 | echoerr "No command found" | endif
endfun
nnoremap <Leader>r :call LastCommand()<CR>

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