sublime配置_weixin_34293059的博客-程序员宅基地

技术标签: python  开发工具  php  

sublime 确实招人喜欢, 大有全面超越vim的趋势, 大胆猜测原因有:

2.0.1版下载地址 http://c758482.r82.cf2.rackcdn.com/Sublime%20Text%202.0.1%20Setup.exe

1.默认配色就很酷; 也跨平台.
2.没有工具条, 留给编辑区的区域很大, 可以专注于代码.
3.不必过多使用鼠标,又不用像vim, 你必须记住太多的快捷键.
4.有一个非常棒的插件管理器, 这点比vim强多了.
5.做配置没有GUI, 配置文件都是json格式, 如果格式有问题的话, sublime会及时报错.  

===========================================
插件索引:
===========================================
插件管理器                Sublime Package Control
我用的color theme       obsidian color scheme
GBK 编码插件              GBK Encoding Support
智能错误提示插件          SublimeLinter
komodo移植版代码完成插件      SublimeCodeIntel(重量级)

Python标准库帮助提示插件      AndyPython
调试器                    SublimeREPL
快捷键管理                KeymapManager
括号匹配高亮插件          Bracket Highlighter
版本控制插件              sublime-tortoise
高亮文本的occurrence      WordHighlight
Sidebar增强               SideBarEnhancements
python智能代码插件  SublimeRope(暂不用)
***我整理了几个插件打包到 https://anydbtest.svn.codeplex.com/svn/sublime/selected_sublime_packages.7z


===================================
My current Base File settings
===================================

{
    //appearance setting
    "color_scheme": "Packages/Obsidian Color Scheme/Obsidian.tmTheme",
    "highlight_modified_tabs": true,
    "font_face": "Consolas",
    "font_size": 10.0,

    //tab key setting
    "translate_tabs_to_spaces": true,
    "tab_size":4,
    "detect_indentation": false,
    "trim_trailing_white_space_on_save": true,
    "shift_tab_unindent": true,

    //use rope auto-completion instead
    "suppress_default_completions":true
}

 


===========================================
设置environment level的python的编译配置文件(用处不大)
===========================================
在默认的python编译配置文件设定python.exe的路径, 该编译配置文件为 \Data\Packages\Python\Python.sublime-build
cmd指向我们的python后, PYTHONPATH自动会指向该python的Lib目录

{
    "cmd": ["C:\\python27\\python.exe", "-u", "$file"],
    "file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)",
    "selector": "source.python"  # set selector if it is default python.exe
}

通常我们有多个virtualenv环境, 可基于这个默认的编译配置文件, 复制多份, 比如有py27_flask.sublime-build, py27_django.sublime-build等, 然后修改它们的python.exe路径.

build system还有很多参数, 参考 http://sublime-text-unofficial-documentation.readthedocs.org/en/latest/reference/build_systems.html
    
    
    
===========================================
设置project level的python的编译配置文件(重要, 运行我们的程序)
===========================================
其实设置了env level 的python配置文件后, 在sublime中运行一个包含多个module的project, 很有可能调用不起来, 因为你的 project src目录并没有加到PYTHONPATH环境变量中. 手动将project src加到PYTHONPATH环境变量是一个办法, 如果开发十多个project, 都这么做, PYTHONPATH环境变量就乱套了.
一个好的做法是: 设置project level的build 配置.

具体是: 在project的配置文件(文件名为PROJECTNAME.sublime-project), 加入如下的代码

"build_systems":
    [
        {
            "cmd": ["C:\\python27\\python.exe","${file}","arg1"],
            "env": {
    "PYTHONPATH":"c:/workspacepython/your_project/src/"},
            "name": "py_for_your_project"
        }
    ]

创建了一个名为 py_for_your_project 的build system, 将项目src目录加到PYTHONPATH, 并设置了当前文档为python.exe要执行的脚本, 并传了一个arg1的参数.

测试脚本

#module: c:\\abc\\SayHello.py
import sys
if __name__ == '__main__':
    name=sys.argv[1]
    print("Hello "+name)
    print(sys.path)  #观察c:\abc是否已经在其中了

 
===========================================
sublime 自己的 site-packages目录
===========================================
sublime 的default package 目录, 比如D:\program\Sublime2181\Data\Packages\Default\, 该目录相当于python的site-packages目录, 目录下的python文件, 可以在console中import进来. 在console中, view.file_name() 代表当前文档.


===========================================
插件管理器 Sublime Package Control
===========================================
网址: http://wbond.net/sublime_packages/package_control/installation
插件的安装排行榜:  http://wbond.net/sublime_packages/community#sort-installs
另外, 该插件作者还开发了sublime-tortoise和 SVN 等几个流行的插件
功能: 发现/安装/删除/升级 sublime插件.
安装: 有两种模式, console 安装模式和手动安装模式
手动安装模式:
    下载包, 这个包文件是一个zip格式文件, 将该文件复制到Installed Packages目录下. 重启 sublime,
    用法: 安装后在preferences菜单中有 package settings 和 package control两个菜单项.  如果上网需要代理的话, 需要在package settings中设置.
          其他包都可以通过package control菜单项来安装.
console 安装模式: ctrl+`后, 在console的输入框中, 输入下面的代码
    无代理联网
 import urllib2,os; pf='Package Control.sublime-package'; ipp=sublime.installed_packages_path(); os.makedirs(ipp) if not os.path.exists(ipp) else None; urllib2.install_opener(urllib2.build_opener(urllib2.ProxyHandler())); open(os.path.join(ipp,pf),'wb').write(urllib2.urlopen('http://sublime.wbond.net/'+pf.replace(' ','%20')).read()); print 'Please restart Sublime Text to finish installation'


===========================================
关于各种 Python 插件的配置
===========================================
有很多插件都有自己的一套配置, 一般包括2个配置方案, 一个是 Settings-Default, 另一个是Settings-User.
必须清楚的是, 我们不应该修改Settings-Default, 因为这类配置方案很可能在插件升级过程中被重写. 要对插件做个性化配置, 应该在其的Settings-User方案中设置, 比如 SublimeLinter    
Preferences->Package Settings->SublimeLinter->Settings-User
 

===========================================
GBK Encoding Support 插件
===========================================
这个插件太重要了, sublime 在windows本身不能很好打开cp 936(GBK)编码文件, 这类编码文件在国内应该是最常见的了


===========================================
智能错误提示插件 SublimeLinter 的配置
===========================================
https://github.com/kronuz/SublimeLinter/
共有几种检查模式:
"sublimelinter_popup_errors_on_save": true //show popup list of all errors when file is saved
"sublimelinter": true        //background 工作模式
"sublimelinter": "load-save" //在load或save文件时检查代码
"sublimelinter": "save-only" //在save文件时检查代码
"sublimelinter": false       //on-demand 工作模式
用法:
检查代码: 如果工作在on-demand模式下,  按 Control+Alt+L 检查代码.或者 Control+Shift+P 呼出命名列表, 选择 SublimeLinter: Lint Current File
列出错误: Control+Shift+P 呼出命名列表, 选择 SublimeLinter: Show Error List, 

显示下一个错误: ctrl+alt+E,  显示上一个错误: ctrl+alt+shift+E

 



Here are my settings:

{ 
    "sublimelinter": false, //on-demand, Use Ctrl+Alt+L to check
    "sublimelinter_popup_errors_on_save": true, //show popup list of all errors when file is saved
    "pep8_ignore": ["E201","E202","E203","E221","E225","E231","E251","E303","E501","W291","W292","W293","W391"]
}


===========================================
智能代码提示插件 SublimeCodeIntel 的配置
===========================================
移植于 komodo 的代码提示插件, 支持 python, ruby, php, javascript 等脚本语言.
SublimeCodeIntel 网址:  https://github.com/Kronuz/SublimeCodeIntel

参考文章: Virtualenv 下 Sublime CodeIntel 配置, http://hellowiki.com/2012/03/22/sublime-codeintel-configuration-for-virtualenv/

 

配置方法: 找到配置文件~/.codeintel/config 或者 project_root/.codeintel/config(后者只针对某个项目进行配置,文件不存在时要手动创建), 编辑如下:

{
    "Python": {
     
        "python": 'C://Python//python_env//py27_cronplus//scripts//python.exe',
        "pythonExtraPaths": ['C://Python//python_env//py27_cronplus//Lib//site-packages','other_folder_here'
        ]
    },
    "Python3": {
        "python": '/usr/bin/python3',
        "pythonExtraPaths": []
    } }

配置完config文件后, 记得重启一次sublime.
我的按键绑定设置为:

[
     { "keys": ["ctrl+j"], "command": "code_intel_auto_complete" },
     { "keys": ["ctrl+f3"], "command": "goto_python_definition" }
]

 按键说明:
1. ctrl+space, 自动完成;
2. ctrl+j, 在状态栏显示call tip, 不是自动完成.  默认状态栏字体太小, 看起来很吃力, 可按下面方法修改一下.
3. ctrl+F3, 跳转到定义处

加大状态栏字体size
如果是default theme, 需打开Default.sublime-theme文件, 找到"class": "label_control"配置项, 修改"font.size"为16.0,  如果是选择了其他theme, 需修改对应配置文件.
比如文件位置, D:\program\Sublime Text 2.0.1\Data\Packages\Theme - Default\Default.sublime-theme
    {
    "class": "label_control",
    "color": [255, 255, 255],
    "shadow_color": [24, 24, 24],
    "shadow_offset": [0, -1],
    "font.size": 16.0
    },

 


===========================================
Python标准库帮助提示   AndyPython
===========================================

SublimeCodeIntel在status bar给出calltip提示, 如果你对要使用的函数不熟悉, 仅仅靠这点提示是远远不够的, 最好能显示完整的docstring信息. AndyPython就提供这个功能.

安装后, 需要手工加一个快捷键 { "keys": ["shift+f1"], "command": "py_help" }

将光标移到函数上, 按下shift+f1, 就能完整显示docstring.

 

===========================================
Navigation history 插件
===========================================

装了sublimecodeintel后, 按ctrl+F3后跳到函数的definition处了, 如何快速回到调用处? 有了这个插件就简单了.
 安装步骤:

先下载文件,

https://github.com/optilude/SublimeTextMisc/blob/master/navigationHistory.py

然后将文件放到 sublime 的Packages目录中

最后, 设置快捷键  
  { "keys": ["ctrl+alt+left"], "command": "navigation_history_back"},
  { "keys": ["ctrl+alt+right"], "command": "navigation_history_forward"}


===========================================
代码完成和重构插件 SublimeRope 的配置(暂不用)
===========================================
和 SublimeCodeIntel 不同, 这个插件只支持python语言.  SublimeRope 有一个配置project的向导, 用起来很方便. 经我测试SublimeRope 智能提示在很多情况下, 提示都不全, 所以推荐使用 SublimeCodeIntel 插件.
网址: https://github.com/JulianEberius/SublimeRope

Rope安装后, 即能够自动search当前你编辑的文件和PYTHONPATH中的symbol, 并提供auto-complete功能. 但不能search你的project下其他文件中的symbol. 我们可以将该项目转成Rope Project. 方法是: Ctrl+Shift+P, 然后输入"Rope: New Project", 会调出python project setup功能, rope提示我们设置项目路径和virtualenv路径.

比如: 项目路径为 C:/Proj/eclipse_workspace/cron_plus/src
      virtualenv路径为 C:/Python/python_env/py27_cronplus   注意:不是scripts目录

配置:
1. 如要禁掉 sublime 自带的auto completion功能, 在Settings-User中设置suppress_default_completions,
"suppress_default_completions":true
2. 编辑文件/.ropeproject/config.py, 将你的python路径加进去.
prefs.add('python_path', '/Users/ebi/dev/project/lib/python2.7/site-packages/')

使用方法: Ctrl+Shift+P, 然后输入"Rope: New Project", 会调出python project setup功能
Ctrl+Space, auto completion

SublimeRope默认没有定义快捷键, 可插件作者使用ctrl+r再加其它键, 因为ctrl+r是 常用命令Goto Symbol的 快捷键, 所以, 我采用ctrl+q+其它键.
ctrl+q+d,   goto_python_definition
ctrl+q+h,   python_get_documentation
ctrl+q+i,   python_auto_import
ctrl+q+c,   python_regenerate_cache




===========================================
SublimeREPL 插件--调试python程序
===========================================
需要安装SublimeREPL插件,  https://github.com/wuub/SublimeREPL
将我们项目的PYTHONPATH 加到 REPL user configuration 中, 文件名sublimeREPL.sublime-settings:
{
    "default_extend_env": {"PYTHONPATH":"/Users/pyppo/Documents/workspacepython/pyCmdLiner/"}
}
另外 Run python script with pdb is defined by default in this way:
/home/stav/.config/sublime-text-2/Packages/SublimeREPL/config/Python/Main.sublime-menu
{"command": "repl_open",
 "caption": "Python - PDB current file",
 "id": "repl_python_pdb",
 "mnemonic": "d",
 "args": {
    "type": "subprocess",
    "encoding": "utf8",
    "cmd": ["python", "-i", "-u", "-m", "pdb", "$file_basename"],
    "cwd": "$file_path",
    "syntax": "Packages/Python/Python.tmLanguage",
    "external_id": "python"
    }
}



===========================================
Sidebar增强插件- SideBarEnhancements
===========================================
仅能使用于Project, 同时需要将要在sidebar显示的目录加到project中, 菜单Project/Add folder to project. 完成这个步骤后, sidebar的右击菜单就多了很多菜单项.



===========================================
快捷键管理 KeymapManager 插件
===========================================
可集中管理各个Sublime Text2插件的快捷键
http://www.welefen.com/manager-sublime-text-2-plugin-hot-key-with-keymapmanager.html
https://github.com/welefen/keymapmanager
使用方式: 通过ctrl + alt + k 或者通过顶部菜单 View -> Keymap Manager打开Pannel。



===========================================
快捷键
===========================================
CTRL+`, 打开 console,  该 console 的输入和输出是分开的, 输入区是一个单行输入框, 可以输入python 语句, 如果要一次执行多个语句, 语句之间必须用分号分隔, 分号后跟几个空格都无所谓, 不会出现indent不一致问题.
ctrl+/ 单行注释, ctrl+shift+/块注释,sublime会自动根据语言选择注释方式
ctrl+F,单文件查找
ctrl+shift+F, 文件夹查找
Ctrl+Shift+P, 打开命令列表
Ctrk+K+B, 显示/隐藏 项目和文件夹Side bar
CTRL+R, 在其后的输入框中可以展现一个文件的 outline
Ctrl+M 光标移动至括号内开始或结束的位置
鼠标滚轮, 列选择模式, 该功能极其一般
----
Ctrl+F4, 关闭tab页
Ctrl+N, 新建tab页
Ctrl+O, 打开文件
Ctrl+P, tab页跳转功能. 输入字母, 自动按照tab页的文件名或文件路径来匹配.
Alt+Num, 切换到第几个tab页
Ctrl+Alt, 前后切换tab页
---
结构化代码的折叠: 将光标移到要折叠行的最左边(靠近行号处), 会出现一个向下的箭头, 点击就能折叠代码,
任意代码的折叠: 选择代码, 然后 Ctrl+Shift+[;  展开折叠, 用Ctrl+Shift+]
Ctrl+K+1, 折叠当前文件的所有的代码
Ctrl+K+J, 展开所有的折叠
---
安装SublimeCodeIntel后的快捷键:
ctrl+space, 自动完成;
ctrl+j, 在状态栏显示call tip, 不是自动完成.
ctrl+F3, 跳转到定义处
---
安装SublimeLinter后的快捷键:
Ctrl+Alt+L, 检查代码



================================================
参考文章
================================================
http://wiki.ddenis.com/index.php?title=The_best_text_editor_is_Sublime_Text_2_or_it_doesn%27t_exist
http://www.tuicool.com/articles/RBBJNz (http://outofmemoryblog.blogspot.fr/2012/08/python-development-with-sublime-text-2.html)
 

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_34293059/article/details/85520596

智能推荐

jxl.jar的安装和使用简介_iteye_10134的博客-程序员宅基地

将jxl.jar拷贝到"%JREHOME%\lib\ext"目录下。 jxl.jarInstallationJExcelApi comes packaged as a zipped tar file, called something like jexcelapi_2_0.tar.gz.To unpack on UNIX systems, at the command lin...

大数据之Hadoop_MapReduce电影评分案例之高效TopN_普罗米修斯之火的博客-程序员宅基地

电影评分案例之高效TopN例如:我们要求每部电影的最高评分的前n条记录,按照之前的做法在map端是以电影名为key,MovieBean为value,输出到reduce端,然后分组,将每组数组放入到List集合中按分数高低进行排序,取前n条.此时我么可以考虑在map端时将MovieBean作为key,输出到缓存区中,让缓存区自动按电影名分区并排序,然后分组,在reduce端我们只需要取出前n条记录即可.这样我们可以避免放入List集合中再排一遍序,大大的减少了运算量.那么当我们以MovieBean为ke

ArcEngine制作专题地图(上,标题、图例)(20190920)_冉总的博客-程序员宅基地_arcengine专题地图

1、需求为地图添加地图的基本要素(图例、比例尺、指北针)及相关注记,并将地图导出为图片。2、解决方案(1)创建地图的基本要素主要用到IMapFrame接口中的CreateSurroundFrame方法;(2)控制地图的基本要素主要用到IMapSurround接口;(3)还有一个IMapSurroundFrame接口,这个是做什么的我也不知道怎么表达,代码中慢慢意会吧;(4)通过一个标志...

原始dao的开发和mapper代理开发_猩猩之火的博客-程序员宅基地

一:原始dao开发方法  概要:1.在上篇中搭建好的框价中编写dao接口和dao实现类     2.向dao接口实现类中注入SqlSessionFactory,在方法体内通过SqlSessionFactory创建sqlSession.DAO接口类UserDAO.java   package com.mybatis.dao;import java.util.List;

国产麒麟系统初始化达梦数据库8_西城十七妹的博客-程序员宅基地

国产麒麟系统安装达梦数据库初始化数据库注册服务初始化数据库进入到数据库的安装目录的bin下[[email protected] bin]# cd /opt/dmdbms/bin/bin运行dminit文件[[email protected] bin]# ./dminit填写参数# 数据库文件的存放路径input system dir: /dm8/dmdbms# 数据库名input db name: TESTDB# 监听端口号(5236)input port num: 5236#

navicat链接oracle数据库的时候 报错:Oracle net admin error_ListenForcsdn的博客-程序员宅基地

连接oracle数据库报错:解决方式:1:https://www.oracle.com/technetwork/database/database-technologies/instant-client/downloads/index.html下载,对应版本重新启动

随便推点

ubuntu18.04虚拟机重启后分辨率降低的问题解决_dongxia_dl的博客-程序员宅基地_ubuntu重启后分辨率降低

参考链接VMware中Ubuntu 出现Unknown Display问题解决_xuguokun1986的博客-程序员宅基地

(K8S实践0)Centos7.6部署k8S(v1.14.2)集群_MJ-ZJK的博客-程序员宅基地

Centos7.6部署k8S(v1.14.2)集群系统环境说明:一、docker安装1.安装依赖包[[email protected] ~]# yum install -y yum-utils device-mapper-persistent-data lvm22.设置Docker源[[email protected] ~]# yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo3.Docker

【Flink】Object Reuse 数据重用 深拷贝 一些坑_九师兄的博客-程序员宅基地

1.概述我们为了提高程序的性能使用了 Object Reuse 数据重用,这个东西的介绍请参考 【Flink】Object Reuse 模式(Stream API) 性能优化 chain 数据重用 不深拷贝 ,然后因为数据重用,一直没有出现问题。因此也没考虑。但是今天出了问题。大概意思是在chain模式下,在算子c中对一个数据进行更改,那么在B中,可以看到更改后的数据,在B中修改C也能看到。在非Chain模式下,是没有这个问题的。这就比较有意思了,必须去看看呀。2.场景再现2.1 ch

度量学习——总结_不说话装高手H的博客-程序员宅基地_基于度量学习

传统方法User guide: contents — metric-learn 0.6.2 documentation深度学习基于深度学习的度量学习方法大都由两个部分组成:特征提取模块和距离度量模块。距离度量模块的任务是使同一类样本间的距离更靠近,而不同类样本间的距离更远离。这一模块更多的实现方法是改进损失函数,对模型的学习更加“赏罚分明”。基于正负样本对的方法也可以称为基于对比学习的方法,抽出正负样本对学习。对比学习的方法现在正广泛的应用于学习更好的特征提取模块,即用自监督学习的方法来

vue实现番茄钟_不见蝴蝶不见君。的博客-程序员宅基地_vue 番茄钟

随笔 - 40  文章 - 0  评论 - 0vue 实现 tomato timer(蕃茄钟)近期在学习【时间管理】方面的课程,其中有一期讲了蕃茄工作法,发现是个好多东西。蕃茄工作法核心思想就是:工作25分钟,休息5分钟。如果您好了解更多可以自行度娘。 在加上本人是一个程序猿,就想用程序的方式来表达对此工作法的敬意。因此就产生了用vue实现一个tomato timer的想法。演示地址 ...

记一次truelicense安装证书报stream close()异常_Min_Monk的博客-程序员宅基地_de.schlichtherle.license

背景近期,由于工作需要研究了下truelicense,给xxx添加一个证书,限制产品的使用期限。前期将truelicense整合到spring-boot项目中很容易,过程中没有出现问题,但是同样的代码在整合到osgi容器中的时候,出现了异常,异常如下:de.schlichtherle.xml.PersistenceServiceException: java.lang.reflect.UndeclaredThrowableException at de.schlichtherle.xml.Per

推荐文章

热门文章

相关标签