1

I'm using an old(ish) SLES Linux machine on which there are some issues with vi which I won't go into. I want to use another text editor - but none is installed as part of the distribution, and I'm not the root user.

Browsing GitHub briefly, I find a few editors I could theoretically build on my own - but they depend on all sorts of modern stuff (e.g. micro needs the Go language supported) which itself is probably not installed.

So, I need an editor which I could build from source and is modest in its requirements - not many packages, and things I would likely find on a 12-year-old machine (which does not have many -dev packages installed).

It's ok if the editor's build system pulls packages it needs itself.

1

Try micro, a versatile text editor with no dependencies, (IOW a fully static binary).

Features

  • Easy to Use
    Micro's number one feature is being easy to install (it's just a static binary with no dependencies) and easy to use.

  • Highly Customizable Use a simple json format to configure your options and rebind keys to your liking. If you need more power, you can use Lua to configure the editor further.

  • Colors and Highlighting Micro supports over 75 languages and has 7 default colorschemes to choose from. Micro supports 16, 256, and truecolor themes. Syntax files and colorschemes are also very simple to make.

  • Multiple Cursors Micro has support for Sublime-style multiple cursors, giving you lots of editing power directly in your terminal.

  • Plugin System Micro supports a full-blown plugin system. Plugins are written in Lua and there is a plugin manager to automatically download and install your plugins for you.

  • Common Keybindings Micro's keybindings are what you would expect from a simple-to-use editor. You can also rebind any of the bindings without problem in the bindings.json file.

  • Mouse Support Micro has full support for the mouse. This means you can click and drag to select text, double click select by word, and triple click to select by line.

  • Terminal Emulator Run a real interactive shell from within micro. You could open up a split with code on one side and bash on the other -- all from within micro.

Micro terminal-based editor with text mode tiled windows

| improve this answer | |
  • Please expand your answer with some additional information. What are its significant features? How big it is, considering the static linking? Does it really not depend on anything, even a C library? What is its UI like? etc. – einpoklum Feb 17 at 9:04
0

Try nano. This editor is written in C, so it should have not much dependencies, and is much easier to use than vi.

| improve this answer | |
  • nano depends on the ncurses library's headers - which as I've explained my distro doesn't have. So, please update your answer to include that and any other dependencies. – einpoklum Feb 4 at 10:25
0

Expanding on @BeloumiX's answer:

GNU Nano (named after the non-free editor it imitated, pico) is a simple curses-based text editor. Working with it is based on various (not so many) keyboard shortcuts, like Ctrl+O for writing the file, Ctrl+W for searching and Ctrl+X for quitting. It takes up the whole terminal, and has a small "menu" at the bottom presenting some shortcuts relevant for the current editing state.

enter image description here

It has very modest dependencies, except perhaps for one: the GNU ncurses library, version 5.x (not 6.x!). The development files for ncurses are typically not installed, so you will likely need to download some ncurses-5.x version from here.

Both the ncurses library and nano build using autotools. Also, you want to build and install to a user-specific path; and you have the dependency. Plus, the ncurses build is finicky when it comes to C++ (which you might not even have a compiler for).

So, let's suppose you want to install nano with $HOME/opt/nano serving instead of /usr. Here's what you do (with the current versions at the time of writing):

NANO_ROOT=$HOME/opt/nano
cd $HOME
wget ftp://ftp.invisible-island.net/ncurses/ncurses-5.9.tar.gz
tar xvf ncurses-5.9.tar.gz
rm ncurses-5.9.tar.gz
cd ncurses-5.9
./configure --prefix=${NANO_ROOT} --without-cxx
make
make install
cd ..
rm -r ncurses-5.9
wget https://www.nano-editor.org/dist/v4/nano-4.7.tar.gz
tar xvf nano-4.7.tar.gz
rm nano-4.7.tar.gz
cd nano-4.7
bash
export LDFLAGS="${NANO_ROOT}/lib:${LDFLAGS}"
export CFLAGS="-I${NANO_ROOT}/include ${CFLAGS}"
./configure --prefix=${NANO_ROOT}
make
make install
exit
cd ..
rm -r nano-4.7

Of course you could choose a different prefix (e.g. $HOME or $HOME/.local), or set different directories for different installed file (executable binaries, libraries, header files etc.)

| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.