Applescript 如果没有添加文件
Applescript if no file is added
我有以下正在使用的 automator apple 脚本,这样当我将文件拖到停靠栏图标时,它会在 vim 中打开该文件:
on run {input, parameters}
set filename to POSIX path of input
set cmd to "clear && 'vim' '" & filename & "' && exit"
tell application "iTerm"
set newWindow to (create window with default profile)
tell current session of newWindow
write text cmd
end tell
end tell
end run
不过,我还想允许单击图标本身打开 vim
而没有任何文件,即 运行 $ vim
。我将如何更改上述脚本以便:
- 如果传递了文件名,我会用那个文件打开 vim,
vim filename
- 如果没有传递文件名(只是双击图标),它只会打开 vim,
vim
?
以下示例 AppleScript 代码 将按您的要求执行;但是,请记住 input
是一个 list 并且目前 coded 它需要一个 单项列表,意味着您只将一个 文件 拖放到应用程序的 Dock Tile:
on run {input, parameters}
if not input is equal to {} then
set filename to POSIX path of first item of input
set cmd to "clear && 'vim' '" & filename & "' && exit"
else
set cmd to "clear && 'vim' '" & "' && exit"
end if
tell application "iTerm"
set newWindow to (create window with default profile)
tell current session of newWindow
write text cmd
end tell
end tell
end run
注意:示例 AppleScript code 就是这样,不包含任何可能适当的错误处理。用户有责任根据需要或需要添加任何 错误处理 。查看 try statement and error statement in the AppleScript Language Guide. See also, Working with Errors. Additionally, the use of the delay 命令 在适当的事件之间可能是必要的,例如delay 0.5
,适当设置延迟的值。
我有以下正在使用的 automator apple 脚本,这样当我将文件拖到停靠栏图标时,它会在 vim 中打开该文件:
on run {input, parameters}
set filename to POSIX path of input
set cmd to "clear && 'vim' '" & filename & "' && exit"
tell application "iTerm"
set newWindow to (create window with default profile)
tell current session of newWindow
write text cmd
end tell
end tell
end run
不过,我还想允许单击图标本身打开 vim
而没有任何文件,即 运行 $ vim
。我将如何更改上述脚本以便:
- 如果传递了文件名,我会用那个文件打开 vim,
vim filename
- 如果没有传递文件名(只是双击图标),它只会打开 vim,
vim
?
以下示例 AppleScript 代码 将按您的要求执行;但是,请记住 input
是一个 list 并且目前 coded 它需要一个 单项列表,意味着您只将一个 文件 拖放到应用程序的 Dock Tile:
on run {input, parameters}
if not input is equal to {} then
set filename to POSIX path of first item of input
set cmd to "clear && 'vim' '" & filename & "' && exit"
else
set cmd to "clear && 'vim' '" & "' && exit"
end if
tell application "iTerm"
set newWindow to (create window with default profile)
tell current session of newWindow
write text cmd
end tell
end tell
end run
注意:示例 AppleScript code 就是这样,不包含任何可能适当的错误处理。用户有责任根据需要或需要添加任何 错误处理 。查看 try statement and error statement in the AppleScript Language Guide. See also, Working with Errors. Additionally, the use of the delay 命令 在适当的事件之间可能是必要的,例如delay 0.5
,适当设置延迟的值。