¿Hay alguna manera de obtener el gfcomando de vim (o algo similar) para reconocer un +{cmd}argumento para las rutas de archivo?
Se puede iniciar vim e ir directamente a un término de búsqueda haciendo:
$ vim +/coding_effort ~/project/file
Del mismo modo, en modo comando puede hacer:
:e +/coding_effort ~/project/file
A menudo tomo notas y me refiero a otros archivos como este:
For more info see +/coding_effort ~/project/file where there's a detailed discussion.
Me encantaría poder seleccionar +/coding_effort ~/project/file, escribir algo parecido gfy hacer que vim haga lo correcto.
key-bindings
command-line
search
Oliver Taylor
fuente
fuente

Respuestas:
No, el primer problema es que el espacio necesario entre el comando y el nombre de archivo no es parte de la
isfname'opción ' , y agregarlo significaría que los bordes del archivo no podrían reconocerse en absoluto. Debería usar siempre una selección visual (tanto de comando como de nombre de archivo) o implementar un análisis personalizado en unagfsobrecarga de comandos.En segundo lugar, el incorporado
gfno reconoce la+{cmd}sintaxis, por lo que realmente no hay forma de implementar su propia asignación personalizada. Esto es ciertamente posible (usando funciones comoexpand('<cfile>'),getline()etc.), pero probablemente tome algunas líneas de la función Vimscript.Si elige una sintaxis diferente (
filename:+command), puede mantener losgfcomandos originales e implementar la división en un:autocmd, similar a lo que hace el muy relacionado archivo: plugin de líneafilespec:linenumber).fuente
Aquí hay una función que debería replicar el
gfcomportamiento incorporado , y también busca trabajos que comiencen y+luego pasen a:editLos comentarios deberían explicar lo que hace la función con más detalle ... Escribí esto en el tren la mañana, y (obviamente) no lo probé extensamente ;-)
fuente
Una opción sería (suponiendo que
+cmd file/pathse selecciona) para tirar la selección a un registro, luego insertar ese registro en el símbolo del sistema. Hice esto con el siguiente mapeo:vnoremap gsf "0y:e <c-r>0<cr>fuente
Esta notación funciona (
file name+trailing :+/ pat /)con función y mapeo a continuación.
fuente