ctrl+shift+p filters: :st2 :st3 :win :osx :linux
浏览

打开URL

noahcoad 全部

在Sublime Text中打开光标下或选中文本中的URL、文件、文件夹或Google文本。

详细信息

  • 2.8.1
    2.7.0
    1.0.0
  • github.​com
  • github.​com
  • 9个月前
  • 2小时前
  • 12年前

安装

  • 总数 23K
  • Win 12K
  • Mac 8K
  • Linux 4K
8月6日 8月5日 8月4日 8月3日 8月2日 8月1日 7月31日 7月30日 7月29日 7月28日 7月27日 7月26日 7月25日 7月24日 7月23日 7月22日 7月21日 7月20日 7月19日 7月18日 7月17日 7月16日 7月15日 7月14日 7月13日 7月12日 7月11日 7月10日 7月9日 7月8日 7月7日 7月6日 7月5日 7月4日 7月3日 7月2日 7月1日 6月30日 6月29日 6月28日 6月27日 6月26日 6月25日 6月24日 6月23日 6月22日
Windows 3 0 1 1 0 0 1 3 3 1 2 3 0 0 1 0 0 0 1 2 1 0 4 0 1 0 4 1 1 0 0 0 1 3 0 1 1 0 0 2 1 1 1 0 0 2
Mac 3 2 0 0 0 0 2 2 2 0 1 1 0 0 1 0 0 0 2 1 1 5 0 0 0 0 0 1 0 1 0 3 2 0 0 0 1 0 0 0 0 1 0 2 0 0
Linux 0 0 0 0 1 0 0 0 0 2 0 0 0 2 0 0 0 1 0 0 0 2 1 1 0 0 1 1 0 0 0 0 0 0 1 1 2 1 0 1 0 1 1 0 1 1

README

源代码
raw.​githubusercontent.​com

打开URL

描述

在Sublime Text中的任何位置快速打开文件、文件夹、网页URL或其他URL。

安装

使用软件包管理器查找打开URL

如何使用

将光标放在文件、文件夹、URL或单词内,然后运行命令。它将自动扩展选择直到遇到分隔符字符,可以在设置中进行更改(请见下文)。

或者,高亮显示您想要打开的文本。如果文本被高亮,则选择不会扩展。

这里有几种运行命令的方式。

  • ctrl+u (OSX), ctrl+alt+u (Linux/Windows)
  • 右键点击 > 打开URL
  • alt + 双击
  • shift+cmd+p,然后查找打开URL

试试看

将以下项目复制到Sublime Text中。将光标放在其中任何一个上,按ctrl+u(OSX)或ctrl+alt+u(Linux/Windows)。

工作原理是什么?

如果您选择的是文件或文件夹,您可以选择编辑它(使用Sublime Text打开)或显示它(使用macOS Finder/Windows File Explorer/Linux文件管理器打开)。

打开文件和文件夹非常方便。两者都可以指定绝对路径、相对于当前打开文件的路径或相对于当前打开项目的根路径的路径。会展开环境变量和别名~

如果您选择的是URL,它将立即在默认网页浏览器的新标签页中打开。如果您想省略方案(http://),也可以,因为“打开URL”会帮您添加。

如果打开网页URL失败,可能需要更改到您网页浏览器可执行文件的路劲。请查看以下的web_browser_path设置。

如果您的选择不是上述选项之一,并且您没有使用other_custom_commands配置特定URL的定制命令,您将看到两个选项

  • 修改选择后再次尝试
  • 使用您配置的其中一个web_searchers搜索选择
    • Open URL附带提供的唯一网页搜索器是Google搜索
    • 要添加其他搜索器,请在下方的“设置”部分查看更多

快捷键

不希望从菜单项中选择来打开文件或文件夹?在命令面板中寻找打开URL(跳过菜单)。要为此创建快捷键,从命令面板打开首选项:快捷键,并添加以下内容

{ "keys": ["your+key+binding"], "command": "open_url", "args": { "show_menu": false } },

这将直接在Sublime Text中打开文件进行编辑,或在Finder中打开文件夹,而无需先显示菜单。

在文件、文件夹或特殊URL上运行shell命令

Open URL提供了一些设置,您可以配置这些设置来在文件、文件夹或特殊URL(如FTP URL)上运行自定义shell命令

  • file_custom_commands
  • folder_custom_commands
  • other_custom_commands(用于特殊URL,即既不是文件也不是文件夹或网页URL)

定制命令设置应指向一个可以具有最多5个属性的数组对象

  • label必需:命令在下拉菜单中的标签
  • commands 必需:要附加到URL的字符串,或shell参数的数组;如果字符串/数组包含$url占位符,则该占位符被替换为URL,并且URL不附加到字符串/数组末尾
  • pattern可选:如果URL匹配此模式,则命令才出现
  • os 可选:仅在此OS中出现命令;一个为('osx', 'windows', 'linux')的值
  • kwargs可选:传给subprocess.Popen的kwargs

例如,文件的reveal命令使用以下file_custom_commands

"file_custom_commands": [
  { "label": "reveal", "os": "osx", "commands": ["open", "-R"] },
  { "label": "reveal", "os": "windows", "commands": ["explorer", "/select,"] },
  { "label": "reveal", "os": "linux", "commands": ["nautilus", "--browser"] },
],

例如,如果您想为OSX创建将文件夹添加到当前项目或在新窗口中打开文件夹的命令,您可以这样做

"folder_custom_commands": [
  { "label": "add to project", "os": "osx", "commands": ["open", "-a", "Sublime Text"] },
  { "label": "open in new window", "os": "osx", "commands": ["/usr/local/bin/subl"] },
],

设置shell命令的cwd目录

您可能希望选择执行shell命令的目录。Python的subprocess库使用cwd kwarg使这变得简单。

Open URL为cwd kwarg定义了两个特殊值,"project_root""current_file"。使用这些值动态设置shell命令的工作目录为项目根目录或当前打开文件的目录。

查看设置部分或运行Open URL:设置以获取示例。

URL / 路径转换

Open URL有一些设置,允许在尝试打开之前转换您选择的URL / 路径。

以下是一组设置及其默认值

  • aliases: {}
  • search_paths: ["src"]
  • file_prefixes: []
  • file_suffixes: [".js"]

aliases字典是应用在所选URL / 路径上的第一个转换。它将URL中的每个替换为其对应的

其他转换仅影响文件和文件夹路径。 search_paths是一组目录,这些目录被添加到路径的前面,file_prefixes被添加到文件名前,file_suffixes被添加到文件名后。

针对每个搜索路径、文件前缀和文件后缀的组合生成一个路径,并打开包含目录或文件的第一个路径。

想象一下你正在构建一个使用绝对导入,相对于src目录的JS应用。你的应用有一个文件位于src/utils/module.js。打开URL可以使用utils/module直接解析这个文件。非常好!

多重光标

将这些URL复制到Sublime Text中,使用多重光标选择两行,然后运行URL打开器。

该插件将同时打开这两个URL。您可以使用多重光标打开多个文件、文件夹、URL或它们的组合。注意,使用多重光标运行“打开URL”会跳过菜单,就像您运行了打开URL(跳过菜单)一样,对所有选择都进行操作。

设置

要自定义这些设置,按shift+cmd+p打开命令面板,然后查找打开URL:设置

  • 定界符
    • 自动展开所选路径停止的字符,例如\t\n\r\"'`,*<>[](){}
    • 默认设置对Markdown友好
  • 尾部定界符
    • 如果URL末尾出现任何这些字符,将递归删除;对于文件和文件夹路径,尝试具有和没有尾部定界符的URL;默认为;.:
  • 网络浏览器
    • 打开URL用于打开新标签的浏览器;必须是字符串来自此列表
    • 如果您使用空字符串,将使用“默认浏览器”
    • 如果您选择了一个未安装在您的机器上的浏览器,打开URL将报错
  • 网络浏览器路径
    • 打开网络URL的Web浏览器可执行文件路径
    • 此设置覆盖默认网络浏览器和网络浏览器设置
    • 在此处查看相关答案,或查看设置中的示例
  • 网络搜索器
    • 如果您的选择既不是文件、也不是文件夹、也不是URL,您可以将其传递给网络搜索器,这是一个搜索所选文本的URL
    • 示例:{ "label": "google search", "url": "http://google.com/search?q=", "encoding": "utf-8" }
  • 别名
    • 应用于URL的第一个变换,具有键和值的字典;用对应的value替换URL中的每个key
    • 示例:{ "{{BASE_PATH}}": "src/base" }
  • 搜索路径
    • 路径变换;将这些目录连接到路径的开头
    • 示例:["src"]
  • 文件前缀
    • 路径变换;仅将这些前缀添加到文件名中
    • 示例:["_"]
  • 文件后缀
    • 路径变换;仅将这些后缀添加到文件名中
    • 示例:[".js", ".ts", ".tsx"]
  • file_custom_commands
    • 将文件传递给匹配文件路径模式的shell命令
    • 示例,用于将文件路径复制到剪贴板:{ "label": "copy path", "commands": "printf '$url' | pbcopy" }
  • folder_custom_commands
    • 将文件夹传递给匹配文件夹路径模式的shell命令
    • 示例,用于在iTerm中打开文件夹:{ "label": "open in terminal", "commands": [ "open", "-a", "/Applications/iTerm.app" ] }
  • 其他自定义命令
    • 将既不是文件、也不是文件夹、也不是网络URL的URL传递给匹配URL模式的shell命令
    • 示例,用于在特定行号打开文件:{ "label": "subl: open file at line #", "pattern": ":[0-9]+$", "commands": [ "/usr/local/bin/subl" ], "kwargs": {"cwd": "project_root"} }

项目特定设置

某些设置,特别是像aliases这样的URL/路径变换,可能在不同项目中有所不同。幸运的是,Open URL允许您在任意.sublime-project文件中指定项目特定设置。只需将它们放在["settings"]["open_url"]中即可。

{
  "folders": [
    {
      "path": "~/Library/Application Support/Sublime Text 3/Packages/OpenUrl"
    }
  ],
  "settings": {
    "open_url": {
      "file_suffixes": [".py"]
    }
  }
}

项目特定设置覆盖默认和用户设置。

禁用默认键绑定

为此,将"open_url.disable_default_key_bindings": true添加到Preferences.sublime-settings

版本历史

在此查看Open URL的版本历史.

开发

如果您使用了pyenv,则在.python-version文件中使用的3.8版本将导致问题,因为它不是一个有效的pyenv版本。

要修复此问题,请使用pyenv安装某些版本的3.8.X,然后运行ln -s ~/.pyenv/versions/3.8.X ~/.pyenv/versions/3.8

最后

参考:请参阅Google拼写检查

致谢:感谢peterc创建关于此主题的论坛帖子,以及KatsuomiK的贡献,他提供了汇总,这些都成为了此插件灵感的来源。

作者:@noahcoad编写软件只是为了让事情变得更好,让生活更加高效。

维护者:@kylebebak