Удалите окончания строк в Coda (или других приложениях) с помощью Applescript - PullRequest
0 голосов
/ 19 мая 2011

Я уже некоторое время использую BBEdit для разработки. Я часто использую BBEdit для его поиска и замены. Иногда я хочу удалить все окончания строк и табуляции из выделенного текста, что я легко сделал с помощью поиска регулярных выражений в BBEdit, поскольку его поиск и замена выполняются с помощью сценариев. Coda обладает способностью выполнять поиск и замену grep, но я не думаю, что это возможно для сценариев. Итак, я подошел к этому двумя способами: 1) посмотреть, могу ли я найти и заменить grep в Coda с помощью Applescript (что я не считаю возможным), или 2) передать мой текст в командную строку и сделать это сюда. Если у кого-то нет примера первого, этот вопрос будет связан с выполнением этого через командную строку.

Я использую один из встроенных скриптов Coda в качестве шаблона в сочетании с некоторыми другими похожими темами об этой проблеме. Я НЕ являюсь специалистом по Apple или специалисту по регулярным выражениям, поэтому, пожалуйста, будьте осторожны, если это простая ошибка.

Вводимый мной текст может сильно отличаться, но обычно это HTML и / или JS-код.

Этот скрипт будет работать, но ничего не происходит. Есть идеи?

-- script settings
on CodaScriptSettings()
    return {displayName:"Remove Line Endings", inContextMenu:"yes"}
end CodaScriptSettings

-- actual script
tell application "Coda"

try

    tell current split of front document

        if selected text is not equal to "" then
            set someText to selected text
        else
            set someText to contents
        end if

    end tell

on error
    beep
    return
end try

end tell

set shellscriptString to "echo " & quoted form of someText & "|sed \"s/[\\t\\r\\n\\x]+/ /g\"" as string

set shellresult to do shell script shellscriptString without altering line endings

tell application "Coda"
try
    tell current split of document 1

        if selected text is not equal to "" then
            set selected text to shellresult
        else
            set contents to shellresult
        end if

    end tell

on error
    beep

end try
end tell

1 Ответ

1 голос
/ 26 мая 2011

Попробуйте это:

set shellscriptString to "echo " & quoted form of someText & "|tr -d '\\\t\\r\\n\\x'" as string
...