任何netbeans功能将使我的一天?

Kri*_*ris 44 php netbeans

由于XDebug的集成,我最近对我的php工作非常喜欢netbeans.它让我几乎忘掉了textmate(这个小东西仍然打败了netbeans)

您认为我应该了解的一个很棒的netbeans功能,更重要的是为什么以及如何使用它?

我要求这样做是为了优化我在使用IDE方面的技能,并基于对其他人有效的想法可能对我有用(并希望其他人).

Kri*_*ris 42

我发现了另一个我想分享的天才:

你可以做自定义代码折叠(与php无关,只是netbeans)

把它放到一个代码文件中:

// <editor-fold defaultstate="collapsed" desc="getters and setters">

some boring code you don't need to see every time here

// </editor-fold>
Run Code Online (Sandbox Code Playgroud)

这个行为与#regionvisual studio中的pragma marks 或xcode中的s 类似.但不像regions,它不会搞砸你的代码的工作,它只是一个评论!

  • 甚至不知道那个!! +1 (2认同)

CMS*_*CMS 26

Subversion集成直接在IDE和地方史是我必须使用的,最喜欢的功能.

  • 以及mercurial,CVS和mercurial插件 (9认同)

Joh*_*ter 19

我发现Netbeans for PHP工作中最有用的一个特性是它理解PHPDoc(与它理解Javadoc的方式相同),并将其用于类型提示.

/**在函数定义之前键入,点击返回,它将创建一个PHPDoc模板.

/**                              <-- I typed this one line
 * @param <type> $otherObj       <-- Netbeans added these 3 lines
 * @return <type>                <--
 */                              <--
public function exampleFunction($otherObj)
{
    $myObj = new MyClass($otherObj);
    return $myObj;
}
Run Code Online (Sandbox Code Playgroud)

<type>适当的类型替换placemarkers:

/**      
 * @param OtherClass $otherObj
 * @return MyClass
 */
public function exampleFunction($otherObj)
{
    $myObj = new MyClass($otherObj);
    return $myObj;
}
Run Code Online (Sandbox Code Playgroud)

瞧,您将使用Ctrl-space获得类型完成(和弹出文档).

  • 如果你输入提示你的函数参数,Netbeans会选择它,你不必替换<type>文本. (3认同)

mos*_*hen 17

通过jVi插件实现令人敬畏的Vi绑定.

  • 我知道这不是每个人都喝的茶,但我发现使用Vi绑定我的工作速度要快得多.你应该在某个时候尝试一下. (12认同)
  • 好的,但为什么我想在Netbeans中使用VI绑定?(VI手册比我的冰箱大,所有我读到的都是":q!") (2认同)

Bar*_*lom 13

if ($x instanceof SomeClass) {
  $x->.... // now it has code completion with SomeClass' methods.
}
Run Code Online (Sandbox Code Playgroud)


snr*_*nrp 11

和具有高级输入的代码模板!

参数化代码模板(尝试在netbeans中键入fnc,然后立即按Tab键,然后继续按Tab键查看发生了什么,如何循环访问函数名称和函数参数 - 查看代码模板内部以了解如何完成此操作).(选项>编辑器>代码模板)

一些简单的例子(我做了一些,有些带有netbeans):

  • [forek]扩展为:[foreach($ array as $ key => $ value){}](这个带有netbeans,其余的我做了)
  • [arr] + Tab扩展为:[array();]
  • [kv] + Tab扩展为:['key'=>"val",](key和val是我可以循环浏览并使用tab编辑的参数.代码模板如下所示:['$ {key}'= >"$ {val}",]其中[$ {something}]是模板参数,它打印[something].如果你想要它打印[$ something]我认为你必须使用三个] $]字符:[ $$$ {键}])

编辑:您可以使用单个字母为箭头创建代码模板(例如"m"代表),但是当您输入代码时,您必须在字母前面放置一个空格,否则它不会识别它.例如:$ obj m [按Tab键],展开到[$ obj - >].中间的空间工作正常,不是sintax错误. /编辑

每次我希望有一个模板的东西,我实际插入模板,然后立即使用它继续与PHP编程的其余部分.

带有快捷方式的作为迷你代码模板!(Netbeans>菜单>编辑>开始/停止宏录制)

我为php制作的最好的实际上是代码模板(因为'+ Tab由于某种原因不能用作代码模板,只有当模板以它起作用的字母开头时)([快捷方式]插入[文本]):

  • 快捷方式[Ctrl +;]插入[ - >](没有更多的keybooard体操,没有更多的dot sintax羡慕其他语言:))
  • 快捷方式[Ctrl + Shift +;]插入[=>]

  • 这个确定+1.这不是典型的,但对于上面的<editor-fold>标签,对于那些来自C#的人来说,这对#region标签来说有点麻烦.相反,我为开始和结束标签创建了一个代码模板来进行自定义Netbeans折叠. (2认同)

z *_* - 9

这个链接有很多键盘快捷键,派上用场.我打印出来的副本并固定在我电脑旁边的墙上.遗憾的是,我没有看到任何特殊的PHP快捷方式.

UPDATE:http://netbeans.org/project_downloads/usersguide/shortcuts60.pdf UPDATE2:http://netbeans.org/project_downloads/www/shortcuts.pdf(7.0)


Mic*_*icE 8

我会添加任务集成.没时间敲定一些东西?添加NetBeans将为您跟踪的简单任务.您可以自定义在Tasks中跟踪的内容Options -> Miscellaneous -> Tasks,但我发现下面的格式最有用,因为它与PHPDoc注释很好地对齐(参见wherehere的评论):

/**
 * @todo Create public setters and __toString() for this class.
 */
Run Code Online (Sandbox Code Playgroud)


Tom*_*and 6

在java中编程时,Ctrl + Space是我最喜欢和最常用的功能,我认为它也是为PHP启用的.但是,如果你喜欢net beans,你很可能已经知道它,如果没有尝试,请发现它的作用.

还可以通过Ctrl +导航到相关的源代码.点击从变量,方法调用到类引用的任何内容都是一个很好的功能.

此外,右键单击源代码时显示的弹出菜单包含许多有用的工具,可用于从重构到代码生成的所有内容.


Dan*_*ark 6

这听起来很荒谬,但我在Netbeans做的一件事就是代码格式化.它的代码格式(源 - >格式)摇滚.

它的SVN集成也很棒,但已经说过了.

  • alt-shift-f(自动格式),我一直都在使用它 (5认同)

小智 5

能够快速创建快速宏.

例如,这是一个在当前行的末尾放置一个分号并将光标放回宏开始之前的位置.

";" delete-previous caret-end-line";" jump-list-last-edit jump-list-last-edit(我知道默认情况下它存在于其他语言实现中.但它在PHP Netbeans中默认不起作用.)

作为一个长期坚持使用IDE的人,我喜欢能够自定义小东西以提高我的效率.


Coo*_*ose 5

如果你考虑Netbeans 6.7它有一个像Dreamweaver一样的同步功能

在您可以添加自定义ftp的方式中,将其导入到项目中,当您在本地保存文件时,它们也会上载到服务器,因此您可以使用半备份系统.

(相信我这比直接在ftp树上工作并且意识到当前tmp文件和服务器文件之间的转移失败更好,因为你关闭了文件窗口而丢失了你的工作:))

  • 在现有页面上运行FTP支持时必须要小心,下载/上传选择实际上很难控制(右键单击和搜索框).我建议添加多个运行配置; 一个用于进行本地更改(手动上载),另一个用于在开发服务器上实时工作(保存时上传).您可以在主工具栏中立即切换这些配置.此外,如果使用NB处理FTP,您可以轻松初始化Mercurial存储库,只需点击几下即可获得完整的版本控制. (2认同)