这两个编辑器出自一个人之手,所以除了语言特性和版本的影响,一般性的使用方式几乎是一样的。不要被满屏的按钮吓到,常用的也就那么几个。不必像vim一样完全脱离鼠标,但是记住常用的快捷键还是可以大幅提高开发效率的。一个好的编辑器应该具备以下功能,接触到任何编辑器时也是去学着使用的方向。
1、语法高亮、语法检查
2、强大的搜索与替换
3、标签(类、函数)跳转
4、输入提示
5、代码自动补全
6、丰富的编辑态快捷功能(光标定位、各种维度的复制剪切删除)
6、代码块打开/折叠
7、批量注释代码
8、批量格式化(自动格式化)
9、添加文档或者代码说明
10、VCS
11、代码结构、调用关系示意(代码导航)
12、书签
13、文件头模板、函数签名
整体功能:
shift+cmd+[]标签页
cmd w关闭窗口
shift + esc 隐藏窗口
shift + cmd + a 查找操作(强大)
shift + tab 焦点转移
VCS:
cmd k 到commit页
shift cmd k 到push页
cmd d 对选中文件进行diff
opt + cmd +z 对选中文件进行revert
git vcs功能概述:
有导航页(ctr+tab)进version control。
local change:
文件diff
文件revert
双击进源文件
一个文件的实时历史(不属于git功能)
一个文件的commit记录,每次commit的diff 与当前内容的diff 当时的文件快照
与该分支的远端diff
比较该文件code line中的每一次
比较任一分支上的该文件
log(code line):
工作分支上每一次commit的diff
checkout任一个commit
从某个commit checkout出一个新分支
revert一个commit的变动
commit and push
两个页面最好是分别处理。在push页和codeline都能看到本地分支和远端分支的进度(head和origin)
编辑态功能:
cmd b 跳转到声明处(cmd加鼠标)
opt + 空格 显示符号代码 (esc退出窗口 回车进入代码)
cmd []光标之前/后的位置
opt + F7 find usage
cmd backspace 删除当前行
cmd +c 复制光标当前行,剪切同理
cmd + f 当前文件搜索(回车下一个 shift回车上一个)
cmd + r 当前文件替换
shift + cmd + f 全局搜索
shift + cmd + R 全局替换
cmd+o 搜索class
shift + cmd + o 搜索文件
opt + cmd + o 搜索符号(函数等)
cmd + l 指定行数跳转
shift enter 在行中的时候直接到下一行
cmd + 展开当前
cmd - 折叠当前
shift cmd + 展开所有
shift cmd - 折叠所有
cmd / 注释/取消注释一行
opt + cmd + / 批量注释(pycharm不生效)
ctr + tab 史上最NB的导航窗口(工程文件列表、文件结构列表、命令行模式、代码检查、VCS等,下面两个是可以被替换的)
alt + F12 打开命令行栏
cmd + F12 显示文件结构
cmd j 代码智能补全
alt + F1 定位编辑文件所在位置:
cmd + F6 更改变量
opt + cmd + t 指定代码被注释语句或者逻辑结构、函数包围
Tab / Shift + Tab 缩进、不缩进当前行
opt + cmd + l 代码块对齐(php好用 python由于)
其他
1、自定义文件模板
打开preference
添加php文件头,这样新建PHP文件的时候可以自动套用此模板。
python的新建文件模板可以是:
# -*- coding: utf-8 -*-
"""
@ User: wang.wei_890
@ Date: ${DATE}
@ Time: ${TIME}
@ Usage:
“""
php的新建文件模板可以是:
/**
* User: wang.wei_890
* Date: ${DATE}
* Time: ${TIME}
* File: ${FILE_NAME}
* Usage:
*/
2、自定义函数签名
打开preference
函数模板可以是:
/**
@User: wang.wei_890
@Func:
${PARAM_DOC}
#if (${TYPE_HINT} != "void") * @return ${TYPE_HINT}
#end
${THROWS_DOC}
*/
对于phpstorm,在函数上方输入/**然后按回车就行。
pycharm 在函数下方输入”””然后回车(模板没有找到在哪)
3、代码自动完成模板
编辑代码的时候cmd + j 可以输入模板.
但是pycharm和phpstorm里都没有if的,队python还好。php没有这个模板就比较麻烦。
为php新加if模板:(一定要指定应用于PHP,否则不生效)
if ($CONDITION$) {
$END$
}
类似的添加 else else if while的模板。pycharm几乎一样的操作。
4、为光标像后跳转添加快捷键
phpstorm不支持自定义快捷键。只能为原有的快捷键添加平级的快捷键,以实现兼容。
cmd b是经常用的跳转,跳回来的快捷键是cmd [ ,为了方便操作加一个ctr + esc快捷键。
n、其它特性(摘录)
1、跨平台
OK,其实我上面说的netbeans,zendstudio,eclipse,甚至 komodo都是跨平台的,但这只是其中的理由之一
2、refactor
nb,zs,eclipse都有Refactor功能,但是对PHP的支持都不太好,目前,phpstorm的支持是最好的。这点也足够了
3、自动生成phpdoc的注释
当你一口气写了几百行代码,中间启有十几个function时,你没有写注释,等后到期再补的时候,是不是觉得很痛苦?没关系,phpstorm会自动帮你生成:
点击Generate可以有选择的生成,除了生成注释,还可以生成getter,setter。
当然,如果你在写一个class是继承上级类的话,还可以通过 override Methods生成覆盖父类的方面。第二个是生成接口方法。超级方便
4、内置支持Zencode:
虽然是小功能,但也极有用
5、生成类的继承关系图:
如果你有一个类,多次继承之后,你可以通过这个功能查看他所有的父级关系,很不错:
6、重构
如果你的方法里出现了数字,最好的方法当然是定义成常量,但代码都写完了,怎么办?
当你这么做后,你可以发现在class的最上面帮你生成了一个const,刚才的数字所在的地方也变成了:self::XXXX
对于一大段代码,也可以:
这样就可以将该段代码生成一个function,也是个超级方便的功能
7、有local history功能
这个,还不够 你牛B的?嗯,其实nb和zs以及eclipse都有啦
8、布署
你可以将代码直接upload到服务器上,也可以直接和线上的代码进行compare。