热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

如何优雅地使用SublimeText3

如何优雅地使用SublimeText3

概述

Sublime Text3下载地址:http://www.sublimetext.com/3。本文所有操作都是基于Sublime Text3,操作系统为mac,本文主要摘取自Sublime Text Unofficial Documentation。熟练掌握各种功能和技巧,能极大提高工作效率。

快捷键集合

快捷键

Cmd + shift + d:: 复制并粘贴当前选中内容,如果没选中,复制粘贴光标所在行。

安装

  • 官网下载.dmg文件;
  • 打开.dmg文件;
  • 拖拽Sublime Text 3到Applications文件夹。

如果想要在命令行中启动Sublime Text,需要在终端执行一下命令:

ln -s  "/Applications/Sublime Text.app/Contents/SharedSupport/bin/subl" /usr/local/bin/subl

这样设置之后在终端执行subl即可打开Sublime Text,执行subl 可以打开对应文件。

基本概念

熟悉本节介绍的概念能让你更好地理解本教程。

The Data Directory

几乎所有需要的文件都会保存在data directory下,不同操作系统路径不同:

  • Windows: %APPDATA%\Sublime Text 3
  • OS X: ~/Library/Application Support/Sublime Text 3
  • Linux: ~/.config/sublime-text-3

可以通过菜单:(Sublime Text -> Preferences -> Browse Packages…)在findle中打开该目录的子目录。

The Packages Directory

这是data directory下的一个重要目录。关于编程和标记语言的所有支持都保存在这里。可以通过菜单:(Sublime Text -> Preferences -> Browse Packages…)在findle中打开该目录。

本文中Packages, packages path, packages folder或者packages directory都指它。

The User Package

Packages/User用于保存自定义插件(plugins),snippets,宏(macros)。可以将它看作packages folder下的私人区域。个人程序和插件设置都存放在这里。

Sublime Text更新时不会修改里面的内容。

Sublime Text是可编程的

可以通过API使用Python开发插件。 快捷键Ctrl + `打开控制台,可以在这里执行Python脚本,可以通过这里安装一些插件。

Packages, Plugins, Resources and Other Terms

几乎Sublime Text的所有功能都可以扩展和自定义,可以修改编辑器行为,添加macro和snippets,扩展菜单等等。也可以利用编辑器API创建复杂插件。

Sublime Text的灵活性导致你需要学习很多配置文件。这些配置文件都是JSON活着XML格式。

本文中有时候讲这些配置文件叫做resources。

Sublime Text会查看packages folder下的resources。

package是指包含相关资源的目录。

vi/vim Emlation

可以使用Vintageous让Sublime Text支持vi/vim.

编辑

多字段选择修改

Sublime Text支持多处文本的同时修改:

  • 选中需要修改的文字,编辑器会自动提示文档内的相同文本。
  • 按Cmd + d添加下一个文本段到标记列表,如果需要跳过当前文本段,按Cmd + k然后Cmd + d
  • 快捷键Cmd + u可以将当前文本段从编辑列表去掉
  • ESC键可以退出编辑状态

整行选取

Cmd + l可以选取光标所在行,活着当前选区所在所有行Cmd + Shift + l可以将选区的分裂为多选区,可同时编辑

文本选择

  • Alt + Shift + 在对应放上增加下一个token入选区
  • Ctrl + Shift + m选中光标所在括号的所有内容
  • Cmd + Shift + j选中与光标所在行相同缩进的内容

字符交换

  • Ctrl + t交换相邻的两个字母

搜索替换

Sublime Text支持Perl Compatible Regular Expressions (PCRE) engine的正则表达式搜索,默认搜索为普通搜索,需要在搜索框左边点击对应按钮切换到正则表达式搜索,也可以使用快捷键进行切换。

  • Option + Cmd + r搜索的正则表达式和普通文本切换

单文件内的搜索和替换

  • Cmd + f打开搜索框
  • ESC关闭搜索框
  • Option + Cmd + c切换区分大小写
  • Option + Cmd + w切换是否完整匹配:time 匹配timeOut或者 time单独单词
  • Option + Enter选中全部匹配结果并可同时编辑
  • Cmd + g或者Enter查找下一个
  • Cmd + Shift + g查找前一个
  • Cmd + e选中文本后按此快捷键可直接搜索

替换

  • Option + Cmd + f打开替换面板
  • Cmd + g或者Enter查找下一个
  • Option + Cmd + e替换并查找下一个
  • Option + Enter当焦点在替换面版时会选中全部匹配项并处于可编辑状态

多文件搜索

Cmd + Shift + f打开多文件搜索面版

设置多文件搜索范围

在多文件搜索面版的Where栏指定搜索范围,支持以下方式的搜索范围指定:

  • unix格式的路径
  • 使用通配符排除特定文件symbolic location入:,

也可以使用逗号结合以上三种格式的范围。

文件导航和文件管理

goto anything文件导航

搜索项目任意文件并导航。可在搜索栏进行过滤,可预览当前选中文件。

  • Cmd + p打开文件面版
  • Enter打开当前项并关闭导航面版
  • ->打开当前项,不关闭导航面版
  • ESC关闭导航面版

更多操作:

  • Cmd + r搜索当前文件内的symbol,如函数,类,或者markdown的标题;
  • Ctrl + g跳转到指定行;

左侧side bar导航

  • Cmd + k然后Cmd + b可切换导航关闭状态

项目

Sublime Text将当前打开文件,文件夹当作一个project,将文件夹拖拽到side bar可添加到当前项目。菜单中选择(Project -> Save Project As…)可将相关文件文件夹关联信息保存,下次通过菜单(Project -> open project)可快速打开所有相关文件。

使用snippet添加常用模板

将常用的代码段保存起来, 使用tab在设置好的文本上扩展出来,能提高效率,设置方法:

  1. 菜单: Tools –> New Snippet… 自动打开模板
  2. 编辑好之后保存在Packages/User目录下即可,文件后缀为.sublime-snippet
          
  1. content下CDATA包裹的是扩展后的最终文本;
  2. tabTrigger是snippet的标识, 在标识后面按tab会用content替换标识;
  3. 触发替换的作用域。

例子如下:

    author

在author之后按tab键会扩展为@author: 德淸 deqing.qdq@alibaba-inc.com

Sublime Text3基本使用及常用插件介绍

Sublime Text3下载地址:http://www.sublimetext.com/3本文所有操作都是基于Sublime Text3.

这里是一个非常全面的教程。

快捷键列表

  • Ctrl + g 跳转到相应的行
  • Ctrl + m 在括号起始位置和终止位置之间切换
  • Ctrl + Shift + m 选中括号内内容
  • Ctrl + Shift + k 删除光标所在行
  • Ctrl + x 当光标选中区间时剪切选中区间,否则剪切光标所在行
  • Ctrl + Shift + up 向上选择行,并支持同时编辑多行
  • Ctrl + Shift + down 向下选择行,并支持同时编辑多行
  • Ctrl + l 选择光标所在行

FAQs

1.不支持gbk编码

安装插件ConvertToUTF8,可能需要根据提示安装辅助插件。

2.HTML标签中间的大括号如何自动补全

菜单-> preferences -> Key Bindings - User在json配置文件中添加如下配置。

{ "keys": ["{"], "command": "insert_snippet", "args": {"contents": "{$0}"}}

3.中文输入法不跟随输入位置

答:官方修复之前使用:IMESupport插件。

4.如何为特定文件类型制定语法高亮,如为.handlebar文件设置html高亮

答:菜单中选择:View > Syntax > Open all current extension as... > html这样就可以为自定义后缀名文件使用所需的语法高亮。

Package Control插件管理

Package Control是Sublime Text的包管理器,可以通过它安装2000多个package。安装后的package将自动更新。基本上大部分工具通过自动和手动都可以完成安装。

通过控制台安装Package Control

1.按快捷键Ctrl + `调出控制台;2.在控制台中运行如下代码;

 import urllib.request,os,hashlib; h = '7183a2d3e96f11eeadd761d777e62404' + 'e330c659d4bb41d3bdf022e94cab3cd0'; pf = 'Package Control.sublime-package'; ipp = sublime.installed_packages_path(); urllib.request.install_opener( urllib.request.build_opener( urllib.request.ProxyHandler()) ); by = urllib.request.urlopen( 'http://packagecontrol.io/' + pf.replace(' ', '%20')).read(); dh = hashlib.sha256(by).hexdigest(); print('Error validating download (got %s instead of %s), please try manual install' % (dh, h)) if dh != h else open(os.path.join( ipp, pf), 'wb' ).write(by)

3.以上代码将创建Package安装目录。并且下载Package Control.sublime-package文件到目录下;4.重启Sublime Text,完成安装。

手动安装Package Control

自动安装的原理其实就是在特定目录为Package Control创建文件夹和配置文件,手动创建所需目录,文件同样可以达到安装的目的:

  1. 菜单中选择:Preferences > Browse Packages...;
  2. 在打开的资源管理器中向上一个目录,然后进入到Installed Packages/目录;
  3. 下载Package Control.sublime-package并复制到Installed Packages/目录下;
  4. 重启Sublime Text,完成安装。

卸载已安装的插件

如果是通过package control安装的, 快捷键Cmd + Shift + p打开面板搜索Package Control: Remove Package然后选择需要卸载的插件。

SidebarEnhancements

为左侧sidebar增加功能。

Emmet

Emmet通过简洁的语法描述html内容,提高工作效率。

使用Package Control安装Emmet

  1. 快捷键Ctrl + Shift + p然后在控制窗口中输入Package Control: Install Package;
  2. 选择Emmet安装,重启Sublime Text完成安装。

快捷键

Tab

在HTML, XML, HAML, CSS, SASS/SCSS, LESS and strings in programming languages (like Javascript, Python, Ruby etc.)中按Emmet语法写好语句后Tab键即可生成所需的代码。

由于某些语言中Sublime Text默认的Tab行为是作者更期望的,可以在Emmet.sublime-setting文件中设置disable_tab_abbreviations_for_scopes来取消Tab在这些文件类型中的触发。具体方法见官网tab-key-handler

Ctrl + e

默认在大部分自定义后缀名的文件中使用Tab是不能触发Emmet的,但是使用Ctrl + e可以在任意文档中生效,这在编写html模板时非常有用。

Emmet基本语法

emmet-zen-coding-tutorial是个很不错的教程,下面是一些简单的语法规则。

元素

通过元素名生成HTML标签,如p生成

,当需要生成自定义标签时,使用Ctrl + e即可,如foo生成.

子元素嵌套>

类似CSS子选择器p>ul>li生成。

兄弟元素+

类似CSS兄弟选择器,+生成兄弟关系的元素p+p+p生成。

向上操作符^

Emmet操作符的作用对象是基于当前上下文的,>操作符会让上下文向下转移到深层元素,^操作符可以向上移动上下文,如p+p>p>span+em生成。

通过^操作符修改上下文控制元素p+p>p>span+em^bq生成

多元素操作符*

使用后跟数字,生成对于数量的元素ul>li*5生成。

分组操作符()

使用括号分组完成复杂的逻辑p>(p>ul>li*2>a)*2+footer>p生成

id和class生成

使用类似css中id和class的语法,可以为元素添加所需属性如p#header+p.cls1.cls2生成。

自定义属性

使用类似CSS中[attr]的语法添加自定义属性td[title="Hello" colspan=3]生成。

   

元素编号$

使用*生成多个元素的时候,可以使用$进行编号ul>li.item$*5生成。

{}添加文本

ul>(li{item $})*3生成。

  • item 1
  • item 2
  • item 3

Sublime Text Markdown Preview

sublimetext-markdown-preview是Sublime Text的一个Markdown预览插件,有了它就可以轻松使用Sublime Text编辑Markdown文档了。

使用Package Control安装

  1. 如果没有安装过Package Control,先安装;
  2. 按快捷键Ctrl + Shift + p打开命令窗口;
  3. 在命令窗口中执行Package Control: Install Package;
  4. 选择Markdown Preview并进行安装。

手动安装

  1. 在菜单中选择Preferences > Browse Packages...;
  2. 在弹出的资源管理器中向上一个目录,然后进入到Installed Packages/目录;
  3. 下载sublimetext-markdown-preview压缩包到Installed Packages/目录下并重命名为Markdown Preview.sublime-package;
  4. 重启Sublime Text.

预览Markdown文件

  1. 打开Markdown文件;
  2. 快捷键Ctrl + Shift + p,在控制窗口中输入Markdown Preview;
  3. 此时有多个选项可选,一般选择Markdown Preview: Preview in Browser;
  4. 此时要求选择解析器,任选一个即可;
  5. Sublime Text在默认浏览器中打开Markdown解析后的html文件,有时候只是在新选项卡中打开了html文件,可以右键:copy file path,然后到浏览器中访问即可。

sublime-autoprefixer

sublime-autoprefixer根据Can I Use数据库信息为CSS样式添加适当的厂商前缀,也可以自定义需要添加前缀的浏览器版本。

sublime-autoprefixer只对CSS起作用,不处理Sass或者LESS之类的预处理格式。

使用Package Control安装sublime-autoprefixer

  1. 快捷键Ctrl + Shift + p然后控制台输入Package Control: Install Package
  2. 在弹出窗口中输入Autoprefixer,安装,重启Sublime Text

使用autoprefixer

  1. 支持整个css文件添加前缀,也可选中部分cas代码添加前缀;
  2. 快捷键Ctrl + Shift + p,输入Autoprefix CSS回车。

使用BracketHighlighter高亮括号配对

高亮括号配对在查找时很方便。

使用Package Control安装BracketHighlighter

  1. 如果没有Package Control,先安装;
  2. 快捷键Ctrl + Shift + p,在控制窗口中输入Package Control: Install Package;
  3. 在控制窗口中输入BracketHighlighter并选择安装;
  4. 安装完成。

auto-save自动保存修改

这个插件在1秒没有按键时会自动保存。个人感觉太频繁,可根据需求选择也可以启动sublime text的自动保存功能:

菜单: Sublime Text -> Preferences -> Settings - user

在配置文件中加上: "save_on_focus_lost": true这样当前文档失去焦点时会自动保存。

quoteHTML将HTML拼接为js字符串

作者:德淸文章源自:http://qiudeqing.com/tools/2015/05/31/sublime-text-3.html


推荐阅读
  • 本文讨论了Alink回归预测的不完善问题,指出目前主要针对Python做案例,对其他语言支持不足。同时介绍了pom.xml文件的基本结构和使用方法,以及Maven的相关知识。最后,对Alink回归预测的未来发展提出了期待。 ... [详细]
  • 使用正则表达式爬取36Kr网站首页新闻的操作步骤和代码示例
    本文介绍了使用正则表达式来爬取36Kr网站首页所有新闻的操作步骤和代码示例。通过访问网站、查找关键词、编写代码等步骤,可以获取到网站首页的新闻数据。代码示例使用Python编写,并使用正则表达式来提取所需的数据。详细的操作步骤和代码示例可以参考本文内容。 ... [详细]
  • python3 nmap函数简介及使用方法
    本文介绍了python3 nmap函数的简介及使用方法,python-nmap是一个使用nmap进行端口扫描的python库,它可以生成nmap扫描报告,并帮助系统管理员进行自动化扫描任务和生成报告。同时,它也支持nmap脚本输出。文章详细介绍了python-nmap的几个py文件的功能和用途,包括__init__.py、nmap.py和test.py。__init__.py主要导入基本信息,nmap.py用于调用nmap的功能进行扫描,test.py用于测试是否可以利用nmap的扫描功能。 ... [详细]
  • 本文介绍了lua语言中闭包的特性及其在模式匹配、日期处理、编译和模块化等方面的应用。lua中的闭包是严格遵循词法定界的第一类值,函数可以作为变量自由传递,也可以作为参数传递给其他函数。这些特性使得lua语言具有极大的灵活性,为程序开发带来了便利。 ... [详细]
  • VScode格式化文档换行或不换行的设置方法
    本文介绍了在VScode中设置格式化文档换行或不换行的方法,包括使用插件和修改settings.json文件的内容。详细步骤为:找到settings.json文件,将其中的代码替换为指定的代码。 ... [详细]
  • 本文介绍了在开发Android新闻App时,搭建本地服务器的步骤。通过使用XAMPP软件,可以一键式搭建起开发环境,包括Apache、MySQL、PHP、PERL。在本地服务器上新建数据库和表,并设置相应的属性。最后,给出了创建new表的SQL语句。这个教程适合初学者参考。 ... [详细]
  • 在说Hibernate映射前,我们先来了解下对象关系映射ORM。ORM的实现思想就是将关系数据库中表的数据映射成对象,以对象的形式展现。这样开发人员就可以把对数据库的操作转化为对 ... [详细]
  • 本文介绍了在SpringBoot中集成thymeleaf前端模版的配置步骤,包括在application.properties配置文件中添加thymeleaf的配置信息,引入thymeleaf的jar包,以及创建PageController并添加index方法。 ... [详细]
  • 本文详细介绍了Linux中进程控制块PCBtask_struct结构体的结构和作用,包括进程状态、进程号、待处理信号、进程地址空间、调度标志、锁深度、基本时间片、调度策略以及内存管理信息等方面的内容。阅读本文可以更加深入地了解Linux进程管理的原理和机制。 ... [详细]
  • Webmin远程命令执行漏洞复现及防护方法
    本文介绍了Webmin远程命令执行漏洞CVE-2019-15107的漏洞详情和复现方法,同时提供了防护方法。漏洞存在于Webmin的找回密码页面中,攻击者无需权限即可注入命令并执行任意系统命令。文章还提供了相关参考链接和搭建靶场的步骤。此外,还指出了参考链接中的数据包不准确的问题,并解释了漏洞触发的条件。最后,给出了防护方法以避免受到该漏洞的攻击。 ... [详细]
  • Android源码深入理解JNI技术的概述和应用
    本文介绍了Android源码中的JNI技术,包括概述和应用。JNI是Java Native Interface的缩写,是一种技术,可以实现Java程序调用Native语言写的函数,以及Native程序调用Java层的函数。在Android平台上,JNI充当了连接Java世界和Native世界的桥梁。本文通过分析Android源码中的相关文件和位置,深入探讨了JNI技术在Android开发中的重要性和应用场景。 ... [详细]
  • 本文介绍了在CentOS上安装Python2.7.2的详细步骤,包括下载、解压、编译和安装等操作。同时提供了一些注意事项,以及测试安装是否成功的方法。 ... [详细]
  • 在Android中解析Gson解析json数据是很方便快捷的,可以直接将json数据解析成java对象或者集合。使用Gson解析json成对象时,默认将json里对应字段的值解析到java对象里对应字段的属性里面。然而,当我们自己定义的java对象里的属性名与json里的字段名不一样时,我们可以使用@SerializedName注解来将对象里的属性跟json里字段对应值匹配起来。本文介绍了使用@SerializedName注解解析json数据的方法,并给出了具体的使用示例。 ... [详细]
  • 腾讯安全平台部招聘安全工程师和数据分析工程师
    腾讯安全平台部正在招聘安全工程师和数据分析工程师。安全工程师负责安全问题和安全事件的跟踪和分析,提供安全测试技术支持;数据分析工程师负责安全产品相关系统数据统计和分析挖掘,通过用户行为数据建模为业务决策提供参考。招聘要求包括熟悉渗透测试和常见安全工具原理,精通Web漏洞,熟练使用多门编程语言等。有相关工作经验和在安全站点发表作品的候选人优先考虑。 ... [详细]
  • express工程中的json调用方法
    本文介绍了在express工程中如何调用json数据,包括建立app.js文件、创建数据接口以及获取全部数据和typeid为1的数据的方法。 ... [详细]
author-avatar
阳光下微醺的我
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有