终端下光标移动到文件路径上,⌘+click
可以触发执行某个命令,比如点击一个项目文件夹,触发WebStorm,但是有时我希望不同的文件类型,触发不同的动作,这样就需要自定义脚本进行拓展。
解决方案
实现方案如下,因为个人Shell渣渣,为了方便,实际打开IDElogic使用JS编写,只是在shell中执行nodejs
贴下部分代码,完整代码戳这里
iterm2-trigger.js
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
|
const commandMap = new Map(); commandMap.set((_filePath) => utils.isDirectory(_filePath) && utils.suffixMatch(10, _filePath, ['.go']), '/usr/local/bin/goland'); commandMap.set((_filePath) => utils.isDirectory(_filePath) && utils.suffixMatch(10, _filePath, ['.js', '.jsx', '.ts', '.tsx']), '/usr/local/bin/webstorm'); commandMap.set((_filePath) => true, 'open');
(function init() { let commandStr = ''; for (const fn of commandMap.keys()) { if (fn(filePath)) { commandStr = commandMap.get(fn); if (utils.checkAppExist(commandStr)) { break; } } } execSync(`${commandStr} ${filePath}`); })();
|
iterm2-trigger.sh
1 2 3 4 5
| #!/usr/bin/env bash DIR="$(dirname $0)"
/usr/local/bin/node "$DIR/iterm2-trigger.js" $1 exit 0;
|
iTerm2下进入Preferences=>Profiles=>local Profile=>Advanced=>Semantic History,配置如下
1
| $HOME/bin/iterm2-trigger.sh \1
|
当然如果只想所有文件都走WebStorm或某程序打开,直接如下配置即可
1
| /usr/local/bin/webstorm \1
|
写在最后
有了这个设定脚本,就可以灵活控制文件点击的动作了。