LesOlivex

Serveis informàtics



Añadir protocolo en firefox

Category : Programación, Vim mar 3rd, 2015

Muy útil en la programación, ya que de una lista se presenta de archivos afectados, o de tareas pendientes sobre el código, se puede hacer que desde firefox abra tu editor con el archivo y la linea adecuada. El editor que utilizo es vim y una aplicación realizada en bash que me gestiona las tareas. Dentro de este programa se mira en que formato viene el archivo que se desea editar, si es el de firefox:

mt_editor_dev='/usr/bin/gvim -geometry 500x50 --servername $proyecto --remote-silent '

archivos=$@

if [ `echo "$archivos" | grep 'vim:'` ] ; then

   # También puede venir en formato web vim:/home/eduardo/archivo.php@linea

   local archivo="`echo $archivos | cut -d: -f2`"
   local linea="`echo $archivos | cut -d@ -f2`"
   archivo="`echo $archivo | cut -d@ -f1`"
   archivo=`echo $archivo | sed 's/^\///g' | sed 's/^\///g'`

   cmd="$editor +$linea $archivo"
   eval "$cmd"

fi

Este es una parte del script que utilizo y la que mira si el archivo que queremos editar viene en formato de firefox. Debería ser adaptado a cada caso. Se coloca el script en por ejemplo $HOME/bin/editar dandole permisos de ejecución:

chmod +x $HOME/bin/editar

En firefox añadimos la siguiente entrada tipo logico (si/no) nueva desde about:config:

network.protocol-handler.expose.vim

Y como valor false.

Esto hará que la próxima vez que firefox se encuentre con un enlace como vim://directorio/archivo.php@32 preguntara con que aplicación se quiere lanzar escogiendo $HOME/bin/editar

Plugin para vim para utilizar la salida de PhpCodeSniffer en la ventana de errores

Category : Vim des 18th, 2014

phpcodesniffer.vim

" php_check_codesniffer.vim -- Check php syntax when saving or reading a file
" @Author:      Eduardo Magrané , basado en phpchecksyntax de Thomas Link (samul@web.de)
" @License:     GPL (see http://www.gnu.org/licenses/gpl.txt)
" @Created:     31-Oct-2009.
" @Last Change: .
" @Revision:    0.2.21
" @todo Aceptar parámetro de standard que se desea

if exists("g:php_check_codesniffer")
   finish
endif

let g:php_check_codesniffer = 1

if !exists("g:php_check_codesniffer_cmd")
    let g:php_check_codesniffer_cmd='phpcs --standard=Zend --report=emacs'
endif

function! PhpCodeSniffer()
    if &filetype == 'php'
        let t  = @t
        let mp = &makeprg
        let sp = &shellpipe
        let ef = &errorformat
        try
            let &makeprg = g:php_check_codesniffer_cmd
            set shellpipe=> 				
            " set errorformat=%*[^<]:\ \ %m\ in\ %f\ on\ line\ %l
            "set errorformat=%*[^:]:\ %m\ in\ %f\ on\ line\ %l
            set errorformat=%f:%l:%c:\ %m
            silent make %
            redir @t
            silent clist
            redir END
            if @t =~ 'No se han detectado errores '
                cclose
            else
                copen
            endif
        finally
            let @t = t
            let &makeprg     = mp
            let &shellpipe   = sp
            let &errorformat = ef
        endtry
    endif
endf

noremap   :call PhpCodeSniffer()
inoremap   :call PhpCodeSniffer() 

"autocmd BufRead,BufWritePost *.php call PhpCodeSniffer()

finish
Instalación:
Guardar el fichero en la carpeta ~/.vim/plugins

Vim Anyadir a quickfix la salida de grep

Category : Edición de texto, Programación, Vim des 18th, 2014

Para buscar una palabra en el fichero actual

:grep <palabra a buscar> %

Para buscar en ficheros concretos

:grep -R <palabra a buscar> `find gcm/lib/int -name '*.php'`

Tambien fuera de vim podemos crear un archivo temporal con los resultados y abrirlo desde vim


grep -Rn grep `find -name '*.sh'` > /tmp/grep.txt
gvim -c "cfile /tmp/grep.txt" magtrabajos

El archivo para quickfix es en formato:

ruta del fichero:número de linea:contenido de la linea

 

Trucos para vim

Category : Edición de texto, Programación, Vim des 18th, 2014

Ayuda rápida para las varias cosas que nos ayudan a programar más ágilmente pero que no son fáciles de recordar.

Quitar lineas en blanco de una selección

:'<,'>g/^$/d

Varios comandos a la vez

Con la barra | podemos separar varios comandos en una sola linea

:w | bd

Autocompletado

Funciones: Control-x Control-ó

Volver al último punto donde estábamos, la última vez que lo abrimos

Ir a la función con el nombre sobre el que estamos.

gf o Crtl + clic de ratón

Borrar espacios en blanco inútiles en programación al final de lineas.

:%s/ * $//gcI

Copiar la palabra sobre el cursor en la linea de comandos

Control-R Control-W

Dividimos la ventana con los buffers abiertos

:sba

Lista anterior de quickfix

:col

Lista siguiente de quickfix

:cnew

Remplazar en todos los buffers

:bufdo %s/pattern/replace/ge | update

Personalizar la linea de estado en vim

Añadir a ~/.vimrc:

:set statusline=%F%m%r%h%w\ [FORMAT=%{&ff}]\ [TYPE=%Y]\ [ASCII=\%03.3b]\ [HEX=\%02.2B]\ [POS=%04l,%04v]\ [%p%%]\ [LEN=%L]

Enlaces de interés