2013-12-07 3 views
2

Открытие ссылки в Firefox из терминала довольно простое, и есть много вариантов, доступных для firefoxcommand. Например, вы можете сделать firefox -new-window "http://stackoverflow.com", чтобы открыть ссылку в новом окне.Команда терминала для открытия нового окна Safari

Интересно, можете ли вы сделать то же самое с Safari на Mac? open "http://stackoverflow.com" просто открывает новую вкладку, если уже открыто окно Safari.
Я знаю приложения, которые позволяют переключаться между «Открыть в новой вкладке» и «Открыть в новом окне». Есть ли специальный префикс для URL-адреса, чтобы сообщить Safari открыть новое окно? Или это возможно с помощью кода Objective-C?

ответ

7

Вы можете разместить ниже функции с кодом osascript в вашем .profile

код:

function Safari { 
    # Will open a New Safari window with argument 1. 

osascript <<EOD 
tell application "Safari" to make new document with properties {URL:"$1"} 
return 
EOD 

} 

В терминале:

  • cd в ваш домашний каталог.
  • Run: нано .profile

Если у вас уже есть файл .profile он будет открыт и будет какой-то код уже там.

  • Введите код внизу под любым другим кодом.

Если у вас его нет, откроется пустой файл .profile.

  • Введите код.

------ После ввода кода ----

Удерживая Ctrl и нажмите клавишу х.

В нижней части окна вам будет предложено сохранить изменения.

enter image description here

Нажмите клавишу у для да.

Вы теперь будет предложено сохранить его с текущим именем .profile

enter image description here

Просто нажмите Введите ключ, чтобы сохранить его.

Пробег:

. ~/.profile 

Это обновит среду.

теперь вы можете запустить:

Safari "http://stackoverflow.com" 

Обратите внимание на Cap "S" в Safari.

+0

Спасибо! Я использую 'vim', но спасибо за ваше объяснение в любом случае :-) – johk95

1

Это использует другой подход (osascript против открытой), но это не то, что я думаю, что вы просите:

osascript -e "tell application \"Safari\" 
    make new document 
    set URL of document 1 to \"http://www.apple.com/\" 
    set bounds of window 1 to {500, 500, 800, 800} 
end tell" 
Смежные вопросы