2 votos

¿Buscar en todos los documentos abiertos de TextEdit?

¿Hay alguna manera de encontrar una cadena en todos los documentos abiertos de TextEdit (en lugar de un solo documento)?

0 votos

Me parece que sublime text es más potente para eso. Si usted tiene Xcode / vscode, añadir todos ellos a un proyecto y puede buscar en todas partes. Si ninguno de ellos, utilice grep (no puedo decir acerca de los archivos no guardados allí .)

0 votos

¿Por qué no guardar un documento y luego usar Spotlight para indexarlo? Realmente aprecio que usted pone esto, pero parece que a menos que TextEdit está guardando el trabajo sin preguntar y se puede buscar en spotlight de todos modos esto es realmente algo que podría cambiar la forma de trabajar. Gran pregunta técnica - sólo que no está seguro de que es práctico o ayudaría a muchos. +1 para la novedad en mi libro

1 votos

@bmike, ha sido mi experiencia con los no salvados TextEdit documentos que Foco de atención no siempre los indexa. Parece que es un acierto o un error. No tengo tantos archivos sin guardar TextEdit documentos como el OP pero a menudo tienen una docena o más. Así que la respuesta que escribí, la guardé como un AppleScript aplicación y lo utilizará si Foco de atención no encuentra algo que creo que está ahí.

1voto

user3439894 Puntos 5883

Lo siguiente ejemplo AppleScript código cuando Ejecutar de script Editor o guardado como un AppleScript aplicación presentará un cuadro de diálogo de la cadena de búsqueda para que escriba en el cadena de búsqueda .

Si se encuentra una coincidencia, se crea un nuevo TextEdit documento con el nombre(s) de la documento(s) que contiene el cadena de búsqueda . Si no se encuentra ninguna coincidencia, se muestra un diálogo caja con un mensaje.

if running of application "TextEdit" then
    tell application "TextEdit"
        set docCount to count documents
        if docCount is greater than 0 then
            set searchString to ""
            repeat while searchString is ""
                set searchString to my getSearchString()
            end repeat
            set documentNamesList to {}
            repeat with i from 1 to docCount
                if text of document i contains the searchString then
                    copy name of document i to end of documentNamesList
                end if
            end repeat
            if documentNamesList is not {} then
                set AppleScript's text item delimiters to linefeed
                set documentNamesList to documentNamesList as string
                set AppleScript's text item delimiters to ""
                set docText to "The following TextEdit documents contain the search string: " & ¬
                    searchString & linefeed & linefeed & documentNamesList
                make new document with properties {text:docText}
                activate
            else
                display dialog "No documents found containing the search string: " & ¬
                    searchString buttons {"OK"} default button 1 with title "No Match Found"
            end if
        else
            display dialog "There are no open documents to search..." buttons {"OK"} ¬
                default button 1 with title "No Open Documents"
        end if
    end tell
else
    display dialog "TextEdit is not open..." buttons {"OK"} default button 1
end if

on getSearchString()
    return text returned of (display dialog ¬
        "Enter the search string:" default answer ¬
        "" buttons {"Cancel", "OK"} default button 2 ¬
        with title "Search Open TextEdit Documents")
end getSearchString

Nota: El <em>ejemplo </em><strong>AppleScript </strong><em>código </em>es sólo eso y no contiene ningún otro <em>tratamiento de errores </em>según corresponda. Corresponde al usuario añadir cualquier <em>tratamiento de errores </em>como sea apropiado, necesario o deseado. Eche un vistazo a la <a href="https://developer.apple.com/library/archive/documentation/AppleScript/Conceptual/AppleScriptLangGuide/reference/ASLR_control_statements.html#//apple_ref/doc/uid/TP40000983-CH6g-129232" rel="nofollow noreferrer"><strong>intente </strong></a><em>declaración </em>y <a href="https://developer.apple.com/library/archive/documentation/AppleScript/Conceptual/AppleScriptLangGuide/reference/ASLR_control_statements.html#//apple_ref/doc/uid/TP40000983-CH6g-129657" rel="nofollow noreferrer"><strong>error </strong></a><em>declaración </em>en el <a href="https://developer.apple.com/library/archive/documentation/AppleScript/Conceptual/AppleScriptLangGuide/introduction/ASLR_intro.html" rel="nofollow noreferrer"><strong>Guía del lenguaje AppleScript </strong></a>. Véase también, <a href="https://developer.apple.com/library/archive/documentation/AppleScript/Conceptual/AppleScriptLangGuide/reference/ASLR_error_xmpls.html#//apple_ref/doc/uid/TP40000983-CH221-SW1" rel="nofollow noreferrer"><strong>Trabajar con errores </strong></a>. Además, el uso del <a href="https://developer.apple.com/library/archive/documentation/AppleScript/Conceptual/AppleScriptLangGuide/reference/ASLR_cmds.html#//apple_ref/doc/uid/TP40000983-CH216-SW10" rel="nofollow noreferrer"><strong>retraso </strong></a><em>comando </em>puede ser necesario entre eventos cuando sea apropiado, por ejemplo <code>delay 0.5</code> con el <em>valor </em>de la <em>retraso </em>ajustado apropiadamente.

1 votos

Lógica brillante, espero que TextEdit siempre guarde el texto y spotlight lo busque, pero podría ver a spotlight evitando el espacio de almacenamiento temporal donde se guardan todos estos hasta que OP le dé a un documento un nombre diferente al que se genera cuando se abre una nueva aplicación por el sistema...

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X