Vim Insert PHPDoc automatycznie
Czy można wstawić PHPDoc do Vima za pomocą kombinacji komend lub klawiszy?
Na przykład mam klasę:
class MyClass
{
public function __construct() { }
public function __destruct() { }
/* command here to insert PHP doc */
public function abc() { }
}
Chciałbym wstawić coś w stylu:
/**
* method()
*
* description
*
* @access
* @author
* @param type $varname description
* @return type description
* @copyright
* @version
*/
A potem mogę wypełnić resztę ręcznie. Dziękuję 3 answers
Można to zrobić całkiem skutecznie za pomocą lekkiej wtyczki phpdocumentor .
Edytuj Oto zmodyfikowana wersja Z nowszym rozwojem.
Edytuj Oto Wersja 2 wtyczki phpDocumentor . Jest to nowsze niż dwa powyższe linki.
Zainstaluj wtyczkę w swoim katalogu $VIMFILES/plugin
i dodaj ją do swojego .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>
Powyższe wiąże phpDocumentor z Ctrlp in insert, tryb normalny i wizualny. Umieść kursor na definicji klasy, funkcji lub zmiennej, naciśnij Ctrlp, A wtyczka spróbuje utworzyć blok doc na podstawie definicji.
Przykładowy blok funkcji doc:
/**
* 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...
}
Przykładowy blok klasy doc
Prawa autorskie, wersja, autor itp. są domyślnie dołączane do bloku doc klasy. Możesz zmodyfikować wtyczkę, aby zawierała własne domyślne wartości dla tych:
/**
* TestClass
*
* @package
* @version $id$
* @copyright
* @author Michael <[email protected]>
* @license
*/
class TestClass {
}
Pełna klasa abstrakcyjna przykład:
<?php
/**
* TestClass
*
* @abstract
* @package
* @version $id$
* @copyright
* @author Michael <[email protected]>
* @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...
}
}
?>
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-05-15 15:08:15
Załóżmy, że umieścisz swój szablon w ~ / templates / phpdoc.php.
Z poniższym skrótem, jeśli wpiszesz ,p
, będziesz
przeczytaj zawartość swojego phpdoc.php do bieżącego pliku,
(Przy lub poniżej bieżącej linii - jedna z nich ).
map ,p :r ~/templates/phpdoc.php<cr>
Następnie po prostu dodaj wiersz do swojego .plik vimrc, zastępujący
file-path I ,p
do Twoich upodobań.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-01-22 06:01:46
Nie znam się konkretnie na PHP, ale masz kilka opcji. Możesz użyć skrótów (może nie jest to dobre dla konkretnego przykładu) lub możesz poszukać wtyczki. Mogę zasugerować https://github.com/garbas/vim-snipmate ( używam go i działa dobrze).
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-09-29 21:50:45