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
If you liked this blog post or learned something, please consider using flattr to contribute back: .
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.)
I am researching this topic for use in a future business I am thinking about starting. Thank you for this information, it has been educational and helpful to me.
Link to commentVery interesting article. Content has been written in very nice manner. I enjoy reading this kind of stuff. Thanks for sharing good knowledge.
Link to commentAll external expectations, all pride, all fear of embarrassment or failure - these things just fall away in the face of death, leaving only what is truly important
Link to commentThe author has written an excellent article. You made your point and not much to discuss. It's like this universal truth that you can not argue with the truth is not universal, everything has its exception. Thanks for this information.
Link to commentA member of the Democratic Party, he has been the Senate Majority Leader since January 2007, having previously served as Minority Leader and Minority and Majority Whip.
Link to commentLord Cope said the committee wanted UKTI and UKEF to “blow their own trumpets and promote their services for SMEs”, working with business organisations
Link to commentThe first thing you need to do to lose weight is to take control of your diet. Understand the decisions about what you put in your body directly relates to your obesity. Start making healthier decisions. Without a better diet, it's going to be extremely difficult for you to lose weight.
Link to commentUtilize databases in your home or office that will allow you to store data on your clients and customers. Many customers, when they connect with organizations,
Link to commentYou need to realize that when you were born, your brain and mind didn't include anything negative. In other words, no one is born with negative thoughts stored somewhere in wait to develop.
Link to commentAll of the games upon cooking possess interesting history and situation which will make the video games more thrilling. In the actual Homemade Pizzas game you have to cook the delicious as well as spicy pizza for that guests who've come to go to your home.
Link to commentI am about to complete a university thesis on this topic and your post has helped me with the facts and figures I needed to accomplish it. Cheers!
Link to comment
I have always been extremely thrilled to feel right here because this is certainly a good website which offers many information regarding the topics covered detailed.
---------------
This plan is ideal for our customers for whom system availability is business critical, and who require software investment protection.
Link to commentDesigner bags are popping up faster than you can say 'Louis Vuitton', in the hands of your friends, family, people you pass it.
Link to commentA website's security certificate gives users extended security by encrypting data between the user's browser and the Web server. Security certificates are installed on the server, so your website developers can securely transfer information such as financial or medical records.
Link to commentFields 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.