Терминал: открыть путь с помощью среднего щелчка / контекстного меню?
Я трачу много времени на копирование путей, выводимых grep, и вставку их после команды, открывающей визуальный редактор.
Есть ли способ программирования эмулятора терминала для открытия выбранного текста в определенном редакторе? Возможно, щелчок средней кнопкой мыши по выделенному тексту или дополнение к контекстному меню?
Возможно, это особенность какого-то терминала, которого я не знаю?
2 ответа
Создать скрипт:
nano ~/<your_script_folder>/open_selection
Включите следующий код:
#!/bin/bash
selected_text=$(xclip -o)
if [[ "$selected_text" == ~* ]]; then
file_name=$(readlink -f ${selected_text/\~/$HOME})
else
file_name="$selected_text"
fi
notify-send "Open selection" "$file_name"
xdg-open "$file_name"
* Вы можете заменить xdg-open
с другой командой по вашему выбору, чтобы открыть выбор с помощью этой программы.
Сделайте скрипт исполняемым
chmod +x ~/<your_script_folder>/open_selection
Создайте ярлык для этого скрипта.
Затем выберите только имя файла в вашем терминале и используйте ярлык. Обход через буфер обмена не требуется.
Что вы могли бы сделать в качестве альтернативы, это проанализировать вывод grep
в качестве аргумента для вашего текстового редактора выбора. Например
COMMAND | grep -i filename | xargs nano
В этом случае nano - это просто заполнитель. Вы можете использовать любой текстовый редактор, который вы хотите там. Что вы можете сделать, это добавить nohup
перед именем текстового редактора, чтобы вы могли продолжить использовать терминал.
Некоторое время назад я ответил - введите описание ссылки здесь, которое попросило "открыть в терминале". Обходной путь, который я использовал, - это привязать ярлык к сценарию. Вы можете сделать что-то подобное - привязать ярлык к простому скрипту ниже:
#!/bin/bash
FILENAME=$(zenity --entry --text="Enter path to file")
if [ $? -eq 0 ]
nano $FILENAME
fi
Это в основном должно вызвать всплывающее окно с запросом пути к файлу. Путь можно скопировать из командной строки с помощью CtrlShiftC, или вы можете скачать xclip
и направить вывод в xclip -sel clip
(который поместит ваш текстовый путь в буфер обмена)