Pregunta

Me preguntaba si este común IDE característica está disponible.

Supongamos que abrir muchos archivos utilizando Vim, el uso de vsplit y split.Entonces, cierro todo.

Al día siguiente, quiero recuperar esos archivos.Es decir, recuperar la forma en que se abrieron, no tener que abrir cada uno de ellos (el uso de split y vsplit) de nuevo.

Es eso posible?

ACTUALIZACIÓN:

El uso de mksession! y source comandos de asignación de comandos en .vimrc archivo, hay una manera de configurar asignaciones para escribir un archivo específico?

por ejemplo:

map <F2> :mksession! ~/vim_session @INSERT_HERE<cr> "Save session to @INSERTHERE file

Gracias de antemano

¿Fue útil?

Solución

Puede asignar usando: mksession y: source a un conjunto de claves para guardar y restaurar fácilmente. Aquí hay un ejemplo de mi .vimrc que usa F2 y F3:

map <F2> :mksession! ~/vim_session <cr> " Quick write session with F2
map <F3> :source ~/vim_session <cr>     " And load session with F3

Otros consejos

Eche un vistazo al :mksession , para crear un session :

  

Una sesión mantiene las vistas para todos   ventanas, más la configuración global.   Puede guardar una sesión y cuando   restaurarlo más tarde el diseño de la ventana   Se ve igual. Puedes usar una sesión   para cambiar rápidamente entre diferentes   proyectos, cargando automáticamente el   archivos en los que estaba trabajando por última vez en ese   proyecto.

Podría considerar usar Pantalla GNU . En resumen: es un Administrador de ventanas de línea de comando que permite a un usuario acceder a múltiples sesiones de terminal separadas dentro de una sola sesión de terminal. La principal ventaja para mí es que puede separar la sesión, cerrar la ventana de su terminal y luego volver a adjuntar la sesión y continuar trabajando.

El mejor enfoque que he encontrado es usar el complemento vim-session, http: // github. com / xolox / vim-session que se puede instalar agregando:

Plugin 'xolox/vim-session'

a su .vimrc, seguido de:

:PluginInstall

Este complemento admite varias sesiones: identifica una sesión por nombre y luego la administra con ese nombre. Las sesiones se pueden agregar, eliminar, actualizar, enumerar, ...

Lo he estado usando durante varios meses; muy recomendable.

Quizás te interese este libro:

http://www.swaroopch.com/notes/Vim#Download

Es una de las primeras cosas que te muestran como un ejemplo de lo genial que es Vim. ;)

Además, <cr> significa retorno de carro.

SessionMan http://www.vim.org/scripts/script. php? script_id = 2010 Ofrece una funcionalidad más fácil. Tenga cuidado con miniBufExplorer. Es incompatible a menos que use la versión modificada hecha por Andrew en vim_use (e incluso entonces, solo es compatible a medias)

Mi solución es la siguiente, ponerlos en .vimrc archivo.HTH.

" session related.
" Default session is located `~/.session_'. The suffix `_' is a dirty
" solution, just like the one-element tuple `(tuple_eliment,)' in Python..
cnoremap <C-O> source ~/.session_
cnoremap <C-S> mksession! ~/.session_
nnoremap <silent> <C-S><C-S> :mksession! ~/.session_ <CR>

Parece ser más complejo, pero es muy útil si tienes varias sesiones para guardar y cargar.

P. S.
Aquí, me adoptar el familiar <Ctrl-S> y <Ctrl-O> los accesos directos, para guardar y cargar las sesiones.En mi humilde opinión, esto es más cómodo que llegar a mi mano para <Fn> clave.;-)

Sugiero usar vim-obsession . Es mucho mejor que el valor predeterminado mksession, ya que permanece fuera de tu mientras sigues haciendo lo que quieres.

Basado en la respuesta de hgmnz y expandiéndose para la actualización.

Puede quitar el <cr> de la asignación y esto lo pondrá en modo de comando para finalizar el comando.

map <F2> :mksession! ~/<will stop here and you can type>

Cuando vaya al modo de comando puede escribir% y luego presionar tab y se expandirá a la ruta absoluta del archivo actual, también puede escribir%: p: h y presionar tab para expandir al directorio del archivo actual.

También puede guardar cada sesión en el directorio de trabajo y al usar directorios de búfer locales puede tener varias sesiones para directorios de trabajo.

map <F2> :mksession! ./.vim_sessions <cr> " Will save session to current buffers directory.
map <F3> :source ./.vim_sessions <cr>
:lcd " Changes the current's buffer directory

También tenga cuidado con la recarga de sesiones, ya que descarga todos los búferes cargados actuales ( http: //vimdoc.sourceforge.net/htmldoc/starting.html#%3Amksession )

  
      
  1. Descarga todos los búferes cargados actualmente.
  2.   
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top