之前有在 Gist 上做备份, Gist 又增加了个人搜索的功能
可能是搜索关键词不清晰, 搜索有些麻烦, 另外我也想记一些说明
Xmodmap 的配置写在 ~/.Xmodmap
文件里, Gist 在:
https://gist.github.com/jiyinyiyong/a03fd3767e04a8508755
Arch 上需要手动执行 xmodmap ~/.Xmodmap
在每次重启时候重载
按说要 X 在启动时每次读取配置起作用的, 可我没能搞定很久了
文件内容:
keycode 18 = 9 bar
keycode 19 = 0 backslash
keycode 20 = minus underscore
keycode 34 = parenleft parenright
keycode 35 = bracketleft bracketright
keycode 47 = colon semicolon
keycode 51 = braceleft braceright
之前求助@lilydjwg 被推荐用 Fcitx 插件来替代 Xmodmap 映射键位
实际使用感觉对进入桌面的速度有明显影响, 最后放弃了
另外写钩子在启动 X 自动加载配置的方案, 以后还得再测
这个脚本主要的功能是调整括号引号冒号的位置: ;
交换了, 这是针对 CoffeeScript 改的
三个括号, 考虑到编辑器自动补全, 被同意放在 p
键右边
一次是 ( [ {
, 加上 Shift
后依次是 ) ] }
受影响的键位也跟着做了调整, 9 0
上依次是 | \
两个
受键位的影响, Sublime 的快捷键出错, 设置了前两行:
[
{ "keys": ["ctrl+["], "command": "indent" },
{ "keys": ["ctrl+("], "command": "unindent" },
{ "keys": ["ctrl+shift+("], "command": "fold" },
{ "keys": ["ctrl+shift+["], "command": "unfold" },
{ "keys": ["ctrl+tab"], "command": "next_view" },
{ "keys": ["ctrl+shift+tab"], "command": "prev_view" },
{ "keys": [" "], "command": "insert_snippet", "args": {"contents": " "}, "context":
[
{ "key": "selection_empty", "operator": "equal", "operand": true, "match_all": true },
{ "key": "preceding_text", "operator": "regex_contains", "operand": "^\\s*$", "match_all": true }
]
}
]
后两行是为了 ctrl tab
能更直观而调整的,
http://sublimetext.userecho.com/topic/30368-make-ctrltab-only-cycle-tabs-in-current-group-and-in-order-of-appearance/
以及 Folding Code 因为我键位设置而导致的麻烦..
然后是映射行首为空的, 空格键将插入两个空格, coffee 的缩进是了
另外 Settings 完整的配置是这样的, 后面我将做一些解释:
https://gist.github.com/jiyinyiyong/5275061
{
"draw_centered": true,
"font_face": "Monaco",
"font_options":
[
"subpixel_antialias"
],
"font_size": 10,
"highlight_line": true,
"highlight_modified_tabs": true,
"ignored_packages":
[
"Vintage"
],
"indent_guide_options":
[
"draw_normal",
"draw_active"
],
"line_padding_top": 1,
"match_brackets_angle": true,
"shift_tab_unindent": true,
"show_tab_close_buttons": false,
"soda_classic_tabs": false,
"space_auto_indent": true,
"tab_size": 2,
"binary_file_patterns": ["node_modules/*"],
"file_exclude_patterns": ["node_modules/*"],
"hot_exit": false,
"remember_open_files": false,
"translate_tabs_to_spaces": true
}
draw_centered
是让代码不靠到左边界, 主要是稍微好看一些吧
字体用的 Monaco
, Github 用的 Consolas
类似, 我分辨不出来
我不用 Vintage, 容易造成误操作, 况且 Sublime 快捷键已经很强
个人更期待缩进线跟随光标而不是行头, 跟着光标更灵活
binary_file_patterns
是 Goto Anything 功能的配置
可以屏蔽 Node 模块里的文件, 这样搜索范围就缩小了
https://twitter.com/radagaisus/status/290095794520993792file_exclude_patterns
可以屏蔽搜索时的模块文件
http://sublimetext.userecho.com/topic/19456-exclude-filesfolders-from-project-by-specifying-regex-or-relative-path-from-project-root/
hot_exit
和 remember_open_files
保证重启 Sublime 后单独目录
对此我另外在做的设置是 gnome-terminal --working-directory=/opt/s
这样的目的是在初次打开终端能快速定位到我的代码目录
然后 Sublime 每次每次打开都是单独的项目, Goto Anything 就很方便了
indent_guide
是缩进线, Sublime 有三类缩进线, 具体见帖子
http://www.sublimetext.com/forum/viewtopic.php?f=2&t=9267
为此我稍微改动了自带的主题, 用来突出重要的一条
https://gist.github.com/jiyinyiyong/5047540
缩进我采用的是两个空格, 首先制表符在 Github 上很难看, 又不好控制
其次 CoffeeScript 规范是两空格, 缩进深的时候也不太远
然后让 tab 自动转为空格, 这 Sublime 大概有处理, 并不是全局的
另外我有个插件里定义过行头空格键插入两个空格
首先 Backspace 原本就能直接删除两个空格的
我的办法有些 Hack, 不通用, 如果 Sublime 以后能支持就好了
我是写在一个插件里, 但没控制好, 全局都起作用了, 临时这样用着
https://github.com/jiyinyiyong/Cirru.subl/blob/master/Default.sublime-keymap
[
{ "keys": [" "], "command": "insert_snippet", "args": {"contents": " "}, "context":
[
{ "key": "setting.space_auto_indent", "operator": "equal", "operand": true },
{ "key": "selection_empty", "operator": "equal", "operand": true, "match_all": true },
{ "key": "preceding_text", "operator": "regex_contains", "operand": "^\\s*$", "match_all": true }
]
}
]