Редактировать содержимое буфера обмена с appleScript в OS X - PullRequest
4 голосов
/ 24 марта 2011

Я копирую много исходного кода из разных проектов в другие, и мне всегда приходится менять одни и те же термины.Можно ли использовать яблочный скрипт, который проверяет текстовое содержимое буфера обмена и заменяет несколько ключевых слов?Я новичок в AppleScript, поэтому я не знаю, насколько мощным может быть AppleScript ...

Ответы [ 2 ]

4 голосов
/ 24 марта 2011

Это возможно с использованием get clipboard, set clipboard и разделителей текстовых элементов.

get the clipboard
set the clipboard to (replacement of "this text" by "that text" for the result)

on replacement of oldDelim by newDelim for sourceString
    set oldTIDs to text item delimiters of AppleScript
    set text item delimiters of AppleScript to oldDelim
    set strtoks to text items of sourceString
    set text item delimiters of AppleScript to newDelim
    set joinedString to strtoks as string
    set text item delimiters of AppleScript to oldTIDs
    joinedString
end replacement

Для более сложных манипуляций с текстом я бы просто вызвал скрипт оболочки.Выше становится:

do shell script "pbpaste | sed 's/this text/that text/g' | pbcopy"
2 голосов
/ 07 мая 2011

Не уверен, что понял, что ты хочешь делать. Я считаю, что вы хотите заменить несколько строк в содержимом буфера обмена, например: «PS3 стоит 200 долларов в Wallmart» на «XBox стоит 180 долларов в Wallmart». Следующий код достигает этого:

get the clipboard
set the clipboard to (replacement of "PS3" by "XBox" for the result)
on replacement of oldDelim by newDelim for sourceString
    set oldTIDs to text item delimiters of AppleScript
    set text item delimiters of AppleScript to oldDelim
    set strtoks to text items of sourceString
    set text item delimiters of AppleScript to newDelim
    set joinedString to strtoks as string
    set text item delimiters of AppleScript to oldTIDs
    joinedString
end replacement
get the clipboard
set the clipboard to (replacement of "200" by "180" for the result)

Благодарность Майклу Дж. Барберу за оригинальный код. Я практически ничего не знаю о кодировании. Я только что попробовал эту модификацию, она работала.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...