Welcome | Get started | Dive into Lino | Contribute | Topics | Reference | More

Which editor to use

Software developers spend most of their time inside a source code editor.

Don't waste too much of your time with single-file editors like joe or nano. These are good for occasional changes in files on a server that you access via a terminal, but they are not designed for jumping back and forth in a repository with thousands of source code files.

If you haven't yet made up your choice about which editor to use, then we recommend to start with Atom or its community-led successor Pulsar. See next section. There are other choices, most notably PyCharm.

Atom (Pulsar)

Atom was developed by GitHub and discontinued when Microsoft bought them. Although they want it to disappear, it is actually still there in most Linux distributions. So you just say:

$ sudo apt install atom

If this doesn't work, check out Pulsar https://pulsar-edit.dev/

Within Atom, you should install the python-tools package and configure its "Path to Python directory" to point to your default environment (which you installed in Install your Lino developer environment).

Select File ‣ Add project folder... and add your ~/lino directory. This will cause Atom to index all files below this directory.

How to instruct Atom to use your default environment when doing syntax checks or finding definitions:

  • Select Edit ‣ Preferences ‣ Packages

  • Select the settings of the python-tools plugin

  • Set the Path to Python directory field to ~/lino/env/bin (or whatever your chose as your default environment).

Some useful keyboard shortcuts in Atom:

  • Ctrl+P open an existing file using fuzzy file name search within all files of the project.

  • Shfit+Ctrl+F find (and optionally replace) a text string in all files (or in some)

  • Alt+Q reflow selection

  • Ctrl+Alt+G go to definition

Other useful packages to install:

  • tidy-tabs causes Atom to close tabs that you haven't visited for some time. Useful because otherwise Atom can become a memory waster.