vim: abre el archivo y pasa al número de línea usando <nombre de archivo>: <línea nbr>:


21

Varias herramientas como grep, py.testetc., usan el patrón <FileName>:<line number>:para señalar errores. Por ejemplo:

; grep -Hn Common setup.cfg
setup.cfg:11:    Common

¿Cómo puedo modificar vim y gvim para poder invocarlos así?

gvim setup.cfg:11:

en lugar de

gvim setup.cfg +11

Sé que puedo escribir un pequeño script de shell que analizaría las cosas, pero me pregunto si hay una manera más fácil.


2
Esto no es exactamente análogo, pero vim tiene una característica para cargar la salida de grep o (por ejemplo) errores del compilador de make, y navegar entre ellos. Ver :help quickfixpara más información.
Random832

Respuestas:



9

No hay forma, y ​​creo que un guión es la única forma. La razón es, ¿y si tuviera un archivo llamado setup.cfg: 11 y quisiera editarlo?

Aquí hay una secuencia de comandos rápida que hace lo que quiere como línea de vida ...

editline() { vim ${1%%:*} +${1##*:}; }

Lo sentimos, esto no es exacto: ¿Qué sucede si se llama un archivo +11? Puedes, por supuesto, usarlo --para eso.
Sardathrion - Restablece a Monica el

2
Puede editar un archivo +11 diciendo vim ./+11
Julian


0

También puedes usar ese alias:

alias gd 'set number=`echo \!:1 | perl -pe "s/([0-9]*:)?(.+)[,:]([0-9]+).*/\3/"`; set file=`echo \!:1 | perl -pe "s/([0-9]*:)?(.+)[,:]([0-9]+).*/\2/"`; eval "if ($number == $file) then \\
   gvim $file \\
else \\
   gvim $file +$number \\
endif"'
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.