【问题标题】:VIM Insert PHPdoc automaticallyVIM 自动插入 PHPdoc
【发布时间】:2011-11-28 00:59:42
【问题描述】:

有没有办法使用命令或组合键在 VIM 中插入 PHPDoc?

例如,我有一个班级:

class MyClass
{

  public function __construct() { }
  public function __destruct() { }

  /* command here to insert PHP doc */
  public function abc() { }

}

我想插入类似的内容:

/**
* method() 
*
* description
*
* @access   
* @author    
* @param    type    $varname    description
* @return   type    description
* @copyright
* @version
*/

然后我可以手动完成其余部分。谢谢

【问题讨论】:

  • @sehe 我确实尝试过 google,但我发现了非常复杂的解决方案。我希望我能像你一样聪明
  • 没问题;我不是想让你失望。但是,如果您确实使用过 google,最好在帖子中这样说。告诉我们您的发现,以及给您带来麻烦的部分 - 这样,人们可以真正提供帮助,而不是只给出明显的答案
  • @sehe 哦,是的,好主意,谢谢,在这方面还是新手,但正在学习;)

标签: vim phpdoc


【解决方案1】:

这可以通过轻量级phpDocumentor plugin 非常有效地完成。

编辑 Here's a modified version 进行更新。

编辑 Here's version 2 of the phpDocumentor plugin。它比上述两个链接更新。

将插件安装到您的$VIMFILES/plugin 目录并将其添加到您的.vimrc:

" PHP documenter script bound to Control-P
autocmd FileType php inoremap <C-p> <ESC>:call PhpDocSingle()<CR>i
autocmd FileType php nnoremap <C-p> :call PhpDocSingle()<CR>
autocmd FileType php vnoremap <C-p> :call PhpDocRange()<CR> 

上面在插入、普通和可视模式下将 phpDocumentor 绑定到 Ctrlp。将光标放在类、函数或变量定义上,按Ctrlp,插件将尝试根据定义形成一个文档块。

示例函数文档块:

/**
 * testDocBlock 
 * 
 * @param mixed $param1 
 * @param mixed $param2 
 * @static
 * @access public
 * @return boolean
 */
public static function testDocBlock($param1, $param2) {
  // Pressed Ctl-p while cursor was on the function definition line above...
}

示例类文档块

版权、版本、作者等默认包含在类文档块中。您可以修改插件以包含您自己的默认值:

/**
 * TestClass  
 * 
 * @package 
 * @version $id$
 * @copyright 
 * @author Michael <me@exmaple.com> 
 * @license 
 */
class TestClass {

}

完整的抽象类示例:

<?php
/**
 * TestClass 
 * 
 * @abstract
 * @package 
 * @version $id$
 * @copyright 
 * @author Michael <email@example.com>
 * @license 
 */
abstract class TestClass {
  /**
   * publicProp  
   * 
   * @var string
   * @access public
   */
  public $publicProp;
  /**
   * privateProp  
   * 
   * @var string
   * @access private
   */
  private $privateProp;

  /**
   * testDocBlock  
   * 
   * @param string $param1 
   * @param string $param2 
   * @static
   * @access public
   * @return boolean
   */
  public static function testDocBlock($param1, $param2) {
    // code here...
  }
}
?>

【讨论】:

【解决方案2】:

假设您将模板放置在 ~/templates/phpdoc.php。 使用以下缩写,如果您输入,p,您将 将 phpdoc.php 的内容读入当前文件, (在当前行或以下 - 其中之一)。

map ,p :r ~/templates/phpdoc.php<cr>

然后只需将该行添加到您的 .vimrc 文件中,替换 文件路径和,p 随你喜欢。

【讨论】:

  • 这和你想要的有点相似,但是使用 MIT 许可证和一些额外的花里胡哨,展示了你如何可能减少使用模板的一些手动工作:vimeo.com/30391489 或 @987654322 @
【解决方案3】:

我不能专门为 PHP 说话,但您有几个选择。您可以使用abbreviations(可能不适合具体示例)或者您可以寻找插件。我可以推荐https://github.com/garbas/vim-snipmate(我用过,效果很好)。

【讨论】:

    猜你喜欢
    • 2011-03-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-30
    • 1970-01-01
    相关资源
    最近更新 更多