Abra el archivo editable en vsplit pero permanezca en la posición original en vimscript

Estoy tratando de escribir un complemento que hará un system llamada que genera un archivo basado en el búfer actual y luego abre el archivo generado en un vsplit, o si ya está abierto, lo actualizará cuando se cambie el archivo de origen.

Tengo el código hasta el punto de que genera el archivo y abre/actualiza la división, pero el problema es que cuando abre la división por primera vez, el enfoque se dirige a la división y cuando actualiza la posición del cursor en el archivo de origen salta a la parte superior de la página.

Esto es lo que estoy intentando, cualquier ayuda sería muy apreciada.

execute 'keepjumps silent ! ' . s:cmd . ' ' . s:src_file . ' > ' . s:dst_file

if exists("s:outputbufnr") && bufexists(s:outputbufnr)
  execute 'keepjumps ' . bufwinnr(s:outputbufnr)
else
  " execute "keepjumps vnew " s:dst_file
  execute "keepjumps rightbelow vertical new " . s:dst_file
  let s:outputbufnr=bufnr(s:dst_file)
endif  

Por lo que pensé keepjumps debería devolver el cursor a su posición anterior, sin embargo, ese no parece ser el caso.

preguntado el 03 de mayo de 12 a las 15:05

2 Respuestas

Esto suena como el uso perfecto de la ventana de vista previa en vim. Cuando abre un archivo en la ventana de vista previa (:pedit /path/to/file) el foco no se quita de la ventana actual. También tiene la capacidad de saltar directamente a la ventana de vista previa siempre que lo necesite con wincmd P si lo necesitas. También puede cerrar la ventana de vista previa desde cualquier lugar con :pclose. Si el archivo ha cambiado y desea ver las actualizaciones, simplemente puede :pedit /path/to/file de nuevo para obtener las actualizaciones.

Otro pequeño beneficio, incluso si tiene un archivo en la ventana de vista previa, aún puede salir de vim con un simple :q en lugar de :qa.

contestado el 03 de mayo de 12 a las 15:05

Sí, también parece que eso es lo que usa NERDTree, ahora solo tengo que descubrir cómo hacer que se abra verticalmente y no horizontalmente. - JaredMcAteer

Sospecho que quieres usar wincmd p después de la división, esto te devolverá a la ventana anterior en la que estabas.

contestado el 03 de mayo de 12 a las 15:05

Eso arregló la apertura inicial del archivo, pero la parte de actualización sigue saltando a la segunda línea del archivo fuente. ¿Alguna idea allí? - JaredMcAteer

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.