Sublime key bindings使用
开启vi mode后,可以使用很多的VI快捷方式,所以我的sublime已经不是单纯的st了,st的VI模式不完全支持所有的快捷键。我们来看一段官网的key bindings示例:
{
"keys": ["j", "j"], "command": "exit_insert_mode",
"context":
[
{ "key": "setting.command_mode", "operand": false },
{ "key": "setting.is_widget", "operand": false }
]
}
这里使用jj来退出VI的insert模式,比Escape好,手指不用伸老长了。而且我感觉jj也很人性化,用上一段时间也感觉可以。于是,我在想了,这个东西怎么自己设置。要设置key bindings,需要知道它有一些规定的参数。满足复杂的需求,但是我今天只是写个简单的。
一个key bindings的结构
- “keys”: An array with a key combination that this mapping will respond to. In this case, the “escape” key.
- “command”: A method that sublime uses internally to accomplish the task.
- “context”: A configuration object that tells sublime to only respond to this key combination under specific circumstances. In this case,
setting.command_modeneeds to befalse. Meaning you’re in insert mode. This makes sense, you can’t exit insert mode, if you’re not in it.
首先,我们要知道command从哪里来,keys这个简单,一看就知道它就是快捷键。当我们ctrl+`就可以调出控制台。输入:
sublime.log_commands(True)
这时,你所有的操作都会显示出来。
比如我现在想加入一个让它在Command模式下跳到行首的快捷键,如果是vi的话,我们是可以用ctrl+^。这样的话,手指又要做奇怪的1+1。当我们用了key bindings,我们的手指就不用离开原来的位置了。
这时,我们按下HOME键,下面就显示:command: set_motion {"motion": "vi_move_to_first_non_white_space_character", "motion_args": {"extend": true}}
不要傻眼了,照搬回去就行了。
{
"keys":["g","h"], "command": "set_motion",
"args": {"motion": "vi_move_to_first_non_white_space_character", "motion_args": {"extend": true}}
}
这样就完成一个了,如果有什么错误欢迎指出,这也是我第一个写的Key binding。
*不要忘记了 sublime.log_commands(False)
Sublime key bindings使用的更多相关文章
- Emacs key bindings for vim users
Emacs key bindings for vim users | Scarletsky 盒子 盒子 博客 分类 标签 关于 RSS 搜索 文章目录 简介 Emacs 是一个文本编辑器,号称是伪装成 ...
- Sublime key
-– BEGIN LICENSE -– TwitterInc 200 User License EA7E-890007 1D77F72E 390CDD93 4DCBA022 FAF60790 61AA ...
- 我的ubuntu配置
每次装系统都是非常蛋疼的过程,新装的系统还是要配置一下的 首先安装google拼音 sudo apt-get install fcitx fcitx-googlepinyin 然后按装numix主题 ...
- sublime text : The emmet plugin doesn't work when tab key was pressed
Today, I switched my sublime text to version 3. And then I found that the emmet plugin doesn't work ...
- 【Machine Learning】Python开发工具:Anaconda+Sublime
Python开发工具:Anaconda+Sublime 作者:白宁超 2016年12月23日21:24:51 摘要:随着机器学习和深度学习的热潮,各种图书层出不穷.然而多数是基础理论知识介绍,缺乏实现 ...
- 如何优雅地使用Sublime Text
Sublime Text:一款具有代码高亮.语法提示.自动完成且反应快速的编辑器软件,不仅具有华丽的界面,还支持插件扩展机制,用她来写代码,绝对是一种享受.相比于难于上手的Vim,浮肿沉重的Eclip ...
- sublime 相关配置
安转插件:案例格式化HTML代码,需要安装插件,具体安装步骤如下: 1.打开菜单->首选项->插件控制,输入 install package 2.等待程序进入插件管理功能,再输入插件名称: ...
- 如何在sublime text上快速访问html页面?
第一步.安装package control和安装sidebarenhancements插件 原来Subl3安装Package Control很麻烦,现在简单的方法来了 使用Ctrl+`快捷键或者通过V ...
- sublime
sublime的格式化快捷键 其实在sublime中已经自建了格式化按钮:Edit -> Line -> Reindent 只是sublime并没有给他赋予快捷键,所以只需加上快捷 ...
随机推荐
- Programmer's Jokes
1. 一天, 下着小雨, 和同事们一起去上班,一位同事差点滑倒,另一位同事笑话说:如果人走路用爬的就不会摔倒了! 遂反问他:能用两行代码搞定的事情为什么要用4行呢? 2. 有趣的公式( Fr ...
- 关于近期需要学习sqlserver2008
在胜利油田物探院借了一本书叫做 sqlserver2008宝典 第二版,但是看不下去 下面打算直接安装数据库上手了,边练边学
- ThinkPHP中的模型
ThinkPHP中的模型 1.什么是模型(Model) 模型表示企业数据和业务规则,实际项目开发中,主要实现与数据库进行操作. 2.模型的定义规则 模型类的命名规则是除去表前缀的数据表名称,采用驼峰法 ...
- hibernate结合使用gson转换json中一点看法
转发请注明出处:http://www.cnblogs.com/shizhongtao/p/3680216.html 在前后台的交互中,经常需要把bean对象与xml或者json,这里就把自己以前遇到的 ...
- 一些常用的字符串hash函数
unsigned int RSHash(const std::string& str) { unsigned int b = 378551; unsigned int a = 63689; u ...
- 【转】Class.forName()用法详解
ref: http://blog.csdn.net/kaiwii/article/details/7405761 主要功能 Class.forName(xxx.xx.xx)返回的是一个类 Class. ...
- Hbase 0.98集群搭建的详细步骤
准备工作 Hbase的搭建是依赖于Hadoop的,Hbase的数据文件实际上存储在HDFS文件系统中,所以我们需要先搭建hadoop环境,之前的博文中已经搭建过了(详见http://www.cnblo ...
- jqueryGrid 内置的onclickSubmit afterSubmit
$(document).ready(function() { $('#jpgCustomers').jqGrid({ //url from wich data should be requested ...
- java之classpath到底是什么
如果你输入一个命令,比如java那么系统是如何找到这个命令的呢?按照顺序,系统先在当前目录搜索是否有java.exe, java.bat 等. 如果没有,就得到系统的PATH(不区分大小写)里面查找. ...
- MyEclipse反编译Class文件
对于需要查看Java Class文件源码的筒子们来说,必须在项目中导入Java源码才能查看Class文件的具体实现,这不仅十分的麻烦,因为有时我们并不可以获得Class文件对应的Java源码.今天就给 ...