I recently added 2 new functions to my PHP FTPlugin for VIM, which I wanted to implement for a longer time and recently needed quite often:
PhpAlign()
Often you have written down an array declaration or a set of variable assignements. Usually things look somewhat ugly the, like
$foo = array(
"test" => "test",
"foo" => "bar",
"something" => "somewhat",
"anything more" => "and more and more",
);Aligning this definition properly is an ugly, boring work. The PhpAlign() function takes it from you and aligns the array declaration properly:
$foo = array(
"test" => "test",
"foo" => "bar",
"something" => "somewhat",
"anything more" => "and more and more",
);This also works with usual variable assignements:
::$foo = "bar"; $someVariable = "some value"; $aVar = 23;
becomes
$foo = "bar";
$someVariable = "some value";
$aVar = 23;PhpUnComment()
Often you want to comment or un-comment a couple of lines, because you currently change those and want to make a backup or simply want to bring alternative code in place. For multiple reasons you may not want to use multi-line commens for this (e.g. because you the closing sequence inside the code or because they simply look ugly. PhpUnComment() simply comments a line which is not commented and un-comments a line that is commented.
function test()
{
return "test";
}
// function test()
// {
// return 23;
// }Selecting these lines (all of them) and running PhpUnComment() results in:
// function test()
// {
// return "test";
// }
function test()
{
return 23;
}Both function are mapped to shortcuts in visual mode (<Ctrl>-a for PhpAlign() and <Ctrl>-c for PhpUnComment()), if you are using my FTPlugin.
The changes are already included in my SVN and documented there, too. Do get a recent checkout do:
$ svn co svn://svn.toby.phpugdo.de/PDV
Tobias, can you remove html entities from code?
>
$foo = "bar";
$someVariable = "some value";
$aVar = 23;
Hi Pento!
What is the actual problem? Do you see the entities in your browser or something?
Regards,
Toby
Yeah, i see them too, Firefox 2.0.0.3, in IE6 everything is ok.
Link to commentThe code is full of span class="serendipity_searchQuery" tags which break all the entities into pieces.
Link to commentSeems the problem occured wizth the Serendipity "search highlight" plugin. Thanks for the hint, I deaktivated the plugin now.
Link to commentWhere can we get phpm? =/ All the links on the web are DEAD. Any suggestions?
Link to comment
I'm sorry, I could not reach the maintainer of PHPM, too. I think I will re-implement PHPM if I find time...
Regards,
Toby
It's a share. It seemed like such a great tool for php/vim users. I haven't been able to find anything else that gives the function prototypes. Anyone found/using anything?
Link to commentThere is already an alignment plugin for vim http://vim.sourceforge.net/scripts/script.php?script_id=294
Link to commentAh, thanks, did not see that. I will dig into it and see if I should better use this one! :)
Link to comment
Just a comment that the example usage displayed in php-doc.vim should contain
":call PhpDoc()" instead of ":exe PhpDoc()"
It will try to execute the returned string when using :exe
Thanks for the hint! I updated the example!
Link to comment
for all the [inv]noremap mappings, I would change them to:
[inv]noremap <buffer> <C-P> .....
the reason for this is so that when I use my mapping it will only apply to php files instead of every new buffer I work on.
test by doing :sp blah.c then <C-P>
read about it, :h <buffer>
and, I need <C-P> for autocompletion so I use <C-O> instead.
neither of the above are extremely significant but may be useful to any googler passing through
Hi Toby...
I'm a newbie Vim user looking forward to using it for editing PHP files.
I checkout your vim-related files from your svn and explore it a bit.
I wonder, if there is an easier way (keyboard-based) to write if / for / while / etc of-the-like-statements in Vim.
With your .vimrc it goes something like this
<i>while ( $i >0 )
<Esc>
<$a> {
After entering the conditional expressions (i>0) users need like 4 key-strokes just to type the {. And those keys are quite distant each other (Esc$a{). Could you tell me how to shorten it to fewer keystroke (if possible to 1 keystroke and nearby within finger reach on the alphabet keys, and without conflicting with your current key-mappings?
Thanks in advance.
(and your blog here is really helpful indeed for a Vim-newbie to quickstart Vim for PHP)
Note that PDV is now named VIP and hosted on github. For details, please refer to http://schlitt.info/opensource/blog/0719_pdv_vip_now_on_github.html
Link to comment
Thanks, Jon! Please see Jörns entry for a better solution especially with {}. Jörns one does autoindent correctly.
(Jon's entry was posted when the above so crappy shown > and < signs were not present due to some wired stuff in this blog-software.)
Fields with bold names are mandatory.
Integrate PHP CodeSniffer in VIM
You can integrate PHP Codesniffer in your VIM with the following code:
CODE:function! RunPhpcs()
    let l:filename=@%
    let l:phpcs_output=system('phpcs --report=csv&#
PDV → VIP, now on github!
phpDocumentor for VIM (PDV) is a project which resulted from my efforts to create a comfortable programming environment for PHP in the VIM editor. Since the server which hosted the SVN repository is to be switched off the next days, I finally moved development over to github.In addition to that, I seized the chance to rename the project itself to VIP (VIM integration for PHP). The repository does not only contain the PDV script iself, but also a filetype plugin for PHP, some useful color schemes, a PHP skeleton file, settings for other (related?) programming languages and more.