Я трачу много времени на копирование путей, выводимых grep, и вставку их после команды, открывающей визуальный редактор.
Есть ли способ программирования эмулятора терминала для открытия выбранного текста в определенном редакторе? Возможно, щелчок средней кнопкой мыши по выделенному тексту или дополнение к контекстному меню?
Возможно, это функция какого-то терминала, которого я не знаю?
Создайте сценарий:
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"
*You может заменить xdg-open
другой командой по Вашему выбору для открытия выбора с этой программой.
Делают исполняемый файл сценария
chmod +x ~/<your_script_folder>/open_selection
, Создают ярлык для этого сценария.
Затем только выбирают имя файла в Вашем терминале и используют Ваш ярлык. Обход через буфер обмена не требуется.
Что Вы могли сделать, поскольку альтернатива должна проанализировать вывод grep
как аргумент Вашему предпочтительному текстовому редактору. Например
COMMAND | grep -i filename | xargs nano
В этом нано случая просто заполнитель. Вы могли использовать любой текстовый редактор, который Вы хотите там. То, что Вы могли бы хотеть сделать, должно добавить nohup
перед названием текстового редактора, так, чтобы можно было продолжить использовать терминал.
Некоторое время назад я ответил - , вводят описание ссылки здесь , который попросил "открываться в терминале". Обходное решение, которое я использовал, должно связать ярлык на сценарий. Вы могли сделать, что-то подобное - связывает ярлык на простой рев сценария:
#!/bin/bash
FILENAME=$(zenity --entry --text="Enter path to file")
if [ $? -eq 0 ]
nano $FILENAME
fi
Это в основном должно поднять всплывающее окно, просящее путь к файлу. Путь может быть скопирован с командной строки с Ctrl Сдвиг C , или можно загрузить xclip
и передать вывод по каналу в xclip -sel clip
(который поместит текстовый путь к буферу обмена)