{"id":21437059,"url":"https://github.com/dan7h3x/neaterm.nvim","last_synced_at":"2026-02-12T08:03:31.963Z","repository":{"id":263157979,"uuid":"870633311","full_name":"Dan7h3x/neaterm.nvim","owner":"Dan7h3x","description":"A little (smart maybe) terminal plugin for neovim.","archived":false,"fork":false,"pushed_at":"2024-11-16T15:36:33.000Z","size":73,"stargazers_count":5,"open_issues_count":1,"forks_count":0,"subscribers_count":1,"default_branch":"stable","last_synced_at":"2024-11-16T16:30:49.655Z","etag":null,"topics":["neovim","neovim-plugin","terminal","vim"],"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/Dan7h3x.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":"2024-10-10T11:51:30.000Z","updated_at":"2024-10-14T03:10:36.000Z","dependencies_parsed_at":"2024-11-16T16:41:12.030Z","dependency_job_id":null,"html_url":"https://github.com/Dan7h3x/neaterm.nvim","commit_stats":null,"previous_names":["dan7h3x/neaterm.nvim"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Dan7h3x%2Fneaterm.nvim","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Dan7h3x%2Fneaterm.nvim/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Dan7h3x%2Fneaterm.nvim/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Dan7h3x%2Fneaterm.nvim/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Dan7h3x","download_url":"https://codeload.github.com/Dan7h3x/neaterm.nvim/tar.gz/refs/heads/stable","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":225981945,"owners_count":17554940,"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":["neovim","neovim-plugin","terminal","vim"],"created_at":"2024-11-23T00:17:35.232Z","updated_at":"2026-02-12T08:03:31.317Z","avatar_url":"https://github.com/Dan7h3x.png","language":"Lua","funding_links":[],"categories":[],"sub_categories":[],"readme":"# neaterm.nvim\n\nA little (smart maybe) terminal plugin for neovim.\n\n`neaterm` makes a tiling window manager inside neovim, see `demo`.\n\n\u003ca href=\"https://dotfyle.com/plugins/Dan7h3x/neaterm.nvim\"\u003e\n  \u003cimg src=\"https://dotfyle.com/plugins/Dan7h3x/neaterm.nvim/shield\" /\u003e\n\u003c/a\u003e\n\n## Demo\n\n\u003cdiv class=\"plugin-media\"\u003e \n    \u003ch3\u003eDemo Video\u003c/h3\u003e\n    \u003cimg width=\"720\" height=\"480\" src=\"https://github.com/user-attachments/assets/46130bbc-c72b-4523-bab6-d5916e3573b3\"\u003e\u003c/img\u003e\n\u003c/div\u003e\n\nA small example of using `neaterm` in neovim:\n\n![Screenshot](https://github.com/user-attachments/assets/4edfffbe-1004-429b-bead-a2e4f4bafac4)\n\n## Installation\n\nUsing `lazy.nvim` you can install the `neaterm` (stable)\nwith following default configuration:\n\n```lua\n{\n    \"Dan7h3x/neaterm.nvim\",\n    branch = \"stable\",\n    event = \"VeryLazy\",\n    opts = {\n      -- Your custom options here (optional)\n    },\n    dependencies = {\n      \"nvim-lua/plenary.nvim\",\n      \"ibhagwan/fzf-lua\",\n    },\n}\n```\n\nor change the config based on what you want:\n\n```lua\ndefault_opts = {\n  -- Terminal settings\n  shell = vim.o.shell,\n  float_width = 0.5,\n  float_height = 0.4,\n  move_amount = 3,\n  resize_amount = 2,\n  border = 'rounded',\n\n  -- Appearance\n  highlights = {\n    normal = 'Normal',\n    border = 'FloatBorder',\n    title = 'Title',\n  },\n\n  -- Window management\n  min_width = 20,\n  min_height = 3,\n\n\n  -- custom terminals\n  terminals = {\n    ranger = {\n      name = \"Ranger\",\n      cmd = \"ranger\",\n      type = \"float\",\n      float_width = 0.8,\n      float_height = 0.8,\n      keymaps = {\n        quit = \"q\",\n        select = \"\u003cCR\u003e\",\n        preview = \"p\",\n      },\n      on_exit = function(selected_file)\n        if selected_file then\n          vim.cmd('edit ' .. selected_file)\n        end\n      end\n    },\n    lazygit = {\n      name = \"LazyGit\",\n      cmd = \"lazygit\",\n      type = \"float\",\n      float_width = 0.9,\n      float_height = 0.9,\n      keymaps = {\n        quit = \"q\",\n        commit = \"c\",\n        push = \"P\",\n      },\n    },\n    btop = {\n      name = \"Btop\",\n      cmd = \"btop\",\n      type = \"float\",\n      float_width = 0.8,\n      float_height = 0.8,\n      keymaps = {\n        quit = \"q\",\n        help = \"h\",\n      },\n    },\n\n  },\n\n  -- Default keymaps\n  use_default_keymaps = true,\n  keymaps = {\n    toggle = '\u003cA-t\u003e',\n    new_vertical = '\u003cC-\\\\\u003e',\n    new_horizontal = '\u003cC-.\u003e',\n    new_float = '\u003cC-A-t\u003e',\n    close = '\u003cA-d\u003e',\n    next = '\u003cC-PageDown\u003e',\n    prev = '\u003cC-PageUp\u003e',\n    move_up = '\u003cC-A-Up\u003e',\n    move_down = '\u003cC-A-Down\u003e',\n    move_left = '\u003cC-A-Left\u003e',\n    move_right = '\u003cC-A-Right\u003e',\n    resize_up = '\u003cC-S-Up\u003e',\n    resize_down = '\u003cC-S-Down\u003e',\n    resize_left = '\u003cC-S-Left\u003e',\n    resize_right = '\u003cC-S-Right\u003e',\n    focus_bar = '\u003cC-A-b\u003e',\n    repl_toggle = '\u003cleader\u003ert',\n    repl_send_line = '\u003cleader\u003erl',\n    repl_send_selection = '\u003cleader\u003ers',\n    repl_send_buffer = '\u003cleader\u003erb',\n    repl_clear = '\u003cleader\u003erc',\n    repl_history = '\u003cleader\u003erh',\n    repl_variables = '\u003cleader\u003erv',\n    repl_restart = '\u003cleader\u003erR',\n  },\n\n  -- REPL configurations\n  repl = {\n    float_width = 0.6,\n    float_height = 0.4,\n    save_history = true,\n    history_file = vim.fn.stdpath('data') .. '/neaterm_repl_history.json',\n    max_history = 100,\n    update_interval = 5000,\n  },\n\n  -- REPL language configurations\n  repl_configs = {\n    python = {\n      name = \"Python (IPython)\",\n      cmd = \"ipython --no-autoindent --colors='Linux'\",\n      startup_cmds = {\n        -- \"import sys\",\n        -- \"sys.ps1 = 'In []: '\",\n        -- \"sys.ps2 = '   ....: '\",\n      },\n      get_variables_cmd = \"whos\",\n      inspect_variable_cmd = \"?\",\n      exit_cmd = \"exit()\",\n    },\n    r = {\n      name = \"R (Radian)\",\n      cmd = \"radian\",\n      startup_cmds = {\n        -- \"options(width = 80)\",\n        -- \"options(prompt = 'R\u003e ')\",\n      },\n      get_variables_cmd = \"ls.str()\",\n      inspect_variable_cmd = \"str(\",\n      exit_cmd = \"q(save='no')\",\n    },\n    lua = {\n      name = \"Lua\",\n      cmd = \"lua\",\n      exit_cmd = \"os.exit()\",\n    },\n    node = {\n      name = \"Node.js\",\n      cmd = \"node\",\n      get_variables_cmd = \"Object.keys(global)\",\n      exit_cmd = \".exit\",\n    },\n    sh = {\n      name = \"Shell\",\n      cmd = vim.o.shell,\n      startup_cmds = {\n        \"PS1='$ '\",\n        \"TERM=xterm-256color\",\n      },\n      get_variables_cmd = \"set\",\n      inspect_variable_cmd = \"echo $\",\n      exit_cmd = \"exit\",\n    },\n  },\n\n  -- Terminal features\n  features = {\n    auto_insert = true,\n    auto_close = true,\n    restore_layout = true,\n    smart_sizing = true,\n    persistent_history = true,\n    native_search = true,\n    clipboard_sync = true,\n    shell_integration = true,\n  },\n}\n```\n\n## Contributing\n\nI don't how, but if you want to help me and this plugin, please contact me in `Telegram` : `@Dan7h3x` or mail me `m.jalili.barbin@gmail.com`.:)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdan7h3x%2Fneaterm.nvim","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdan7h3x%2Fneaterm.nvim","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdan7h3x%2Fneaterm.nvim/lists"}