1
0
Fork
You've already forked xterm-nvim
0
wrapping neovim with your favourite terminal into a stand alone neovim gui
  • Shell 47.3%
  • Roff 42.8%
  • Makefile 9.9%
Find a file
2026年02月23日 04:24:26 -06:00
.editorconfig
.gitignore Add manual pages 2025年08月30日 16:51:32 -06:00
config.mk Allow user to choose uri schemes to handle 2025年06月01日 22:45:22 -06:00
gnvim.1.in Update manpages 2026年02月23日 00:50:11 -06:00
gnvim.desktop Update desktop file 2025年05月23日 18:49:58 -06:00
gnvim.sh Add support for configurable opencmd 2026年02月22日 21:14:52 -06:00
LICENSE
Makefile Bump VERSION 2025年08月30日 17:14:10 -06:00
nvim-url-handler.1.in Update manpages 2026年02月23日 00:50:11 -06:00
nvim-url-handler.desktop.in Allow user to choose uri schemes to handle 2025年06月01日 22:45:22 -06:00
nvim-url-handler.sh Add more uri format variations 2026年02月23日 00:45:53 -06:00
README.md Update readme 2026年02月23日 04:24:26 -06:00
Screenshot.png Better screenshot i guess 2025年08月30日 17:13:36 -06:00
tmux-nvim.1.in Update manpages 2026年02月23日 00:50:11 -06:00
tmux-nvim.sh Change config change and loading 2025年08月30日 15:17:33 -06:00
vim-anywhere.1.in Add manual pages 2025年08月30日 16:51:32 -06:00
vim-anywhere.sh Check if TMP_FILE exists before trying to type it 2025年08月31日 17:58:19 -06:00
xterm-nvim.7.in Add manual pages 2025年08月30日 16:51:32 -06:00

xterm-nvim

A shell wrappers that provide a sessioned (neo)vim client

install

make clean all install-all

notes

dependencies

  • a POSIX compliant shell interpreter in /bin/sh (bash, dash and busybox ash can suffice)
  • coreutils (both the gnu and freebsd implementations are able to suffice)
  • neovim (should be obvious i hope)
  • tmux (optional)
  • x-terminal-emulator (or a wrapper for your favourite terminal)

terminal wrapper

By default the script will use the x-terminal-emulator program, which is a debianism, usually a symlink pointing to an appropriate wrapper script that does the work of normalizing the command line to provide scripts an interface that is compatible with the common xterm parameter flags and behaviours for example the gnome-terminal.wrapper however you may not need to build your own x-terminal-emulator wrapper as by policy debian will provide such wrapper for the terminal emulators that DO need it, you can check from the following list of terminals that provide the x-terminal-emulator interface in debian to simply yank the needed wrapper: x-terminal-emulator list

As such the gnvim script expects x-terminal-emulator to exist, have the same argument handling behaviour as an xterm and to support the following flags:

flag use
-e execute command
-name change terminal class or profile, set the WM_CLASS(STRING)
-title change terminal title, set the WM_NAME(STRING)

Both gnvim and tmux-nvim will generate a default config upon first run.

help output

The 4 scripts support the -h flag to show help messages, consult them before using, the scripts that have a config file (gnvim, tmux-nvim) will generate the default config when a config file does not exist, even when run with the -h option.

Pro gamer tip: use this to your advantage.

gnvim

The script jumping through the hoops to wrap the x-terminal-emulator, by default it will want to use tmux via the tmux-nvim wrapper, but it can also work without tmux, just enable the option in the config file.

vim-anywhere

Decided to roll out my own vim-anywhere implementation inspired on the original one with quite some changes, for it to work your terminal emulator or wrapper must support the -name and -title flags as by convenience with those you can set up rules in your window manager to to always treat the terminal window as a floating window (if you use a tiling window manager) to be always on top, the name and class passed onto the vim anywhere terminal is GVim

clipboard and typing

In addition to the previous requirements you will need the following programs for your environment, they are all available in the debian stable repos.

For x11

For wayland

nvim-url-handler

This provides support for the yet to be officialized nvim:// uri schema from: neovim #34102

The script in addition to coreutils requires a python interpreter for uri decoding and programs xdg-mime from xdg-utils and update-desktop-database from desktop-file-utils

You can modify which uri schemes will be handled by the script at install time, just edit the config.mk file then install as normal, for example:

URI_SCHEMES = nvim vim editor

to add support for a generic editor uri scheme in the spirit of debian.