Znalazłem tę stronę, gdy próbowałem wykonać usługi Pythona. Chciałem podzielić się moim kompletnym rozwiązaniem, aby zaoszczędzić innym trochę czasu i być może uzyskać informacje zwrotne od bardziej doświadczonych programistów. Użyłem System Preference> Keyboard: Keybindings, aby ustawić "Application Sortcut: All Apps" dla tej usługi, dzięki czemu mogę wykonać wybrany tekst w dowolnym miejscu w systemie przy użyciu polecenia-shift-return. Zauważysz, że wszelkie wyjątki spowodują zastąpienie zaznaczenia oryginalnym tekstem. Działa z UNDO, jeśli nie uzyskałeś rezultatu, o który prosiłeś. Do tej pory lubię to bardzo!
Załóż obieg Automator jako usługa, usługa odbiera zaznaczony tekst w dowolnej aplikacji, wejście jest cały wybór, wyjście zastępuje wybrany tekst
Dodaj działanie skryptu run shell, shell:/usr/bin/python wejście wprost : jako argumenty
Kod ten idzie w polu:
import sys #, random
try:
print eval(' '.join(sys.argv[1:]))
except:
try:
#This is a compound statement using variable assignment
code = compile(' '.join(sys.argv[1:]), '<string>', 'exec')
exec code
except:
print ' '.join(sys.argv[1:])
Oto kilka próbek, jak mogę skorzystać z tej usługi. Ponownie działa to w programie Mail, procesorach tekstu i innych aplikacjach.
Próbka 0: Podstawowe Math
>>> 42*24*60*60
3628800
Próbka 1: Pojedyncza linia, instrukcja złożona
>>> import random; foo = range(17); random.shuffle(foo); print(foo)
[11, 14, 12, 3, 1, 4, 15, 7, 8, 13, 2, 16, 0, 10, 9, 6, 5]
Próbka 2: wielowierszowego
>>> import random
>>> foo = range(17)
>>> random.shuffle(foo)
>>> print(foo)
[5, 16, 14, 10, 3, 11, 7, 15, 12, 0, 13, 2, 4, 1, 6, 9, 8]
Próbka 3: Pętle
>>> for x in range(5):
... print x
...
0
1
2
3
4
Musisz zaznaczyć pole wyboru "Zastępuje zaznaczony tekst", aby to działało. Będzie także robić tylko jeden "Hello World"; nie jeden na każdą linię. Będziesz musiał zepsuć 'sys.stdin' do linii komponentu, aby zwrócić każdą linię. – dawg
i gdzie znajduje się pole wyboru "Zastępuje zaznaczony tekst"? –
czy można to wyeksportować do aplikacji (np. Do pobrania .app)? –