Funciones de edición avanzada en Vim para PHP

Author
By Darío Rivera
Posted on 2020-10-27 in Vim

Cuando inicias en Vim te encuentras con la ardua tarea de comenzar a buscar las equivalencias de aquellas funciones de edición avanzada que tienes en IDE's como PhpStorm, Visual Studio Code, Sublime Text, y otros. En vim como ya sabes todo se hace a través de plugins, el día de hoy verás cómo puedes utilizar algunas de las funciones más complejas mediante el plugin phpactor.

Instalación

Para instalar este plugin debes instalar el repo desde Github. Lo ideal es colocarlo en una carpeta del usuario con el que estés logueado. Puedes utilizar la siguiente serie de comandos para instalar el plugin en tu carpeta home.

DIR=~
cd $DIR
git clone https://github.com/phpactor/phpactor.git
cd phpactor && composer install

Después de esto debes crear un enlace simbólico del comando phpactor hacia la carpeta de binarios del sistema.

cd /usr/local/bin
sudo ln -s $DIR/phpactor/bin/phpactor phpactor

Finalmente podrás agregarlo al bloque de plugins en tu archivo ~/.vimrc. Si utilizar vim-plug deberás agregar la siguiente línea.

Plug 'phpactor/phpactor', {'for': 'php', 'branch': 'master', 'do': 'composer install --no-dev -o'}

Uso

Una vez instalado puedes comenzar a utilizar los comandos personalizados de phpactor. Por ejemplo, si quisieras ir a la definción de una función deberías situarte sobre ella y ejecutar el siguiente comando:

:PhpactorGotoDefinition

Para buscar todas las referencias de una función o método puedes utilizar el comando

:PhpactorFindReferences

Así mismo, para importar una clase te situas en ella y ejecutas el comando

:PhpactorImportClass

Todo esto y mucho más lo puedes encontrar en la documentación oficial de phpactor.

Atajos

Puede parecer un poco engorroso digitar cada uno de los comandos de los que dispone phpactor y realmente lo es. Para mejorar esto puedes crearte unos atajos de teclado tal y como yo lo he hecho. Observa por ejemplo como utilizo las teclas CTRL + B, F2, y F3 para hacer las mismas acciones que los comandos vistos anteriormente.

map <C-b> :PhpactorGotoDefinition<CR>
map <F2> :PhpactorFindReferences<CR>
map <F3> :PhpactorImportClass<CR>

Acerca de Darío Rivera

Author

Ingeniero de desarrollo en PlacetoPay , Medellín. Darío ha trabajado por más de 6 años en lenguajes de programación web especialmente en PHP. Creador del microframework DronePHP basado en Zend y Laravel.

Sólo aquellos que han alcanzado el éxito saben que siempre estuvo a un paso del momento en que pensaron renunciar.