Sublime-text 自定义快捷键攻略

    好吧.我承认今天很悲剧,本来上午就写好了这篇博文,发布之后,在自己的博文里怎么也找不到.

所以现在又重新写了一份.希望大家能顶一下吧...Nothing is better than your support !

你使用sublime text 的快捷键吗? Did you ever type in some keywords in "baidu" or in "google" to search some useful blogs about this theme for you ?

现在我来分享一下如何自己定义快捷键.这样,快捷键都是自己定义的.也不用老是抱怨说记不住快捷键什么的了.

首先我们要知道到底在哪里定义我们的快捷键.

打开 sublime text  (我使用的是sublime text 2) 如果你是 (sublime text 3) 没有关系,操作方法都是一样的.

找到 Preferences (选项)   我们发现里面有这样两个选项.

Key Bindings  -- Default  //表示系统默认的快捷键

Key Bindings -- User  //这里就是我们要自己定义的文件...


我们选择下面的那个 Key Bindings --User 这个选项.当然不是说你不能在上面的那个文件中定义快捷键.如果你是Sublime text 的高手,那么其实你不用看我这个分享了.由于那个默认的文件快捷键内容众多,如果你改了其中的一部分,发现程序报错了..但是你又找不到哪里错了,岂不是很悲剧...

那你肯定说,下面的那个文件  Default(Windows).sublime-keymap 什么东西都没有,我要怎么开始呢?

Yeah, this is why I write this blog . It's just for you ! haha ....

好了...我们要清楚,该文件是JSON格式的..大家应该对JSON数据类型并不陌生对吧..

在写这些快捷键的时候我们需要注意以下几点内容:

1.属性名必须使用双引号 " " (double quotes) 进行包裹.

2.该文件是 数组对象 即 [ {} , {} ,{} ... ].这种形式.

3.最后一个对象后面不允许有逗号(,) 出现.


记住这几点,我们就开始start from stratch 来进行我们快捷键的编写吧.

① [  ] 这是最外围的(square brackets).

 [

    //We can also use two forward slashes to make some comments here...

    { "keys": ["ctrl+k"], "command": "toggle_side_bar" }

好了,我们已经定义了一个我们自己的快捷键,我们来分析一下它.

keys 表示使用的快捷键组合形式. 这里是 ctrl+k 这个不用解释了吧.

command  表示的是我们要进行什么命令操作...当然,我们不能自己瞎写这些命令,需要参考Default 的里面的内容.

比如这里 toggle 表示的是开关的意思. side_bar  也就是左边的那个显示文件内容列表的侧边栏 ,连在一块toggle_side_bar 就是 对侧边栏进行显示或者隐藏的意思.

哈哈..原来是这样啊..

注意一点:花括号(curly brackets) 后面没有 逗号(comma).

[

    //We can also use two forward slashes to make some comments here...

    { "keys": ["ctrl+k"], "command": "toggle_side_bar" },

    { "keys": ["alt+l"], "command": "move", "args": { "by": "characters", "forward": true }}

]

再来看看这个,我们在上面的基础上又添加了一个快捷键.我们发现多了一个属性.

这个快捷键对象多了一个属性. args

args 表示命令需要的参数,这里很好理解,既然是要 "move",那么我到底该怎么移动呢? 这是个问题...

我们分析一下"by": "characters" 也就是按照字符进行移动, "forward": "true" 向前为真,连在一起就是按照一个字符一个字符向前(左)移动.

哦..原来是这样啊....

那你是不是能够推测假如我想按照单词进行移动,是不是 "words" 呢?

I should say maybe you are right.Just have a try and you can have a deep memory of the point and find something else only for you .

这里还是要注意一点,两个对象之间使用的是逗号(comma), 第二个对象里面的参数同样是对象形式出现的...


好了,这里就是一些简单的定义,我不能把所有的命令(command)都列出来吧...那样也没有必要,凡事有个度就好了.定义一些常用的快捷键,再多的话,那还要鼠标干嘛呢,对吧?

哈哈... 

Best wishes ! 

<think>我们正在处理一个关于Sublime Text 3的错误报告,具体错误是: 'Unable to open /home/jm/.config/sublime-text-3/Packages/Package Control/Package Control.sublime-settings' 同时,用户还提到了日志中的两条信息: 1. reloading plugin Vintage.vintage_motions 2. reloading settings Packages/User/Preferences.sublime-settings 首先,我们需要分析错误的原因,然后给出解决方案。然后解释日志中的两条信息的含义。 错误分析: 这个错误通常意味着Sublime Text在启动时试图打开Package Control插件的设置文件(Package Control.sublime-settings)但失败了。可能的原因包括: 1. 该文件被意外删除或损坏。 2. 文件权限问题导致无法读取。 3. Package Control插件未正确安装或更新中断导致文件不完整。 日志信息分析: 1. "reloading plugin Vintage.vintage_motions": Vintage是Sublime Text内置的一个插件,提供Vi风格的键绑定。这条日志表示Sublime Text正在加载或重新加载Vintage插件的vintage_motions模块。这是正常启动过程的一部分。 2. "reloading settings Packages/User/Preferences.sublime-settings": 这表示Sublime Text正在加载或重新加载用户的自定义设置(Preferences.sublime-settings)。这也是正常行为,通常发生在修改设置后或启动时。 解决方案步骤: 由于错误指向Package Control的设置文件,我们可以尝试以下步骤: ### 步骤1:检查文件是否存在 打开终端,检查文件是否存在: ```bash ls -l /home/jm/.config/sublime-text-3/Packages/Package Control/Package Control.sublime-settings ``` 如果文件不存在,则需要恢复。 ### 步骤2:恢复默认设置文件 如果文件不存在,我们可以尝试从Package Control的默认设置中复制一份。Package Control的默认设置通常位于: `/home/jm/.config/sublime-text-3/Packages/Package Control/Package Control.sublime-settings-default` 执行以下命令: ```bash cd /home/jm/.config/sublime-text-3/Packages/Package Control/ cp Package\ Control.sublime-settings-default Package\ Control.sublime-settings ``` ### 步骤3:检查文件权限 确保当前用户(jm)对该文件有读取权限: ```bash chmod 644 /home/jm/.config/sublime-text-3/Packages/Package Control/Package Control.sublime-settings ``` ### 步骤4:重启Sublime Text 完成上述操作后,重启Sublime Text。 ### 步骤5:重装Package Control 如果以上步骤无效,可能需要重新安装Package Control。 1. 关闭Sublime Text。 2. 删除Package Control目录: ```bash rm -rf /home/jm/.config/sublime-text-3/Packages/Package\ Control ``` 3. 重新安装Package Control: - 打开Sublime Text,按`Ctrl+``打开控制台(console)。 - 根据官网(https://packagecontrol.io/installation)提供的安装命令,复制对应版本的Python代码到控制台执行。 对于Sublime Text 3,安装命令通常是: ```python import urllib.request,os,hashlib; h = 'df21e130d211cfc94d9b0905775a7c0f' + '1e3d39e33b79698005270310898eea76'; 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) ``` - 执行后重启Sublime Text。 ### 步骤6:检查冲突 如果问题仍然存在,可能是其他插件或用户设置冲突。尝试以下: 1. 临时重命名用户设置目录(备份): ```bash mv /home/jm/.config/sublime-text-3/Packages/User /home/jm/.config/sublime-text-3/Packages/User.bak ``` 2. 重启Sublime Text,它会自动创建一个新的User目录。如果此时Package Control能正常工作,说明是用户设置的问题。可以逐个将备份的User目录中的文件移回,以确定是哪个文件引起冲突。 ### 日志信息的含义说明 1. **`reloading plugin Vintage.vintage_motions`**: 这是Sublime Text在启动时加载内置插件Vintage的一部分。Vintage提供了Vi/Vim风格的键绑定和命令。`vintage_motions`是其中处理移动命令的模块。这条日志表明该模块正在被加载或重新加载。如果不需要Vi模式,可以在设置中禁用Vintage插件,但一般不会引起问题。 2. **`reloading settings Packages/User/Preferences.sublime-settings`**: 这表示Sublime Text正在加载或重新加载用户的自定义设置文件(`Preferences.sublime-settings`)。这个文件位于用户配置目录(`Packages/User/`)中,包含了用户对Sublime Text的所有自定义设置(如字体、主题、快捷键等)。通常在以下情况会发生重新加载: - 启动Sublime Text- 用户通过菜单修改设置(Preferences -> Settings) - 用户手动编辑了该文件并保存 这是正常现象,表明用户设置被成功加载。 ### 预防措施 为避免类似问题,建议: 1. 定期备份`~/.config/sublime-text-3/Packages/User`目录。 2. 使用版本控制(如Git)管理用户设置。 3. 安装插件时确保网络稳定,避免中断。 §§相关问题§§ 1. 如何备份和恢复Sublime Text的用户设置? 2. Sublime Text中如何禁用Vintage插件? 3. Package Control安装失败的其他常见原因及解决方法? 4. Sublime Text的日志文件位于何处?如何查看完整日志? </think>### Sublime Text 3 "Unable to open Package Control.sublime-settings" 错误解决方案 #### 🔧 错误原因分析 该错误通常由以下原因导致: 1. **文件损坏或丢失**:`Package Control.sublime-settings` 文件被意外删除或损坏[^1] 2. **权限问题**:当前用户缺少对配置目录的读写权限(`/home/jm/.config/sublime-text-3/`) 3. **插件冲突**:其他插件修改了Package Control的配置 4. **更新中断**:Package Control插件更新过程被意外中断 #### 🛠 修复步骤 1. **验证文件存在性** ```bash ls -l /home/jm/.config/sublime-text-3/Packages/Package Control/ ``` 若缺少文件,从备份恢复或重建配置: ```bash mkdir -p ~/.config/sublime-text-3/Packages/Package\ Control/ echo '{}' > ~/.config/sublime-text-3/Packages/Package\ Control/Package\ Control.sublime-settings ``` 2. **修复目录权限** ```bash sudo chown -R jm:jm /home/jm/.config/sublime-text-3 sudo chmod -R 755 /home/jm/.config/sublime-text-3 ``` 3. **重置Package Control** 在Sublime控制台(`Ctrl + ``)执行: ```python import shutil, os; path=os.path.join(sublime.packages_path(),'Package Control'); shutil.rmtree(path); sublime.status_message("Deleted Package Control. Restart to reinstall") ``` 重启后将自动重装Package Control[^2] 4. **检查插件冲突** - 临时移除其他插件:将 `/Packages/` 目录下的其他插件移出 - 逐一移回插件排查冲突源 #### 📝 日志信息解析 1. **`reloading plugin Vintage.vintage_motions`** Sublime Text正在加载内置的**Vintage插件**(提供Vi/Vim风格编辑功能)。 `vintage_motions`模块处理Vi移动命令(如`w`, `b`, `e`等),属于正常初始化过程[^3] 2. **`reloading settings Packages/User/Preferences.sublime-settings`** 表示Sublime Text正在加载**用户自定义配置**,包括: - 主题设置 - 字体大小 - 快捷键绑定 - 插件配置参数 此过程在每次修改设置后自动触发 #### ️ 高级排查 1. **查看完整日志** 通过控制台(`Ctrl+``)输入: ```python sublime.log_input(True); sublime.log_commands(True); sublime.log_result_regex(True) ``` 2. **手动安装Package Control** 1. 下载[Package Control.sublime-package](https://packagecontrol.io/Package%20Control.sublime-package) 2. 放入目录:`~/.config/sublime-text-3/Installed Packages/` 3. 重启Sublime Text 3. **配置文件位置关系** ```mermaid graph LR A[User配置目录] --> B[Packages/User/*.sublime-settings] C[Package Control] --> D[Packages/Package Control/*.sublime-settings] E[内置插件] --> F[Packages/Vintage/*.sublime-plugin] ``` #### 💡 预防措施 1. 使用版本控制管理配置: ```bash cd ~/.config/sublime-text-3/Packages/User git init ``` 2. 定期备份配置: ```bash tar -czf sublime_backup_$(date +%F).tar.gz ~/.config/sublime-text-3 ``` > 根据引用[2][^2]的操作经验,配置文件的完整性和权限控制是解决此类问题的关键。若问题仍存在,可尝试创建新用户配置环境:`subl --command "new_profile"`
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值