¿Cómo guardar la ventana, la división y el diseño del búfer?


56

Tengo varias tareas en las que estoy trabajando en un repositorio. Me gustaría crear "espacios de trabajo" para trabajar en ellos.

Un "espacio de trabajo" o "diseño de búfer" tendría todos los archivos en los que necesito trabajar abiertos en el diseño que quiero (usando ^w+v, ^w+spara dividir la ventana).

Luego, cuando empiezo a trabajar en otra tarea, me gustaría guardar mi diseño actual, pasar a otro, pero me gustaría poder volver a los diseños anteriores.

¿Cuál es la mejor manera de lograr esto?

Respuestas:


48

Puede usar vim :mksessiony escribir cada "espacio de trabajo" en un archivo diferente, luego volver a abrir una sesión usando vim -S session_file, sin embargo, si está abierto a usar un complemento, entonces encuentro que el complemento de Startify es exactamente lo que necesito para este tipo de escenario: https : //github.com/mhinz/vim-startify

Hace un gran trabajo al administrar sesiones, en vim y mccvim, y también le brinda una lista de archivos recientes cuando abre vim. También cambiará automáticamente al directorio de trabajo adecuado para usted. También le permite anclar archivos a la pantalla de inicio de inicio, lo cual es bueno para acceder fácilmente a cosas como su.vimrc


23

Puede usar el complemento vim-obsession de tpope para administrar fácilmente las sesiones. Es como un envoltorio para Vim's incorporado mksession, pero también proporciona un conjunto de otras sutilezas.

Puede guardar la sesión actual (o el diseño del búfer) dando el comando :Obsess. Si no proporciona un argumento, escribe un archivo de sesión llamado Session.vimpor defecto.

Para recargar una sesión, use vim -S <session-name>o :source <session-name>si ya está dentro de Vim.

Lo bueno es que no tiene que recordar guardar la sesión cada vez que sale de Vim. Es administrado automáticamente por el complemento.

Otra característica muy importante de vim-obession es que no guarda opciones y mapas. mksessioncaptura las opciones y mapas actuales, lo que no desea que suceda si solo desea guardar el diseño del búfer. También interfiere cuando se actualiza un complemento, etc.


¿Puede administrar múltiples archivos de sesión?
Nebril

1
@Nebril puede. Cuando guarde la sesión, use el formato :Obsess <session-name>. Use el nombre de sesión particular que desea al recargar.
thameera

Descubrí que Obsession no recordaba divisiones verticales, mientras que mksession sí. Sin embargo, solo he estado jugando con esto esta noche, ¿hay algo que me haya perdido?
baxx

1
@baxx Obsession recuerda todo tipo de divisiones. ¿Quizás cerró la división antes de dejar vim?
thameera

2
@baxx Esto es viejo pero quería agregar una nota en caso de que esto ayude a alguien más. La razón por la que parece que la obsesión está olvidando las divisiones es probablemente porque está abandonando todas las divisiones para dejar vim. Eso significa que el estado final es su última ventana cuando cierra vim, eso es lo que almacena la obsesión. Tuve el mismo problema con las pestañas y la respuesta es usar: qa para salir de todas las ventanas abiertas, divisiones, pestañas. Si alguien tiene una mejor opción, háganoslo saber.
TC0072

12

Como nota al margen, me gustaría señalar que construí otro plugin dhruvasagar / vim-prosession como una extensión de tpope / vim-obsession que lo mejora aún más para crear y administrar sesiones vim por defecto en un repositorio centralizado como por configuración por directorio y los carga automáticamente cuando ejecuta vim sin ningún argumento en el directorio. También le permite cambiar entre diferentes sesiones para mayor comodidad.


Esto suena genial Si pudiera administrar los archivos de sesión en una carpeta similar a deshacer y hacer copias de respaldo para evitar que mis proyectos se llenen de archivos de intercambio que podrían sorprenderme.
dragon788

1

Puede probar el complemento vim-workspace , sus funciones de administración de sesión son automáticas, están definidas para su directorio de trabajo actual y son bastante simples (solo necesita ejecutarse ToggleWorkspaceuna vez).

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.