Eovim is the Enlightened Neovim. That's just an EFL GUI client for Neovim.
Eovim is still in development, but it is stable enough to be used for your daily programming.
Have a look at the Enlightenment Wiki for more.
Eovim is written in plain C, with the amazing EFL. You have great added value to the text-only neovim with a minimal runtime overhead. No need to spawn a web browser to use it! If you don't like the externalized UI, it can be turned off, or changed via themes. Eovim also provides its own plugin system, so the UI can be modified directly from neovim.
Have a problem/question/suggestion? Feel free to open an issue. Join the club!
Eovim requires the following components to be installed on your system before you can start hacking around:
- EFL: this framework of libraries is packaged in most of the GNU/Linux distributions and on macOS. Do not forget to install the efl-devel package which provides Eina among others.
- msgpack-c: this serialization library is not widely packaged, but is
mandatory to communicate with Neovim. You are advised to run the script
scripts/get-msgpack.sh
to install msgpack. This will retrieve and compile a static version of msgpack thateovim
can work with. - Neovim version 0.2.0 or greater (earlier versions have not been tested),
- CMake.
After making sure you have installed the dependencies aforementioned, run the following installation procedure:
./scripts/get-msgpack.sh # Optional, but advised.
mkdir -p build && cd build
cmake -DCMAKE_BUILD_TYPE=Release ..
cmake --build .
cmake --build . --target install # Possibly as root (i.e. via sudo)
If we want to run eovim
without installing it, please refer to the
Hacking section.
eovim [options] [files...]
For now, eovim
can be run without any argument. This is equivalent to run
Neovim without any file. You can pass files as arguments to eovim
, they will
be opened at startup the same way Neovim does.
When eovim
starts, it spawns an instance of Neovim. If it happens that nvim
is not in your PATH
or if you want to use an alterate binary of Neovim, you
can feed it to eovim
with the option --nvim
.
To get a list of all the available options, run eovim --help
.
Eovim supports plug-ins! They allow Eovim to respond to events from Neovim, and
as such to make Neovim freely manipulate the native graphical user interface
provided by Eovim. Details about plug-ins and how the built-in plug-ins work
can be read in the README contained in the plugins/
directory.
Eovim uses some environment variables that can influence its runtime. Some are directly inherited from the EFL framework, others are eovim-specific:
EINA_LOG_BACKTRACE
set it to an integer to get run-time backtraces.EINA_LOG_LEVELS
set it to "eovim:INT" where INT is the log level.EOVIM_IN_TREE
set it to non-zero to load files from the build directory instead of the installation directory.
To develop/debug, a typical use is to run eovim
like this (from the build
directory):
env EOVIM_IN_TREE=1 EINA_LOG_BACKTRACE=0 EINA_LOG_LEVELS="eovim:3" ./eovim
Tests are disabled by default, but can be enabled by passing -DWITH_TESTS=ON
.
Beware, tests require additional setup and dependencies:
- run
scripts/get-test-data.sh
from the top source directory, - make sure you have Exactness installed,
- after building, you should install eovim as well.
Running make test
will run the test suite. Details about how the tests work
are explained in tests/README.md
.
Eovim is MIT-licensed. See the LICENSE
file for details. Files in
data/themes/img
have been taken from terminology or the EFL and are
not original creations.
Portions of the Eovim logo have been borrowed from the original Neovim
logo. Eovim's logo should be understood as a tribute to Neovim.