我们如何编写alfred工作流来从finder打开文件到vim编辑器?
这是我第一次尝试在Alfred中创建工作流程。 我还在学习,并希望从一个简单的工作流程开始。
在这里,我首先创建了Hotkey和Keyword。
Run NSAppleScipt
复制并粘贴on alfred_script(q)
tell application "Terminal"
activate
do script "vim '" & q & "'"
end tell
end alfred_script
$('#js-date').datepicker().on('changeDate', function(ev) {
var currentDate = new Date($('#js-date').val());
$('.datepicker-days th.dow').removeClass('active')
switch (currentDate.getDay()) {
case 0:
$('th.dow').eq(0).addClass('active');
break;
case 1:
$('th.dow').eq(1).addClass('active');
break;
case 2:
$('th.dow').eq(2).addClass('active');
break;
case 3:
$('th.dow').eq(3).addClass('active');
break;
case 4:
$('th.dow').eq(4).addClass('active');
break;
case 5:
$('th.dow').eq(5).addClass('active');;
break;
case 6:
$('th.dow').eq(6).addClass('active');
break;
}
});
此工作流程有效但打开两个终端而不是一个终端。 我们如何解决这个问题,以便只打开一个窗口?
答案 0 :(得分:0)
您需要Terminal Command操作。
只需将此对象与您的触发器相关联,然后在其上使用vim "{query}"
。
编辑:
我正在编辑答案以回复评论,询问后续问题:
工作流现在为每个文件创建新的termnial,如果终端已在运行,我们可以在同一个终端中打开吗?
在这种情况下,可以使用Run NSAppleScript
对象,区别在于我们必须指定do script
应该运行的位置,因为如果没有指定位置,它总是打开一个新窗口:
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