{"id":13412535,"url":"https://github.com/s1n7ax/nvim-terminal","last_synced_at":"2025-09-28T20:32:30.357Z","repository":{"id":46121001,"uuid":"333681115","full_name":"s1n7ax/nvim-terminal","owner":"s1n7ax","description":"A Lua-Neovim plugin that toggles a terminal","archived":false,"fork":false,"pushed_at":"2022-06-29T17:03:31.000Z","size":5397,"stargazers_count":117,"open_issues_count":2,"forks_count":6,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-03-11T12:42:05.031Z","etag":null,"topics":["lua","neovim","neovim-plugin","nvim"],"latest_commit_sha":null,"homepage":"","language":"Lua","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/s1n7ax.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}},"created_at":"2021-01-28T07:33:32.000Z","updated_at":"2025-03-08T23:37:23.000Z","dependencies_parsed_at":"2022-08-13T02:00:20.559Z","dependency_job_id":null,"html_url":"https://github.com/s1n7ax/nvim-terminal","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/s1n7ax%2Fnvim-terminal","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/s1n7ax%2Fnvim-terminal/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/s1n7ax%2Fnvim-terminal/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/s1n7ax%2Fnvim-terminal/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/s1n7ax","download_url":"https://codeload.github.com/s1n7ax/nvim-terminal/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243625150,"owners_count":20321241,"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","neovim-plugin","nvim"],"created_at":"2024-07-30T20:01:25.824Z","updated_at":"2025-09-28T20:32:30.228Z","avatar_url":"https://github.com/s1n7ax.png","language":"Lua","funding_links":[],"categories":["Terminal Integration","Lua"],"sub_categories":["Cursorline","CSV Files"],"readme":"# nvim-terminal\n\nTerminal plugin to open/toggle the terminals in Neovim\n\nhttps://user-images.githubusercontent.com/18459807/129582749-2e732591-cb8d-4cb8-a427-9da0c79a621d.mp4\n\n## Features\n\n* Toggle terminal window\n* Quick switching between multiple terminal buffers\n\n## Install the plugin\n\n**packer**\n```lua\nuse {\n    's1n7ax/nvim-terminal',\n    config = function()\n        vim.o.hidden = true\n        require('nvim-terminal').setup()\n    end,\n}\n```\n\n## Default Keymaps\n\n\u003ckbd\u003eleader\u003c/kbd\u003e + \u003ckbd\u003e;\u003c/kbd\u003e - **Toggle open/close terminal**\n\n\u003ckbd\u003eleader\u003c/kbd\u003e + \u003ckbd\u003e1\u003c/kbd\u003e - **Open terminal 1**\n\n\u003ckbd\u003eleader\u003c/kbd\u003e + \u003ckbd\u003e2\u003c/kbd\u003e - **Open terminal 2**\n\n\u003ckbd\u003eleader\u003c/kbd\u003e + \u003ckbd\u003e3\u003c/kbd\u003e - **Open terminal 3**\n\n\u003ckbd\u003eleader\u003c/kbd\u003e + \u003ckbd\u003e4\u003c/kbd\u003e - **Open terminal 4**\n\n\u003ckbd\u003eleader\u003c/kbd\u003e + \u003ckbd\u003e5\u003c/kbd\u003e - **Open terminal 5**\n\n\u003ckbd\u003eleader\u003c/kbd\u003e + \u003ckbd\u003e+\u003c/kbd\u003e - **Increase window height**\n\n\u003ckbd\u003eleader\u003c/kbd\u003e + \u003ckbd\u003e-\u003c/kbd\u003e - **Decrease window height**\n\n\u003ckbd\u003eleader\u003c/kbd\u003e + \u003ckbd\u003eleader\u003c/kbd\u003e + \u003ckbd\u003e+\u003c/kbd\u003e - **Increase window width**\n\n\u003ckbd\u003eleader\u003c/kbd\u003e + \u003ckbd\u003eleader\u003c/kbd\u003e + \u003ckbd\u003e-\u003c/kbd\u003e - **Decrease window width**\n\n## Configuration\n\nSimply pass the custom configuration to `setup` method\n\n```lua\n-- following option will hide the buffer when it is closed instead of deleting\n-- the buffer. This is important to reuse the last terminal buffer\n-- IF the option is not set, plugin will open a new terminal every single time\nvim.o.hidden = true\n\nrequire('nvim-terminal').setup({\n    window = {\n        -- Do `:h :botright` for more information\n        -- NOTE: width or height may not be applied in some \"pos\"\n        position = 'botright',\n\n        -- Do `:h split` for more information\n        split = 'sp',\n\n        -- Width of the terminal\n        width = 50,\n\n        -- Height of the terminal\n        height = 15,\n    },\n\n    -- keymap to disable all the default keymaps\n    disable_default_keymaps = false,\n\n    -- keymap to toggle open and close terminal window\n    toggle_keymap = '\u003cleader\u003e;',\n\n    -- increase the window height by when you hit the keymap\n    window_height_change_amount = 2,\n\n    -- increase the window width by when you hit the keymap\n    window_width_change_amount = 2,\n\n    -- keymap to increase the window width\n    increase_width_keymap = '\u003cleader\u003e\u003cleader\u003e+',\n\n    -- keymap to decrease the window width\n    decrease_width_keymap = '\u003cleader\u003e\u003cleader\u003e-',\n\n    -- keymap to increase the window height\n    increase_height_keymap = '\u003cleader\u003e+',\n\n    -- keymap to decrease the window height\n    decrease_height_keymap = '\u003cleader\u003e-',\n\n    terminals = {\n        -- keymaps to open nth terminal\n        {keymap = '\u003cleader\u003e1'},\n        {keymap = '\u003cleader\u003e2'},\n        {keymap = '\u003cleader\u003e3'},\n        {keymap = '\u003cleader\u003e4'},\n        {keymap = '\u003cleader\u003e5'},\n    },\n})\n```\n\n## Add Keymaps Manually\n\n`nvim-terminal` adds a global variable called `NTGlobal`. When you call\n`require('nvim-terminal').setup()` it adds `terminal` and `window` properties to\n`NTGlobal`\n\n```lua\nvim.api.nvim_set_keymap('n', '\u003cleader\u003et', ':lua NTGlobal[\"terminal\"]:toggle()\u003ccr\u003e', silent)\nvim.api.nvim_set_keymap('n', '\u003cleader\u003e1', ':lua NTGlobal[\"terminal\"]:open(1)\u003ccr\u003e', silent)\nvim.api.nvim_set_keymap('n', '\u003cleader\u003e+', ':lua NTGlobal[\"window\"]:change_height(2)\u003ccr\u003e', silent)\nvim.api.nvim_set_keymap('n', '\u003cleader\u003e-', ':lua NTGlobal[\"window\"]:change_height(-2)\u003ccr\u003e', silent)\n```\n\n## PRO MODE\n\n### Default Terminal\n\n```lua\nterminal = require('nvim-terminal').DefaultTerminal;\n\nlocal silent = { silent = true }\n\nvim.api.nvim_set_keymap('n', '\u003cleader\u003et', ':lua terminal:toggle()\u003ccr\u003e', silent)\nvim.api.nvim_set_keymap('n', '\u003cleader\u003e1', ':lua terminal:open(1)\u003ccr\u003e', silent)\nvim.api.nvim_set_keymap('n', '\u003cleader\u003e2', ':lua terminal:open(2)\u003ccr\u003e', silent)\nvim.api.nvim_set_keymap('n', '\u003cleader\u003e3', ':lua terminal:open(3)\u003ccr\u003e', silent)\n```\n\n### Customized Window\n\n```lua\nlocal Terminal = require('nvim-terminal.terminal')\nlocal Window = require('nvim-terminal.window')\n\nlocal window = Window:new({\n\tposition = 'botright',\n\tsplit = 'sp',\n\twidth = 50,\n\theight = 15\n})\n\nterminal = Terminal:new(window)\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fs1n7ax%2Fnvim-terminal","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fs1n7ax%2Fnvim-terminal","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fs1n7ax%2Fnvim-terminal/lists"}