Czy mogę uruchomić okno dialogowe Plik (Zapisz / Otwórz) z wiersza poleceń?

4

Funkcje uzupełniania plików przez Bash i vima skutecznie poruszają się po kilku poziomach struktury katalogów, ale mogą być kłopotliwe podczas pracy z nieznanymi katalogami. Alternatywnie używam wtyczki wyszukiwania rozmytego w vimie, która jest skuteczna w projekcie, ale mniej na całym dysku.

W tych sytuacjach chciałbym użyć okna dialogowego przeglądarki plików osx. Wyobrażam sobie, że można to osiągnąć za pomocą okien dialogowych „Zapisz jako ...” lub „Otwórz ...”. Czy jest jakiś sposób na uruchomienie jednego z tych okien dialogowych z wiersza poleceń i zapisanie wyboru na standardowe wyjście?

Znalazłem to pytanie dotyczące wyświetlania alertów. Odpowiedzi dotyczą głównie Automatora. Czy możemy zastosować podobne podejście do osiągnięcia mojego celu?

W najgorszym przypadku, wyobrażam sobie, że nie byłoby to trudne do zbudowania, ale przez ostatnie 10 lat koncentrowałem się na programowaniu internetowym. Czy ktoś mógłby skierować mnie w stronę odpowiednich zasobów? Wyobrażam sobie, że muszę zbudować natywną aplikację OSX w celu C lub Swift przy użyciu Cocoa?

Anthony DiSanti
źródło
Nie jestem guru bash / vim, po prostu trochę grzebię w terminalu, więc wybacz mi, jeśli jestem na dobrej drodze… Czy próbujesz dostać się do linii poleceń? Upuszczenie pliku lub folderu do terminala wygeneruje ścieżkę do pliku, jeśli tego potrzebujesz.
Tetsujin
Dzięki Tetsujin, to świetne rozwiązanie podczas pracy w trybie okienkowym - szczególnie jeśli mam już folder otwarty w wyszukiwarce. Jednak mój podstawowy przypadek użycia działa w iterm2 w trybie pełnoekranowym i bardzo rzadko mam już folder otwarty w wyszukiwarce. Dzięki za wskazówkę!
Anthony DiSanti
Ach, OK, rozumiem. Domyślny folder może „klikać” przez otwarte okna aplikacji, aby „znaleźć” otwarty folder w wyszukiwarce lub zapamiętać zestawy ulubionych, ostatnie itp. - chociaż wymagałoby to możliwości wygenerowania selektora plików z pierwotnego pytania, więc może nie być żadną pomocą.
Tetsujin
Domyślny folder jest interesującym produktem, ale tak, nie wydaje się, aby był zbyt pomocny w tej sytuacji. W każdym razie dzięki.
Anthony DiSanti
Przepraszam, że ostatecznie nie mogłem pomóc - życzę powodzenia :)
Tetsujin

Odpowiedzi:

6

Można to zrobić za pomocą AppleScript, podobnie jak w pytaniu, które łączysz. Uważaj, to nie to samo co Automator.

Przykładowy skrypt:

osascript -e 'tell application (path to frontmost application as text)
set myFile to choose file
POSIX path of myFile
end'

Używa najprostszej formy choose filepolecenia i umieszcza wynik w zmiennej myFile. Wynik będzie typu alias , który ma POSIX pathwłaściwość, którą czytamy w następnym wierszu. Wynik zostanie zapisany na standardowe wyjście.

Sprawdź tutaj wszystkie możliwe opcjonalne opcje choose filepolecenia. Możesz np. Podać niestandardowy tekst zachęty, wybrać domyślną lokalizację lub zezwolić tylko na niektóre typy plików.

Leming
źródło