Текстовый редактор с поиском мультишаблона и заменой сразу?

Я ищу текстовый редактор GUI, который способен к выполнению поиска нескольких-шаблонов и замены внезапно. Если источник был бы текстовым файлом, он может быть сделан в режиме командной строки с sed, но текст прибывает из буфера обмена (никакой другой возможный путь).

Я должен: вставьте текст от буфера обмена (5-50 слов самое большее) в текстовом редакторе, нажмите кнопку 'замены' с рядом 10 предопределенных шаблонов замены и скопируйте результат в буфер обмена. Эта последовательность будет сделана приблизительно 3 000 раз...

8
задан 31 October 2014 в 02:38

3 ответа

Можно сделать это все на командной строке все еще с помощью чего-то как 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

5
ответ дан 23 November 2019 в 05:23

Я представляю Вам Редактор Vim! (или Gvim для графической реализации)

# apt-get install gvim

С этим текстовым редактором можно сделать в значительной степени все. Это основано на сочетаниях клавиш как i для того, чтобы ввести текст и dd для удаления textlines, dw для удаления слов, d2w для удаления двух слов.

В Вашем случае: вставлять Ваш текст от использования буфера обмена "*p

И заменять текстовое использование :s/foo/bar/g нечто замены с панелью здесь.

3
ответ дан 23 November 2019 в 05:23

... почему бы не использовать сценарий? Проверить 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

Это покажет Вам диалоговое окно как это:

YAD example

Заметьте, что сценарий и изменит буфер обмена (вставка) буфер и распечатает его. Встроить это в редактора, например vim, можно сделать следующее:

  1. Добавьте к Вашему .vimrc:

    nmap <F4> :r ! /path/to/the/script <CR>
    
  2. выполненный, например, gvim.

  3. Теперь Вы копируете текст, пойдите редактор, нажмите F4. Выберите изменение, которое Вы хотите применить.

  4. Текст появится в редакторе. Если это в порядке, как, можно вставить его. Иначе

  5. Отредактируйте текст и скопируйте его снова. (В gvim, можно выбрать текст с мышью и просто выбрать вставку---или учиться vim команды, безотносительно).

Это могло быть оптимизировано наверняка (вероятно, можно легко определить другой ключ к выбору и вставить измененный текст так, чтобы у Вас было еще меньше нажатия клавиши для использования),

13
ответ дан 23 November 2019 в 05:23

Другие вопросы по тегам:

Похожие вопросы: