{"id":13469164,"url":"https://github.com/kassio/neoterm","last_synced_at":"2025-04-08T09:06:38.944Z","repository":{"id":29971999,"uuid":"33518960","full_name":"kassio/neoterm","owner":"kassio","description":"Wrapper of some vim/neovim's :terminal functions.","archived":false,"fork":false,"pushed_at":"2023-03-09T21:27:51.000Z","size":475,"stargazers_count":1326,"open_issues_count":30,"forks_count":117,"subscribers_count":14,"default_branch":"master","last_synced_at":"2025-04-01T07:45:20.818Z","etag":null,"topics":["hacktoberfest","neovim","repl","terminal","vim"],"latest_commit_sha":null,"homepage":"","language":"Vim Script","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/kassio.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","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},"funding":{"github":["kassio"]}},"created_at":"2015-04-07T03:05:58.000Z","updated_at":"2025-03-26T23:36:43.000Z","dependencies_parsed_at":"2024-01-14T15:26:30.336Z","dependency_job_id":"cba758a5-d7b0-49e5-9794-a13fbbf6651d","html_url":"https://github.com/kassio/neoterm","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/kassio%2Fneoterm","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kassio%2Fneoterm/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kassio%2Fneoterm/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kassio%2Fneoterm/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kassio","download_url":"https://codeload.github.com/kassio/neoterm/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247809964,"owners_count":20999816,"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":["hacktoberfest","neovim","repl","terminal","vim"],"created_at":"2024-07-31T15:01:28.241Z","updated_at":"2025-04-08T09:06:38.922Z","avatar_url":"https://github.com/kassio.png","language":"Vim Script","funding_links":["https://github.com/sponsors/kassio"],"categories":["Vim Script","Terminal Integration","Vim script"],"sub_categories":["CSV Files"],"readme":"# neoterm\n\n[![lint](https://github.com/kassio/neoterm/workflows/lint/badge.svg?branch=master)](https://github.com/kassio/neoterm/actions?query=workflow%3Alint)\n[![tests](https://github.com/kassio/neoterm/workflows/tests/badge.svg?branch=master)](https://github.com/kassio/neoterm/actions?query=workflow%3Atests)\n[![license](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0)\n\n ```\n __   _ _______  _____  _______ _______  ______ _______\n | \\  | |______ |     |    |    |______ |_____/ |  |  |\n |  \\_| |______ |_____|    |    |______ |    \\_ |  |  |\n```\n\n## Current status\n\n:warning: This plugin is in low maintenance mode. I still use it frequently and I hope most of its features are mature enough for most of its users. However, I understand it has some bugs with python and windows, but debugging these are very hard to me and I'm not willing to code much in vimscript anymore. \n\nPull requests are welcome, and if you want to become a contributor/maintainer I can also give you the right accesses to the codebase. :smile:\n\n---\n\nUse the same terminal for everything. The main reason for this plugin is to\nreuse the terminal easily. All commands open a terminal if one does not already\nexist. REPL commands open a terminal and the proper REPL if not already opened.\n\n- Neovim/Vim terminal helper functions/commands.\n- Wraps REPLs to receive current file, line or selection.\n- Multiple terminal support:\n  - ![many-terms](https://cloud.githubusercontent.com/assets/120483/8921869/fe459572-34b1-11e5-93c9-c3b6f3b44719.gif)\n\n## Installation\n\n### Vundle/Plug.vim/minpac/any other\n\nYou can install this plugin using any vim plugin manager by using the path on\nGitHub for this repository:\n\n```viml\n[Plugin|Plug|...] 'kassio/neoterm'\n```\n\nSee the your plugin manager documentation for more information.\n\n### Manual\n\nFor installation without a package manager, you can clone this Git repository\ninto a bundle directory as with pathogen, and add the repository to your\nruntime path yourself. First clone the repository:\n\n```console\ncd ~/.vim/bundle\ngit clone https://github.com/kassio/neoterm.git\n```\n\nThen, modify your `~/.vimrc` file to add this plugin to your runtime path:\n\n```viml\nset nocompatible\nfiletype off\n\nlet \u0026runtimepath.=',~/.vim/bundle/neoterm'\n\nfiletype plugin on\n```\n\nYou can add the following line to generate documentation tags automatically,\nif you don't have something similar already, so you can use the `:help` command\nto consult neoterm's online documentation:\n\n```viml\nsilent! helptags ALL\n```\n\n### Windows OS\n\nFor Windows users, replace usage of the Unix `~/.vim` directory with\n`%USERPROFILE%\\_vim`, or another directory if you have configured\nVim differently. On Windows, your `~/.vimrc` file will be similarly\nstored in `%USERPROFILE%\\_vimrc`.\n\n## Default behaviour\n\nNeoterm's default behavior is to create a new buffer on the current window when\nopening a neoterm. You can change this with `g:neoterm_default_mod`. Check the\n[documentation](https://github.com/kassio/neoterm/blob/master/doc/neoterm.txt)\nfor more information.\n\n## Send commands to a neoterm window\n\n* `:T {command}`: Opens a terminal, or use an opened terminal, and runs the\n                  given command within a terminal.\n* `:Tmap {command}`: maps a given command to `g:neoterm_automap_keys`.\n\n## Multiple neoterm windows commands\n\n* `:3T {command}`: Will send the command to `neoterm-3`.\n\n### useful mappings:\n\nI like to set some mappings to make me more productive.\n\n```viml\n\" 3\u003cleader\u003etl will clear neoterm-3.\nnnoremap \u003cleader\u003etl :\u003cc-u\u003eexec v:count.'Tclear'\u003ccr\u003e\n```\n\n## test libs (removed on 05/Feb/2017)\n\n*This feature was removed on 05/Feb/2017, please consider using vim-test with\n`neoterm` strategy to replace this feature.*\n\n- [Related issue](https://github.com/kassio/neoterm/issues/123).\n\n## REPL\n\n* `TREPLSendFile`: sends the current file to a REPL in a terminal.\n* `TREPLSendLine`: sends the current line to a REPL in a terminal.\n* `TREPLSendSelection`: sends the selection to a REPL in a terminal.\n* `\u003cPlug\u003e(neoterm-repl-send)`: sends with text-objects or motions, or sends the\n  selection to a REPL in a terminal.\n* `\u003cPlug\u003e(neoterm-repl-send-line)`: sends the current line to a REPL in a\n  terminal.\n\n### Supported REPLs\n\n* Clojure: `lein repl`\n* Elixir: `iex` and `iex -S mix` (if `config/config.exs` exists)\n* GNU Octave: `octave`\n  * For Octave 4.0.0 and later, you can enable Qt widgets (dialogs, plots, etc.)\n    using `g:neoterm_repl_octave_qt = 1`\n* Haskell: `ghci`\n* Idris: `idris`\n* Janet: `janet`\n* JavaScript: `node`\n* Java: `java`\n* Julia: `julia`\n* LFE: `lfe`\n* Lua with `lua` and `luap`.\n* MATLAB: `matlab -nodesktop -nosplash`\n* PARI/GP: `gp`\n* PHP: `g:neoterm_repl_php` and `psysh` and `php`\n* Python: `ipython`, `jupyter console` and `python`\n* R / R Markdown: `R`\n* Racket: `racket`\n* Rails: `bundle exec rails console`\n* Ruby: `pry` and `irb`\n* Rust: `evcxr`\n* SML: `rlwrap sml` or `sml`\n* Scala: `sbt console`\n* Stata: `stata -q`\n* TCL: `tclsh`\n\n### Troubleshooting\n\nMost standard file extensions for the above REPLs are picked up by Neovim/Vim's\ndefault filetype plugins. However, there are some exceptions:\n* Julia `.jl` files, which are detected as `filetipe=lisp`\n* Idris `.idr`, `.lidr` files which are not recognised as any filetype\n* LFE `.lfe` files, which are not recognized as any filetype\n\nTo fix this, either install a suitable plugin for the language or add something like\nthe following to your `init.vim`:\n```viml\nau VimEnter,BufRead,BufNewFile *.jl set filetype=julia\nau VimEnter,BufRead,BufNewFile *.idr set filetype=idris\nau VimEnter,BufRead,BufNewFile *.lidr set filetype=lidris\nau VimEnter,BufRead,BufNewFile *.lfe set filetype=lfe\n```\n\nIf you want to use the jupyter console REPL present on your path, you can use\nthis configuration in your `init.vim`:\n```viml\nfunction! Chomp(string)\n    return substitute(a:string, '\\n\\+$', '', '')\nendfunction\nlet g:neoterm_repl_python = Chomp(system('which jupyter')) . ' console'\n```\n\nNote that the same approach may be used to use Jupyter for R or Stata, provided the appropriate kernels ([IRkernel](https://github.com/IRkernel/IRkernel) and [stata_kernel](https://kylebarron.dev/stata_kernel/)) are installed.\n\n## [Contributing](CONTRIBUTING.md)\n## [Changelog](CHANGELOG.md)\n## [Documentation](doc/neoterm.txt)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkassio%2Fneoterm","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkassio%2Fneoterm","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkassio%2Fneoterm/lists"}