{"id":22340862,"url":"https://github.com/ingram1107/souvenir.nvim","last_synced_at":"2025-03-26T09:24:48.515Z","repository":{"id":45235093,"uuid":"383427166","full_name":"ingram1107/souvenir.nvim","owner":"ingram1107","description":"A Neovim plugin that manages Neovim sessions","archived":false,"fork":false,"pushed_at":"2023-09-18T03:04:37.000Z","size":51,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-01-31T10:42:33.078Z","etag":null,"topics":["lua","neovim","nvim","nvim-plugin","session-management"],"latest_commit_sha":null,"homepage":"","language":"Lua","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ingram1107.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-07-06T10:20:43.000Z","updated_at":"2022-02-02T22:58:32.000Z","dependencies_parsed_at":"2024-12-04T07:42:14.106Z","dependency_job_id":"e35bee08-9766-441e-8936-b88760577eae","html_url":"https://github.com/ingram1107/souvenir.nvim","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ingram1107%2Fsouvenir.nvim","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ingram1107%2Fsouvenir.nvim/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ingram1107%2Fsouvenir.nvim/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ingram1107%2Fsouvenir.nvim/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ingram1107","download_url":"https://codeload.github.com/ingram1107/souvenir.nvim/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245624147,"owners_count":20645892,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["lua","neovim","nvim","nvim-plugin","session-management"],"created_at":"2024-12-04T07:42:06.232Z","updated_at":"2025-03-26T09:24:48.482Z","avatar_url":"https://github.com/ingram1107.png","language":"Lua","readme":"# souvenir.nvim\nA Neovim plugin that manages Neovim sessions\n\n## Requirement\nNeovim 0.7+\n\n## Installation\nvim-plug\n\n```viml\nPlug 'ingram1107/souvenir.nvim'\n```\n\npacker\n\n```lua\nuse {\n  'ingram1107/souvenir.nvim',\n}\n```\n\n## Usage\n\nYou could set-up your session path as follows:\n\n```lua\nrequire('souvenir').setup {\n  session_path = '~/.config/nvim/sessions'\n}\n```\n\nOr else the default session path would be set to a directory named `souvenirs`\nin your system's standard data path. (`$XDG_DATA_HOME/nvim` if you are using\nLinux, `~/AppData/Local/nvim-data` if you are using Windows)\n\nOther settings such as `override` and `shada` are available too. Set `override`\nto `true` will allow the behaviour of overriding an existing session to be the\ndefault behaviour. Set `shada` to `true` will allow more information in the\ncurrent session to be stored such as command line history, contents of registers\nand marks for files. (more details see `:h shada`) Defaults values are set as\nbelow:\n\n```lua\nrequire('souvenir').setup {\n  override = false,\n  shada = true,\n}\n```\n\nsouvenir.nvim currently provides 6 functionalities: save Vim session, restore\nVim session, delete Vim session, continuous session recording, stop such\nrecording, and list Vim sessions. Commands to call these 6 functionalities are\nshown as below:\n\n```viml\n:SouvenirSave[!]    \" save session (`!` to override)\n:SouvenirRestore\n:SouvenirDelete     \" accept multiple files\n:SouvenirRecord     \" record current session\n:SouvenirStopRecord\n:SouvenirList\n```\n\n```lua\n:lua require('souvenir').save_session{'souvenir'} -- don't override existing session file\n:lua require('souvenir').save_session{'souvenir', true} -- override exisitng session file\n:lua require('souvenir').restore_session('souvenir')\n:lua require('souvenir').delete_session({ 'souvenir', 'memoir', 'nostalgic' })\n:lua require('souvenir'),record_session('souvenir') -- automatic override\n:lua require('souvenir').stop_record_session()\n:lua require('souvenir').list_session()\n```\n\nIf option `override` is set to true, there should be no behavioural differences\nbetween `:SouvenirSave` and `:SouvenirSave!` or their lua counterparts. **Note**\nthat `SouvenirRecord` will override regardless of the `override` option value.\n\n## Inspiration\n\n[xolox/vim-session](https://github.com/xolox/vim-session)\n[tpope/vim-obsession](https://github.com/tpope/vim-obsession)\n\n## Todo\n- [x] documentation\n- [x] save session to a pre-configured location\n- [x] restore session\n- [x] delete session\n  - [x] delete multiple sessions\n- [x] list sessions\n- [x] session name completion\n- [x] interactive buffer (telescope)\n- [x] cross-platform\n  - [x] Windows\n  - [x] Linux\n  - [ ] macOS (waiting for someone to test)\n  - [ ] BSD-variants (waiting for someone to test)\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fingram1107%2Fsouvenir.nvim","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fingram1107%2Fsouvenir.nvim","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fingram1107%2Fsouvenir.nvim/lists"}