搁浅被注册了

图样 图森破 、

@搁浅被注册了10月前

08/9
11:22
macOS

Alfred 杂谈及使用 iTerm2 为其默认终端

Alfred 可以看做高端版的 spotlight ,效率神器。网上的教程非常多,希望能有点干货。
常用 workflow 推荐:
1.CodeVar
打码1小时,思考变量名50分钟,有了这个,妈妈再也不用担心你的变量名无处安放了

2.Colors 
颜色转换 Hex Rgb HSl 互转。

3.Dash
文档速查工具,推荐安装,这个只是 Alfred 小插件。

4.Douban
快速查询豆瓣上的相关内容,电影爱好者双手称赞。

5.Flush DNS Cache
清除系统 dns 缓存,关键时候缓存坑死人。推荐使用 whistle  ,使用代理快速切换 hosts 指向,实时生效告别 dns 缓存。

6.GitHub
官方出品 github 工具,查询管理 git 项目。

7.Google Translate
调用谷歌翻译,同时翻译为多种语言,应该是台湾人写的默认繁体中文。
安装 workflow 后,修改第一个 Script Filter 命令, 把 zh-TW 改成 zh-CN 即可。
同时可以编辑 Hotkey, 可以设置为双击 option 键,Action 选 “Show Alfred”,Argement 选 “Selection in macOS”, Prefix 填 “tr ”(注意tr后面加一个空格), Cursor 默认为 right 。设置完成后,在系统任意位置选中文字双击 option 即可调出直接翻译。

8.Hash
获取当前 Finder 选中文件或指定文本的 hash 校验值,支持 MD5 SHA1 等方式。

9.IP Address
获取当前的环境的内外网 IP 地址。

10.Kill Process
用于结束指定进程

11.TerminalFinder
支持从 Filder 直接打开 iTerm2 ,及从 iTerm2 打开当前目录在 Filder 中显示。
对于我的日常使用习惯开一个四分隔的全屏 iTerm 界面作为主要命令界面,有时候我需要开一个单独的 iTerm 小窗来执行其他操作,比如 ping 一个服务器,下面的修改可以实现。
导入 TerminalFinder 后,修改其 Keyword 为 fi 右侧对应执行的 AppleScript,粘贴如下代码即可:

on alfred_script(q)

  tell application "Finder"
    set pathList to (quoted form of POSIX path of (folder of the front window as alias))
    set command to "clear; cd " & pathList
  end tell

  tell application "System Events"
    -- some versions might identify as "iTerm2" instead of "iTerm"
    set isRunning to (exists (processes where name is "iTerm")) or (exists (processes where name is "iTerm2"))
  end tell

  tell application "iTerm"
    set hasNoWindows to ((count of windows) is 0)
    if isRunning and hasNoWindows then
      create window with default profile
    end if
    select first window

    tell the first window
      if isRunning and hasNoWindows is false then
        create window with default profile
      end if
      tell current session to write text command
    end tell
  end tell

end alfred_script

12.快递查询
只需要快递单号,自动识别快递公司查询快递信息。

13. tinyPng
快速压缩图片这种小事,再也不需要专门 PS 处理了。初次使用输入 tiny 选择 get API Key, 然后再填写。
在 Filder 中选中图片然后执行,生成的图片会在桌面显示,每个 API Key有 500 次的限额。

14.人民币金额大写
关键字 cny 触发,把数字转为中文大写,低频使用

15.切换网络位置
关键字 loc 触发,切换 macOS 的网络位置。如果你一直用的自动那就对你没有用。适合需要在不同位置下设置不同的静态 ip 地址的需求。
目前已找到全自动的位置切换方法 wifi-location-changer, 要求就是位置的名称要和 wifi 名称一致,而且不能有中文字符。全自动切换网络位置你值得拥有。

说完 workflow 说点别的,最新更新的 iTerm2 版本完全告别了 iTerm 时代的遗留问题,然而更新之后原先使用 “>” 字符输入命令打开终端执行操作的方法失效了。

因此我修改了一下原先的代码,并加上了 cd 命令识别在当前 Finder 目录下打开 iTerm2,不过不支持中文路径会回退到用户目录(没什么用看后面)
推荐搭配上面的 TerminalFinder workflow 使用更佳。

首先进入 Alfred 设置 -> Features -> Terminal/Shell, Application 选择 Custom

粘贴下面的代码

on write_to_file(this_data, target_file, append_data)
try
set the target_file to the target_file as string
set the open_target_file to open for access file target_file with write permission
if append_data is false then set eof of the open_target_file to 0
write this_data to the open_target_file starting at eof
close access the open_target_file
return true
on error
try
close access file target_file
end try
return false
end try
end write_to_file

on alfred_script(q)
-- Write the command to run to a file. This is done because Applescript quoting is impossible to get right, esp. for backslashes.
set tmp_dir to path to temporary items as string from user domain
set applescript_alfred_file to tmp_dir & "alfredscript"
set alfred_file to POSIX path of applescript_alfred_file
write_to_file(q & return, applescript_alfred_file, false)

-- Create this file, which prevents iTerm2 from restoring a saved window arrangement.
do shell script "touch ~/Library/Application' Support/iTerm2/quiet'"

-- Test cases:
-- 1. iTerm2 running, has windows open. Should open a new window for Alfred command.
-- 2. iTerm2 running, no windows open. Should open a new window for Alfred command.
-- 3. iTerm2 not running, set to restores arrangement. Should not restore arrangement but open a new window for the Afred command.
-- 4. iTerm2 not running. No windows to restore. Should open a single window for the Alfred command.
-- 5. iTerm2 not running. Has windows to restore. Restores windows and then opens a new window for the Alfred command.

-- Compose a script. This is necessary because compiling in a 'tell application' command causes the app to be launched, which would happen prior to the creation of the quiet file.
set theScript to "tell application \"iTerm2.app\"
if (exists current window) then
tell current window to create tab with default profile
tell current session of current window
write contents of file \"" & alfred_file & "\"
end tell
else
create window with default profile
tell current session of current window
write contents of file \"" & alfred_file & "\"
end tell
end if
activate
end tell"

-- Invoke the script.
run script theScript

-- Clean up
--    do shell script "rm -f ~/Library/Application' Support/iTerm2/quiet' /tmp/alfredscript"
end alfred_script

使用 “>ping baidu.com” 即可立即小窗 iTerm2 执行命令了。

Alfred 杂谈及使用 iTerm2 为其默认终端

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据