概述 Vintage 是 Sublime Text 中一个 vi 模式的包,这允许你在 Sublime Text 中使用 vi 命令。 Vintage 模式是开源的,在GitHub 上贡献你的代码吧。 启用 VI 模式 默认是禁用的,在菜单栏Preferences/Settings - Default打开配饰文件,从ignored_packages字段中移除"Vintage"即可启用 vi 模式。
Example: fork Fork is a method of XClient and you can use it to send a request to all servers that contains this service. If any of servers returns response whithout an error, Fork will return for thi
主机权限和 内容脚本匹配 是基于匹配模式定义的一组 URL。匹配模式本质上是一个以允许的 schema(http,https,file 或ftp 开头)的URL,并且可以包含 “*” 字符。特殊模式 < all_urls > 匹配以允许的 schema 开头的任何 URL。 每个模式包含 3 个部分: schema - 例如,http 或file 或 * 注意:对文件 URL 的访问不是自动的。用
模板设计:
在 fis 提供的三种语言能力中,并没有提供对声明依赖的资源进行加载的功能。因此在 YOG2 中,我们通过扩展 swig 后端模板引擎,来添加对资源的加载能力。 YOG2 会重写 html, head, body 标签用于搭建资源加载的总体框架,并且添加了 require, widget, script 标签用于处理静态资源和后端组件。 基础结构 一个基础的 YOG2 后端模板应该类似 <!doc
更新内容 在应用里有两种更新内容的方法。较好的方法是用sync自动更新内容。Syncing 能保持内容自动更新,因为它不需要用户操作。 另外一种,手动刷新需要用户通过动作或者手势启动内容更新。手动刷新提供同步的同时保持当前的滚动位置。例如在Gmail里检查新邮件。 滑动刷新 滑动刷新是一个滑动手势。可用在普通列表,方格列表的开始处和卡片集合的最近内容出现的位置(Index 0)。 位置: 典型的,
应用内搜索 当应用内包含大量信息的时候,用户希望能够通过搜索快速地定位到特定内容。 最基本的搜索包括以下过程: 打开一个搜索文本框 输入查询并提交 显示搜索结果集 然而,可以通过加入一些增强功能来显著提升搜索体验: 启用语音搜索 提供基于用户最近历史查询的搜索建议,即使是在输入查询之前 提供满足应用数据中实际结果的自动完成搜索建议 应用内搜索中有两种主要的模式:持久性搜索(persistent s
设置 应用设置允许用户选择他们对应用行为的偏好。它们授予用户真实的控制感,并且避免用户被同样的问题反复打扰。 访问设置 由于用户并不需要经常使用设置,所以它们在 UI 中并不显眼。应用中访问设置时:在任何情况下,进入“设置”的按钮都应简单命名为“设置”。如果当前的页面支持左导航栏,那么把设置放在导航栏中除“帮助及反馈”外的所有按钮的下方。另外,如果当前页面里有工具栏,把设置放在工具栏的更多操作(a
层级一 层级二 三层级或者更多 层级一 标签 只有单层导航的产品可以在顶层使用基于文本的标签。 为了避免滚动,设置一个三到四的水平标签最大值。 带有两个标签菜单的手机示例 带有三个标签菜单的手机示例 平板上,标签宽度和对齐方式由屏幕尺寸、方向以及菜单数量决定。标签可以全排也可以固定,可以居左、居中或者居右。 查看标签以获取更多信息。 平板上的带有四个段落的全排标签示例 平板上的带有标题和扩展头部的
手势 手势控制分为触发动作(Touch Mechanics,用户手指在屏幕上如何动作)和触发行为(Touch Activities,界面上特定动作在特定情境下引发的结果)。 这是因为同样的触发动作(如单次触击)在不同情境下可能会带来不同的结果(如轻触,取消,开启/关闭指示),同样单次触发行为(如放大)可能是由多种触发动作(如捏放,双次触击,双次触击拖拽等)实现。 触发动作 触发动作是用户的手指在界
错误是应用未按预期执行时出现的状况, 一般发生在: 应用无法识别用户输入的信息 系统或应用故障 用户执行的多个操作产生了冲突 用好的设计避免错误发生. 让你的应用理解用户, 而不是让用户去理解你的应用. 当错误不可避免的发生时, 向用户传达清晰的信息能更好地让用户理解发生了什么以及如何快速解决它. 随时随刻保存当前状态, 尤其是用户输入内容时. 在众多反馈信息中找到最重要的优先显示, 确保正确的信
模块系统 Rust有两个与模块 (module) 系统相关的独特术语:crate和module, 其中包装箱 (crate) 与其它语言中的 libary 或者 package 作用一样。 每个包装箱都有一个隐藏的根模块,在根模块下可以定义一个子模块树, 其路径采用::作为分隔符。包装箱由条目 (item) 构成,多个条目通过模块组织在一起。 定义模块 使用mod关键字定义我们的模块: // in
单例模式(Singleton Pattern)是一种常用的软件设计模式,该模式的主要目的是确保某一个类只有一个实例存在。当你希望在整个系统中,某个类只能出现一个实例时,单例对象就能派上用场。 比如,某个服务器程序的配置信息存放在一个文件中,客户端通过一个 AppConfig 的类来读取配置文件的信息。如果在程序运行期间,有很多地方都需要使用配置文件的内容,也就是说,很多地方都需要创建 AppCon
前面我们介绍了 os 模块和 re 模块,本章再介绍 Python 常用的一些标准模块: argparse base64 collections datetime hashlib hmac 其中: argparse 是用于创建命令行的库; base64 是用于 base64 编码和解码的库; collections 模块提供了 5 个高性能的数据类型,如 Counter,OrderedDict 等
给对话框,确认信息框,或者其他内容使用模态时可以调用。为了使模态工作,你需要给模态一个 Id 来关联触发器。增加一个关闭按钮,只要增加类 .modal-close 到你的关闭按钮上。 模态的 HTML 结构 <!-- Modal Trigger --> <a class="waves-effect waves-light btn" href="#modal1">模态</a> <!-- Modal