По роду деятельности приходится править куски конфигурационных файлов оборудования Cisco в текстовом редакторе. Я пользуюсь редактором Geany (ОS Linux), поэтому тюнить буду его и скрипт писать под bash
Мой тюнинг прост, я добавил скрипт, который добавляет или убирает в выделенном тексте команду «no»
Я обозвал скрипт cisco_add_no и скопировал его в /usr/bin, так же не забываем дать ему права на запуск:
chmod ug+x /usr/bin/cisco_add_no
Скрипты для geany можно добавить в
Правка -> Форматирование -> Отправить выделенное в -> Установить пользовательские команды
Там необходимо указать имя скрипта, выделенный текст передается через стандартный stdin
Я указал так (1-й добавляет «no», второй убирает):
cisco_add_no
cisco_add_no unno
Скрипты можно вызывать либо из меню (там же где и добавляли), либо через хот-кеи Ctrl+1, Ctrl+2 и т.д.
P.S. Друзья, я не претендую на уникальность кода, так же не выдвигаюсь в номинации «самый красивый код года», я просто сделал так как смог. Все предложения по улучшению принимаются с удовольствием.
Мой тюнинг прост, я добавил скрипт, который добавляет или убирает в выделенном тексте команду «no»
Я обозвал скрипт cisco_add_no и скопировал его в /usr/bin, так же не забываем дать ему права на запуск:
chmod ug+x /usr/bin/cisco_add_no
Скрипты для geany можно добавить в
Правка -> Форматирование -> Отправить выделенное в -> Установить пользовательские команды
Там необходимо указать имя скрипта, выделенный текст передается через стандартный stdin
Я указал так (1-й добавляет «no», второй убирает):
cisco_add_no
cisco_add_no unno
#!/bin/bash
#
# Add or remove "no" from all selected strings in Geany
#
# Usage: cisco_add_no [w/o arguments] - add "no" to all stdin strings
# cisco_add_no unno - remove "no" from all stdin strings
#
#Get stdin strings
my_strings=`xargs -0 echo`
#Get count of strings
num=`echo "$my_strings" | wc -l`
i=0
while [ $i -lt $num ]; do
let i+=1
#If we haven't "unno" argument? add "no" to selected strings, otherwise remove "no"
if [ "$1" != "unno" ]
then
printf "no "
echo "$my_strings" | head -${i} | tail -1
else
echo "$my_strings" | head -${i} | tail -1 | sed -e 's/no //'
fi
done
Скрипты можно вызывать либо из меню (там же где и добавляли), либо через хот-кеи Ctrl+1, Ctrl+2 и т.д.
P.S. Друзья, я не претендую на уникальность кода, так же не выдвигаюсь в номинации «самый красивый код года», я просто сделал так как смог. Все предложения по улучшению принимаются с удовольствием.