Как нечеткие полные имена файлов в bash, как плагин vim ctrlp?

сказать мой дуо на ~/myproject/ а у меня файл в ~/myproject/scripts/com/example/module/run_main_script.sh

в vim с ctrlp плагин, Я могу нажать Ctrl+P, тип run_main_ введите, я редактирую этот сценарий.

Я хочу запустить этот скрипт (с некоторыми аргументами) в bash. И я не хочу вводить полный путь. Есть ли способ сделать это в bash?

15
задан bytebuster
20.02.2023 22:03 Количество просмотров материала 3488
Распечатать страницу

3 ответа

Это нормально PATH переменная for. Хотя я бы не стал добавлять весь ваш домашний каталог в 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 "")
    )

    if [ ${#results[@]} -eq 0 ]; then   # Nothing was found
        echo "Could not find: "
        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
}
1
отвечен Bobby 2023-02-22 05:51

Я тоже этого хотел.

Я написал для этого небольшой perl скрипт, не стесняйтесь проверить его.

Ctrl-P как сценарий командной строки (bash).

1
отвечен hmepas 2023-02-22 08:08

не совсем то, что вы ищете, но довольно хорошо, и встроенный прямо в Баш вы уже используете Ctrl-r http://ruslanspivak.com/2010/11/20/bash-history-reverse-intelligent-search/

было бы неплохо, если бы он был более нечетким, как ctrlp в vim. Есть некоторые реализации более высокого уровня, упомянутые здесь есть ли оболочка, которая поддерживает нечеткое завершение, как в Sublime Text?

вы можете обмануть всю вашу подсказку Баш чтобы быть более vim-как использовать readline И.inputrc http://vim.wikia.com/wiki/Use_vi_shortcuts_in_terminal

0
отвечен Zak 2023-02-22 10:25

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх