(在Vim中(重新)格式化PHP代码
我如何格式化看起来像这样的PHP代码 class SomeClass { function insideclass() { } } 使用没有任何外部工具的VIM? class SomeClass { function insideclass() { } } 我并不是说这是格式化代码的最佳方法,但这是我们在团队中所关注的. 编辑:删除了对摘要插件的引用,这引起了问题的混乱. 解决方案 您有两个无关的问题,并且找不到两者的独特解决方案. 您不喜欢默认的class摘要. 没问题.如果尚未存在,请创建~/.vim/snippets/php.snippets并自定义以通过遵循其他答案来适合您的团队规则.狙击手不够聪明,无法适应您的编码样式. 您现有的某些代码不符合您的编码规则. Snipmate根本没有帮助,因为它仅处理插入,而不是转换.您将需要一些外部 Beautifier 或一些宏.
0 2023-06-03
编程技术问答社区
php + vim-बगलौर (Bangalore)在最后一个字符र之前有一个中断。
我用 http://translate.google.com/#en| hi| bangalore 为班加罗尔和बंगलौबंगलौ 获得印地语. 但是当我粘贴在vim中时,最后一个角色之前有一个休息. 我使用的是Preg_replace,带有正则模式/[^\ p {l} \ p {nd} \ p {mn} _]/u 用于匹配单词.但这将最后一个字符视为一个单独的单词. 这是我的输入字符串मैनेजमेंट,我希望在Preg_replace之后的输出 之后输出 $cleanedString = preg_replace('/[^\p{L}\p{Nd}\p{Mn}_]/u', ' ', $name); 但是我得到的输出是मैनेजमेंट.我在这里做错了什么?我想问题始于VIM如何处理我粘贴的文本. 解决方案 尝试此正则"/[^\p{L}\p{Nd}\p{Mn}\p{Mc}_]/u" लौ中的O符号占用额外的水平空间,而不是मै中的ae. Unicod
0 2023-06-03
编程技术问答社区
为vims balloonexpr添加PHP API文档
vim具有 balloonexpr ,该在E.G.中使用了. ruby​​ 显示API文档的当前悬停的单词. 我如何获得PHP类似的东西?有哪些CLI/可编程选项可以访问PHP API文档?显然,离线版本优于在线php.net HTML版本:).可以例如Doxygen用于此? 是否已经有可以使用PHP API文档的工具? 解决方案 该手册也可以通过 *Nix Style Man页面获得.安装和使用: 安装:pear install doc.php.net/pman 升级:pear upgrade doc.php.net/pman 示例用法:pman strlen (从: http://php.net/down/download-docs.php) 安装了pman页面后,您可以编写一些balloonexpr函数以获取所需的任何信息. 还有SQLITE和JSON文档来源,其中可能包含您要显示的信息,请其他解决方案 它使用的是ri
0 2023-06-02
编程技术问答社区
vim关键字完成了带有后斜线的ctags?
我正在使用ctags在VIM的PHP项目上完成关键字完成.由于ctags在框外没有处理php名称空间,因此我在我的ctags命令中添加了一个正则选项: ctags (...) --regex-PHP='^namespace\s+([^;]*)/\1/c/' (...) 这效果很好:如果我键入Foo,我会得到有关Foo,Foo\Bar,Foo\Bar\Baz等的建议. 但是,当VIM确定在标签文件中查找的关键字时,后斜线似乎是一个单词分离器. 换句话说,键入Foo\Ba do not 给我有关Foo\Bar\Baz等的建议,这就是我希望的.它只会建议实际以Ba开头的标签(即我的名称空间都不是). 跳到标签时,这也是一个问题.如果我在光标下有Foo\Bar\Baz,并且do Ctrl+],它将带我到包含Baz的文件,其中可能是包含Foo\Bar\Baz的文件.如果后斜线没有将其视为单词分离器,我想这会更好. 那么,有没有办法使
2 2023-06-02
编程技术问答社区
告诉ctags不要在评论中解析内容
当我生成ctags文件时,它似乎也在注释中解析内容.例如,使用VIM插件Tagbar,我可以在函数列表中看到不存在的函数,例如: 是 在 中 只是 这里发生的事情是CTAGS正在评论并找到以下内容: "此功能是...",认为"是"是一个函数,然后在标签文件中添加了它的条目. 我想知道是否有一种简单的方法告诉ctags不要在评论中解析内容. 我发现,显然有一个这与PHP项目有关,但我想如果答案可以涵盖适用于任何编程语言的解决方案(如果可能的话). 示例: 函数的以下评论生成标签" is",并将其列为函数: /** * This function is run to set certain preferences */ 解决方案 CTAGS 5.8中有一个错误.幸运的是,在发布后一天,JAFL命令修订729来解决该问题.不幸的是,从那以后没有发布. 幸运的是,该项目被分叉为"通用ctags".这是从源安装它的方法. #
0 2023-06-01
编程技术问答社区
如何用Vim和Eclipse提高PHP5.3项目的生产力(可能使用Eclim与Zend Studio的集成)。
我总是努力在开发应用程序时,在过去几年中,我可以说我已经迈出了提高生产率的好步骤,但是我仍然发现我需要更多的工具或方法.我需要更快地编辑并学习触摸打字(目前正在此过程中),因此我发现需要移至VIM.现在已经过去了一年多了,我已经丢下了窗户并搬到了Linux(更精确),我正在使用IDE Zend Studio 与 aptana studio 一起开发OO PHP5.3网站.尽管IDE可以从IDE中完成我需要的一切(我很快就会列举),但它缺乏VIM会提供的编辑模式. 所以我的问题是:我如何在VIM中的IDE中拥有相同的以下"杀手级功能"? 这是我需要将生产率保持在高水平的广泛功能列表: php5.3的代码完成,不仅是PHP5,不仅是PHP功能,而且还添加到buildPath中的任何库,例如 Zend Framework 和我自己的图书馆. 代码格式化,除了XML文件之外,我不使用太多,但是这是我很快就需要的,因为我将开始领导公司内的更多人,而格式化将有助于保持代码连贯
0 2023-05-31
编程技术问答社区
用Vim突出显示代码块背景
当我在VIM工作时,我想对PHP标签中的所有代码进行轻微的背景颜色更改.因此,例如,背景是用于常规XHTML标记的固体黑色,然后在PHP标签内显示更轻巧的亮度,以帮助我快速识别它.这是我可以/应该通过配色方案做的事情吗? 是否有其他方法? 解决方案 您可以在配色方案 中做到这一点 示例: hi htmlTag guifg=#00bdec guibg=#200000 gui=bold
0 2023-05-31
编程技术问答社区
Vim。显示PHP的函数提示或签名
我已经有了我不错的PHP语法,突出显示了所有设置,而且看起来很棒.我现在需要的是在键入时显示内置功能签名或提示的能力. 这在许多IDE中是如此普遍,我认为有人为VIM执行此操作. 示例:在插入模式和键入str_replace时,vim屏幕上的某个地方会说"混合str_replace(混合$ search,混合$替换,混合$ objection [,int&$ count])" 有人知道这个好插件吗?如果不是用于PHP,那么也许可以使用正确的功能定义文件移植到PHP的东西. 谢谢! 解决方案 您可以使用 taglist 插件.它的功能之一是在状态栏中显示功能签名.另请参见 a>. TagList使用Exuberant-CTAG来解析您的PHP文件.看看我写的文章您如何撰写/补丁繁殖ctags,使其使用PHP5更好地工作.
0 2023-05-31
编程技术问答社区
如何让vim omnicompletion支持使用:的php类方法。
使用VIM + PHP + CTAGS,我可以获得相当不错的PHP自动完成.但是一个部分确实使我感到不安:让VIM进入自动完成类方法.这是一个例子: 完整方法是 CVarDumper::dumpAsString ,如果我输入此内容,我希望它完成: CVarDumper::d 双色不起作用.但是,如果我将::替换为.,则它会自动完成: CVarDumper.d 我看到 c ++ omnifunc 函数可以选择::完成: let OmniCpp_MayCompleteScope = 1 " autocomplete after :: 是否有ft-php-omni函数的等效词,或者是在? 中破解此功能的方法 更新: 事实证明,问题是 supertab插件,在我的.vimrc 中特别是此选项. " SuperTab option for context aware completion
0 2023-05-31
编程技术问答社区
使用vim的php自动完成功能
我正在寻找VIM的PHP自动完成解决方案.我已经在这个线程中: vim php omni完成 但这对我不起作用. 我使用此bash脚本生成标签文件: #!/bin/bash exec ctags -V -f tags \ -h \".php\" -R \ --exclude=\"\.git\" \ --totals=yes \ --language-force=PHP \ --tag-relative=yes \ --PHP-kinds=+cfiv \ --regex-PHP='/(abstract)?\s+class\s+([^ ]+)/\2/c/' \ --regex-PHP='/(static|abstract|public|protected|private)\s+(final\s+)?function\s+(\&\s+)?([^ (]+)/\4/f/' \ --regex-PHP='/interface\s+([^ ]+)/\1/i/' \ --regex-PHP='/\
0 2023-05-30
编程技术问答社区
恼人的vim(不)缩进规则
编辑PHP代码(我不确定它是否特定于该语言),并且我在跨逗号分隔列表的中间创建了一条新行,这些列表跨越多行,缩进规则始终不知道我要离开的行. 这是一个视频.这发生在数组,函数参数列表等中. . 我有什么可以阻止这种情况发生的事情,或者要解决错误的任何更快的方法,而不是向上移动,重新指示,向下移动,重新注册(因为在离开行时它被清除),继续吗? .vimrc 解决方案 尝试:set indentexpr="",看看是否有帮助.有关涉及FileType插件的部分,请参见:help filetype-indent-off(这可能是此IndentExpr的位置). 其他解决方案 您的缩进由PHP缩进脚本控制(您.vimrc中的" Filetype indype").我将这些选项用于我的PHP缩进,您将其放入~/.vim/after/ftplugin中: setlocal autoindent setlocal cindent setlocal cinwords=if
0 2023-05-30
编程技术问答社区
不能让 "Syntastic "vim插件工作
我已经安装了我怎么知道发生了什么?当我从vim调用它时,语法不会显示错误.第一个错误(我的.vimrc中的not and editor command)是否表示我不知道的东西? 我有.vimrc: set statusline+=%#warningmsg# set statusline+=%{SyntasticStatuslineFlag()} set statusline+=%* let g:syntastic_enable_signs=1 let g:syntastic_auto_loc_list=1 我在~/.vim/syntax_checkers中也有python.vim.我已经可以使用 解决方案 是您的环境路径上的pyflakes吗?如果不是这样,则必须将其添加到您的路径中,或修改语法\ checkers \ python.vim,然后将完整的路径添加到二进制中. 您必须修改两行: if !(executable("pyflakes")) 以及
2 2023-05-30
编程技术问答社区
Mac上的旺盛的Ctags
我目前正在使用VIM进行PHP开发.几周前 我过去使用以下脚本(Linux Machine)生成标签: #!/bin/bash cd ~/www/ZF/ ctags-exuberant -f ~/.vim/tags/zend \ -h ".php" -R \ --exclude="\.svn" \ --totals=yes \ --tag-relative=yes \ --PHP-kinds=+cf \ --regex-PHP='/abstract class ([^ ]*)/\1/c/' \ --regex-PHP='/interface ([^ ]*)/\1/c/' \ --regex-PHP='/(public |static |abstract |protected |private )+function ([^ (]*)/\2/f/' 您可以看到我使用了" ctags-exubertant"命令.问题在于,这在我的系统(MAC)上找不到.我只有CTAGS命
0 2023-05-30
编程技术问答社区
Syntastic for Vim: ~/.vimrc 中需要哪些行?(PHP错误检查)
我发现文件令人沮丧.我需要添加到配置文件才能使其正常工作的基本行是什么? 解决方案 从技术上讲,什么都没有.如果您已将语法提取到.vim目录中,请尝试使用VIM中的:SyntasticEnable命令启用其作为当前打开文件的文件类型. 如果要自动打开给定的丝状类型,那么您需要放置一个... SyntasticEnable [filetype] .vimrc中的行[filetype]是您要启用它的文件类型.
0 2023-05-28
编程技术问答社区
基于Vim语法的折叠与php
我下载了Php.vim文件,其中包含基于PHP的语法信息.它应该能够提供基于语法的折叠,但由于某种原因我无法使它起作用. 我已经设置了:let g:php_folding 2和:set foldmethod=syntax,但无济于事.我很确定该文件在正确的位置,并且由VIM读取,因为我可以做:let g:php_sql_query=1 php.vim文件位于~/.vim/syntax/php.vim 中 解决方案 显然我的vim没有运行:语法启用. 执行:语法启用解决问题,但我还添加了:语法为.vimrc 其他解决方案 :语法启用(或:语法)起作用,因为这两个选项也打开了Filetype检测.在折叠或突出显示工作之前,必须检测到丝状类型. 如果您在PHP中开发,则可能要在.vimrc 中添加这三行 set nocompatible " Because filetype detection doesn't work well in
0 2023-05-28
编程技术问答社区
我需要对PHP进行调试。我的最佳选择是什么?
我正在Linux环境(Debian)下在网站上工作.我不是Linux的专家,但我可以处理它,并且该网站是使用PHP,MySQL,HTML等创建的. 问题是,我正在为服务器端使用PHP.现在,为了进行测试,我在PC上安装了Apache,以便可以测试所有内容.但是,如果我可以调试PHP代码,那就太好了.到目前为止,我不需要它,但是现在代码越来越大,这是必须的. 到目前为止,我正在使用vim,一切都很好,但是,在我的情况下,我该如何调试PHP?我应该安装什么工具?他们有空吗? 基本上,我需要知道我情况下最好的选择. 解决方案 Xdebug提供分步调试,可与Eclipse PDT,Netbeans甚至VIM一起使用.您真的应该尝试一下.还有Zend调试器. 其他解决方案 您可以使用调试设施安装PHP IDE.它将帮助您逐步调试PHP代码. 很少有具有此功能的流行: eclipse (请参阅:带有日食的调试php?) netbeans 对于更高
0 2023-05-28
编程技术问答社区
php源代码中的三个大括号在一起
我刚刚从php.net下载了PHP的完整源代码(php 5.4.0 [tar.bz2]). 他们通常一起使用三个卷曲括号(如下所示) /* {{{ proto bool ctype_digit(mixed c) Checks for numeric character(s) */ static PHP_FUNCTION(ctype_digit) { CTYPE(isdigit); } /* }}} */ 有人知道为什么他们一起使用这三个卷发括号? 解决方案 他们是... /* {{{ proto bool ctype_digit(mixed c) Checks for numeric character(s) */ static PHP_FUNCTION(ctype_digit) { CTYPE(isdigit); } /* }}} */ ... 和只是 ... /* {{{ proto bool ctype_digit(mixed c) .
0 2023-05-28
编程技术问答社区
Vim的PHP全能完成
我正在尝试在VIM中获得PHP自动完成.现在,当我做一个$blog = new Blog(); $blog->时,然后点击CTRL+X CTRL+O,我期望omnineption返回类Blog中的所有功能. 相反,它返回整个项目的所有功能.我已经为我的项目构建了CTAG:ctags -R * 有什么办法可以使自动完成上下文了解? 解决方案 在您使用OMNICOMPLETE的行之前,诸如/* @var $myVar myClass */之类的评论,但是这很麻烦,并且在写评论的时间里,您也可以自己编写函数名称. 解决方案:phpcomplete 这是一个vim脚本:您仍然需要为您的类生成的标签文件,但是您可以在文件中使用Omni完整(如脚本页面上的描述进行了修改); 此补丁允许进行文件内检查,因此您不需要评论. $blog = new Blog; ... $blog->Blah(); //
0 2023-05-26
编程技术问答社区
有没有可能让gVim记住窗口大小?
我知道如何设置初始窗口大小要自动恢复上一次会话的窗口尺寸?这甚至可能吗? 解决方案 编辑:更正了我的答案.提到的Winsize SessionOption仅指VIM内部窗口布局,而不是外部尺寸. 如果您使用 :mksession 并加载 上的VIM启动会话 gvim -S Session.vim 您可以通过包括winpos并在SessionOptions中调整大小,将窗口位置和大小包括在会话中,请参见 :help 'sessionoptions 使用AutoCommands,您甚至可以在VIM条目和退出上自动化会话的节省和还原. 其他解决方案 这些行保存并仅恢复位置和大小: set sessionoptions+=resize,winpos autocmd VIMEnter * :source C:/session.vim autocmd VIMLeave * :mksession! C:/session.vim 其他解决方案
2 2023-05-25
编程技术问答社区