Я ищу текстовый редактор GUI, который способен к выполнению поиска нескольких-шаблонов и замены внезапно. Если источник был бы текстовым файлом, он может быть сделан в режиме командной строки с sed
, но текст прибывает из буфера обмена (никакой другой возможный путь).
Я должен: вставьте текст от буфера обмена (5-50 слов самое большее) в текстовом редакторе, нажмите кнопку 'замены' с рядом 10 предопределенных шаблонов замены и скопируйте результат в буфер обмена. Эта последовательность будет сделана приблизительно 3 000 раз...
Можно сделать это все на командной строке все еще с помощью чего-то как xsel
или xclip
, чтобы получить текущий буфер обмена и затем наполнить результат назад в него. Вот немного примера, который показывает sed
используемый делать несколько замен.
echo -n abc | xsel -bi # write to clipboard
xsel -bo | sed 's/abc/def/;s/def/123/' | xsel -bi # process it
echo $(xsel -bo) # output it for testing
Возвраты 123
Я представляю Вам Редактор Vim! (или Gvim для графической реализации)
# apt-get install gvim
С этим текстовым редактором можно сделать в значительной степени все. Это основано на сочетаниях клавиш как i
для того, чтобы ввести текст и dd
для удаления textlines, dw
для удаления слов, d2w
для удаления двух слов.
В Вашем случае: вставлять Ваш текст от использования буфера обмена "*p
И заменять текстовое использование :s/foo/bar/g
нечто замены с панелью здесь.
... почему бы не использовать сценарий? Проверить xclip
(sudo apt-get install xclip
)
xclip -o -selection clipboard
отправит буфер обмена в стандартный вывод, и с -i
можно заменить буфер обмена. Так
xclip -o -selection clipboard | sed "s/change this/to this/" | xclip -i -selection clipboard
применит изменение в выборе, и теперь можно вставить его.
Если Вы хотите графическую вещь, можно встроить сценарий с yad:
#! /bin/bash
#
yad --title Choose --button One:1 --button Two:2 --button Three:3
choice=$?
case $choice in
1)
xclip -o -selection clipboard |
sed "s/one/uno/" |
xclip -i -selection clipboard
xclip -o selection clipboard
;;
2)
xclip -o -selection clipboard |
sed "s/two/dos/" |
xclip -i -selection clipboard
xclip -o selection clipboard
;;
3)
echo "executing 3 --- well, you got the idea"
;;
esac
Это покажет Вам диалоговое окно как это:
Заметьте, что сценарий и изменит буфер обмена (вставка) буфер и распечатает его. Встроить это в редактора, например vim
, можно сделать следующее:
Добавьте к Вашему .vimrc
:
nmap <F4> :r ! /path/to/the/script <CR>
выполненный, например, gvim.
Теперь Вы копируете текст, пойдите редактор, нажмите F4. Выберите изменение, которое Вы хотите применить.
Текст появится в редакторе. Если это в порядке, как, можно вставить его. Иначе
Отредактируйте текст и скопируйте его снова. (В gvim
, можно выбрать текст с мышью и просто выбрать вставку---или учиться vim
команды, безотносительно).
Это могло быть оптимизировано наверняка (вероятно, можно легко определить другой ключ к выбору и вставить измененный текст так, чтобы у Вас было еще меньше нажатия клавиши для использования),