Alfred Workflow 在终端中打开 vim 中的文件

Alfred Workflow to open a file in vim in the terminal

我们如何编写一个 alfred 工作流来将文件从 finder 打开到 vim 编辑器?

这是我第一次尝试在 Alfred 中创建工作流。 我还在学习,想从一个简单的工作流程开始。

在这里,我首先创建了热键和关键字。

Open the Alfred3
Go to Workflows
Click + sign at the bottom left sidebar
Choose Blak Workflow
Name: Vim Launcher
Description: Opens a file in the terminal inside vim editor

1. Right-click > Trigger > press cmd-alt-v 
2. Right-click > Inputs > Keyword > open in vim  and title also open in vim

3. Right-click > Actions > Run NSAppleScipt

复制粘贴以下内容到Run NSAppleScipt

on alfred_script(q)
    tell application "Terminal"
        activate
        do script "vim '" & q & "'"
    end tell
end alfred_script

此工作流程有效,但会打开两个终端而不是一个。 我们怎样才能修复这个 make,让它只打开一个 window?

工作流程总结如下。

你想要一个 Terminal Command 动作。

只需将此对象连接到您的触发器并在其上使用 vim "{query}"

编辑:

我正在编辑答案以回复询问后续问题的评论:

The workflow now create new termnial for each file, can we make it open in the same terminal if a terminal is already running?

在这种情况下,可以使用 Run NSAppleScript 对象,不同之处在于我们必须指定 do script 应该 运行 的位置,因为它总是打开一个新的 [=26] =] 如果没有指定位置:

on alfred_script(q)
    tell application "Terminal"
        if not (exists window 1) then reopen
        activate
        do script "vim '" & q & "'" in window 1
    end tell
end alfred_script