至少很长一段时间内,我个人用的一直是pycharm,也感觉挺好用的,也没啥大毛病
但是pycharm确实有点笨重,啥功能都有,但是有很多可能这辈子我也不会用到,并且pycharm打开的速度确实不敢恭维,即使固态硬盘也只能快了那么一丢丢。所以就尝试了很多IDE工具,最终选择了Sublime
我也相信,通过我的介绍,你也会爱上它的.
首先其他语言有的sublime也必须得有,并且更好用,主要有:
- 集成代码分析
- 代码的自动补全
- git功能的集成
- Sublime command-line 工具
不过上述的的这些功能不像pycharm一样给你配置好了而是需要自己进行一些设置,对很多人来说看着这些设置可能觉得好复杂,感觉还不如直接用pycharm算了,虽然现在网上也有很多教程或者文档教你怎么配置sublime的python开发环境,但是似乎都不是那么完善
所以下面的配置中会包括以下主要内容:
- python代码语法和风格的检查
- 超越其他IDE的代码补全
- 跳转到python标准库,第三方库以及自己定义的函数
- 格式化你的代码符合PEP8规范
- 编辑器的设置,让你写出符合PEP8标准的python代码
- 平滑的git集成与git命令行工具一起工作
- sublime 命令行工具的设置即使用
- 自定义配置颜色,让自己的代码看起来更漂亮,更易读
- sublime 插件的安装
- ......
注意:为了防止新安装的插件没有生效,可以每次安装完成后重启一下sublime
=========================== 前提、sublime安装 ============================
参考之前的几篇博文
=========================== 一、设置python的代码分析工具 ============================
1. pip install flake8
这个工具有以下功能:
- 分析语法错误
- 分析代码结构问题,如:使用没有定义的变量
- 分析不符合规范和美观的代码
所以当这个工具被很好的集成在Sublime中的时候,对自己写代码会有非常大帮助
下面通过把Flake8和Sublime集成起来,而Flake8是非常好的一个工具在python中
速度非常快,误报率低,用它来做代码分析检查是非常合适的
Flake8是一个需要独立安装的命令行工具
在安装Flake8之后,再为Sublimean安装SublimeLinter和SublimeLinter-flake8插件
安装完成后,通过 flake8 --help可以查看相关参数
需要升级该插件时,只需通过 pip install --upgrade flake8
2. Install SublimeLinter
SublimeLinter是Sublime的代码框架,它可以集成Flake8这样的linter引擎来检查我们的代码,
并可以把它们的消息转换成Sublime Text然后把它们显示在我们代码旁边。
SublimeLinter 可以让Flake8和Sublime Text成为一个非常完美的搭档,可以直接在代码编辑器里看到Flake8的消息。
所以首先我们需要安装SublimeLinter,然后我们将安装连接Flake8和SublimeLinter的SublimeLinter-flake8
通过ctrl+shift+p 进入如下图,并输入 install Package,然后回车
初次点会慢点,然后出现下图:
输入我们要安装的:SublimeLinter,选择如图所示进行安装:
提示如下图所示表示安装完成
3. Install SublimeLinter-flake8
现在需要将SublimeLinter和Flake8集成连接起来,这里就通过SublimeLinter-flake8插件来完成
同样的,和上一个插件安装方法类似也是通过ctrl+shift+p 进入如下图,并输入Flake8
出现下图表示安装完成
这个时候需要我们Sublime重启后生效,然后我们打开可以写一个py文件
写了一个打印hello,World,我们从左下角就可以看出
从上图的提示我们可以看出,我们的插件已经在起作用了,提示的错误是:在这个文件没有回车到新的一行
虽然现在已经生效了,但是为了让它更好用我们还需要对
SublimeLinter-flake8做一些简单的配置
4. 配置SublimeLinter-flake8
先看一下当出现错误的时候的提示:
其实这种错误提示可能不是很友好,会在错误部分外面有个框,在其他IDE中可以能是在错误代码下有
红色下划线表示的,如果习惯了那种显示方式可以通过下面方法配置
看到如上图所示时,把左边的配置全部拷贝到右边的配置里
然后把配置中 "mark_style": "outline",更改为:"mark_style":“squiggly_underline”
在配置中找到"lint_mode": "background"更改为:"lint_mode": "load_save"
更改后的效果如下:
=========================== 二、代码自动补全功能============================
很多程序员选择IDE工具的时候都希望他的自动补全功能能好用点,而Sublime 一开始并没有非常好用的插件,直到出现了Anaconda插件
它提供了一下功能:
1. 代码的自动补全
2. 显示python类,方法或者函数的使用方法
3. 检查导入模块是否有效
4. 按照PEP8规范自动化格式我们的代码
5. 可以跳转到函数的定义或者类的定义
6. .....
1. Install the Anaconda Package
和上面安装讲的安装插件的方法一样
出现如上图提示表示安装完成,重启生效
当然我们还是需要进行一些简单配置:
配置如下图所示内容
{
"anaconda_linting": false,
"pep8": false
}
上述的配置是因为这个插件和flake8插件的功能相互冲突,这里最好使用flake8的配置就可以了
我们可以测试它的一些功能:
当我们输入print的时候就会显示出参数及文档
这里还包括了很多功能不再一一演示,功能使用都在:
这个插件有很多实用的功能可以自己详细看看并使用
=========================== 三、配置git环境============================
(这一块目前还不是很懂。。。)
首先要确保自己的电脑已经安装了git
如果没有安装,需要去这里下载:https://git-scm.com/download/win
安装过程如下:
下一页的rebase和stash可以选上
对自己的git环境进行基本的配置:
git config --global user.email "yourname@yourdomain.com"
git config --global user.name "Firstname Lastname"
git config --global --list 命令可以查看上面的配置
安装git插件GitGutter
安装过程和之前安装其他插件的方法一样:
安装这个插件的作用是为了让我们更好的和git联合在一起,如:在公司里你从git上拉了同时的代码,然后你在上面做更改,这个时候当然你可以过git diff命令查看你修改了哪些地方,但是如果我们通过这个插件直接可以在代码里体现出来,如下图,图一是我从git上随便clone了一个代码,然后操作修改
从上图中我们能够很清楚的知道我们添加了哪些代码,同样的删除哪些代码,修改哪些代码都会有相应的提示
让这个功能不止这些,通过下面例子演示:
git init test-repo
cd test-repo
echo hello world > myfile.txt git add myfile.txt
通过上面命令添加一个test-repo仓库,然后写了一个文件
正常如果我们提交肯定是git add .然后git commit出现如下图:
这里可以通过Esc然后:q键退出
其实这里我们可以让每次commit的时候打开sublime,在sublime编辑里写提交信息,这样会更加方便,配置如下:
git config --global core.editor “‘C:Program FilesSublime Text 3subl.exe’ –wait –new-window”
这样当我们再次commit的时候就是如下图效果:
现在如果信息过长就会看起非常不方便
Git Commit Message Syntax 插件安装
这个插件安装好后不会有提示,重启一下sublime
=========================== 四、外观配置============================
1. 关于字体(暂时没用)
在如下图所示的地方下载字体
可以选择字体之后直接右键安装
配置内容如下:
修改Preferences中的settings
添加内容有:
"font_face": "Ubuntu Mono",
"font_size":14,
"font_options": [
"directwrite",
"subpixel_antialias"
],
"font_options": [
"directwrite",
"subpixel_antialias",
"no_bold", "no_italic"
],
"caret_style": "solid",
"wide_caret": true,
"highlight_line": true,
"draw_white_space": "all",
"indent_guide_options": [
"draw_active"
],
"line_padding_bottom": 1,
"line_padding_top": 2,
"fold_buttons": false,
"scroll_past_end": true,
"shift_tab_unindent": true,
上面这些修改之后还有一个重要的修改,让你的ide看起更加好看
2. 安装Tomorrow Color Schemes插件(暂时没用)
3. 安装SoDaReloaded插件(暂时没用)
安装完成后配置Preferences → Settings
配置如下:
"theme": "SoDaReloaded Dark.sublime-theme",
然后做如下操作:
选择标注的主题色,最后效果如下:
4. 配置PEP8规范
配置内容如下:
"tab_size": 4,
"translate_tabs_to_spaces": true,
"trim_trailing_white_space_on_save": true,
"ensure_newline_at_eof_on_save": true,
"rulers": [
72,
79
],
"word_wrap": true,
"wrap_width": 80
这样配置好后,我们写代码的长度就有限制,超过了就会自定换行,如下图:
5. 关于文件管理插件安装
默认情况下如果我们在左边的文件直接右键只能看到如此简陋的操作,如果想要更加丰富,则需要安装插件
当安装完成后:
需要配置perferences -> settings
"file_exclude_patterns":[
"*.pyc",
"*.pyo",
"*.exe",
"*.dll",
"*.obj",
"*.o",
"*.a",
"*.lib",
"*.so",
"*.dylib",
"*.ncb",
"*.sdf",
"*.suo",
"*.pdb",
"*.idb",
".DS_Store",
"*.class",
"*.psd",
"*.db",
"*.sublime-workspace"
],
"folder_exclude_patterns": [
".svn",
".git",
".hg",
"CVS",
"__pycache__"
]
安装Zen Tabs插件
安装完成后做做如下配置:
配置内容为:
{
"open_tab_limit": 5,
"hightlight_modified_tabs": true,
"show_full_path": false,
}
===================== 五、ctrl+左键跳转到函数定义的地方 ======================
1.安装ctags
ctrl + shift + p --> install package --> 安装ctags
2.下载ctags的执行程序
下载地址:http://ctags.sourceforge.net/
下载完成,解压
3.配置ctags路径
preferences --> package settings --> ctags --> settings default, 把这里面的代码全部拷贝到
preferences --> package settings --> ctags --> settings user,把command的值改为ctags.exe的路径
4. 使用,在使用函数调转功能前,需要先生成.tags文件,只需在项目文件管理器的项目文件上右键点击Ctags:Rebuild Tags即可(注意,在改动文件之后也许重新生成.tags)
5. 所有工作都准备充分之后,就可以在函数名上右键点击navigate 头definition跳转到指定函数了,返回用jump back;
设置跳转快捷键方法:
主菜单栏 -> Preferences -> Package Settings -> CTags -> Key Bindings-User,会打开用户自定义快捷键的配置文件,添加如下代码:
[
{
"command": "navigate_to_definition",
"keys": ["ctrl+shift+left_click"]
},
{
"command": "jump_back",
"keys": ["ctrl+q"]
},
]
备注:
当在一个c工程下,使用 ctags -R,再用vim打开其目录下的源文件时,出现了
cstag:tag not found
但是已经在顶层目录下已经有了tags;
这是因为源文件在当前目录下没有找到tags文件,
解决办法是在在vim的配置文件~/vimrc添加set tags=tags;
使如果源文件在当前文件夹下没有找到tags,可以到它的上层目录下继续寻找;
文章参考:
https://www.cnblogs.com/zhaof/p/8126306.html
http://blog.chinaunix.net/uid-26557245-id-3594974.html