Pull to refresh

Geany и пользовательские скрипты

Reading time1 min
Views3.3K
По роду деятельности приходится править куски конфигурационных файлов оборудования 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

#!/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. Друзья, я не претендую на уникальность кода, так же не выдвигаюсь в номинации «самый красивый код года», я просто сделал так как смог. Все предложения по улучшению принимаются с удовольствием.
Tags:
Hubs:
Total votes 23: ↑19 and ↓4+15
Comments8

Articles