ভিআইএম এর সিটিআরএলপি প্লাগিনের মতো বাশে সম্পূর্ণ ফাইলের নামগুলি কীভাবে अस्पष्ट করবেন?


5

বলুন আমার পিডাব্লুডিতে ~/myproject/আছে এবং আমার একটি ফাইল আছে~/myproject/scripts/com/example/module/run_main_script.sh

Ctrlp প্লাগইন সহ ভিমে , আমি Ctrl+ টিপতে পারি P, টাইপ করতে run_main_ Enterপারি, আমি সেই স্ক্রিপ্টটি সম্পাদনা করছি।

আমি সেই স্ক্রিপ্টটি ব্যাশে চালাতে চাই (কিছু যুক্তি সহ)। এবং আমি পুরো পথটি টাইপ করতে চাই না। বাশে কি এমন কোনও উপায় আছে?

উত্তর:


1

সাধারণত PATHভেরিয়েবলের জন্য এটি হয়। যদিও, আমি আপনার সম্পূর্ণ হোম ডিরেক্টরি আপনার যুক্ত করব না PATH~/binআপনার এক্সিকিউটেবলগুলিকে আপনার পথে যুক্ত করতে একটি উত্সর্গীকৃত ডিরেক্টরি (যেমন ) যুক্ত করার বিষয়টি বিবেচনা করুন।

তবে আপনি নিজের মধ্যে এমন একটি ফাংশন যুক্ত করতে পারেন ~/.bashrcযা আপনাকে কোনও স্ক্রিপ্ট অনুসন্ধান এবং চালানোর অনুমতি দেয় ... এরকম কিছু:

# brun stands for "blindly run"
function brun {
    # Find the desired script and store
    # store the results in an array.
    results=(
        $(find ~/ -type f -name "$1")
    )

    if [ ${#results[@]} -eq 0 ]; then   # Nothing was found
        echo "Could not find: $1"
        return 1

    elif [ ${#results[@]} -eq 1 ]; then   # Exactly one file was found
        target=${results[0]}

        echo "Found: $target"

        if [ -x  "$target" ]; then   # Check if it is executable
            # Hand over control to the target script.
            # In this case we use exec because we wanted
            # the found script anyway.
            exec "$target" ${@:2}
        else
            echo "Target is not executable!"
            return 1
        fi

    elif [ ${#results[@]} -gt 1 ]; then   # There are many!
        echo "Found multiple candidates:"
        for item in "${results[@]}"; do
            echo $item
        done
        return 1
    fi
}

এটি একটি দুর্দান্ত স্ক্রিপ্ট! আমার প্রয়োজন মেটাতে আমি কিছুটা পরিবর্তন করেছি: `ফলাফল = ($ (~ / -name" $ ​​1 "খুঁজুন)) => ফলাফল = ($ (সন্ধান করুন। {@: 2} => $ লক্ষ্য $ {@: 2} `
fqsxr

@ এফকিউএসএক্সআর: -type fহ্যাঁ, এটি ভাল ধারণা।
ববি


0

আপনি যা খুঁজছেন ঠিক তা নয়, তবে এটি বেশ ভাল এবং আপনি ইতিমধ্যে যে ব্যাশটি ব্যবহার করছেন তা ঠিক তৈরি করা হ'ল Ctrl-r http://ruslanspivak.com/2010/11/20/bash-history-reverse-inte Fightnt - search /

এটি ভিজে সিটিআরএলপি-র মত বেশি ঝাপসা থাকলে ভাল লাগবে। এখানে উচ্চ স্তরের কিছু বাস্তবায়ন উল্লেখ করা হয়েছে যে এখানে এমন শেল রয়েছে যা সাব্লাইম পাঠ্যের মতো ফাজি সমাপ্তিকে সমর্থন করে?

আপনি আপনার পুরো ব্যাশ প্রম্পটটিকে আরও ভিএম-জাতীয় ব্যবহারের পাঠ্যলাইন এবং .inputrc ব্যবহার করতে পারেন http:// http://vim.wikia.com/wiki/Use_vi_shortcuts_in_terminal

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