Skip to main content

a text editor

Project description

Build Status Azure DevOps coverage pre-commit.ci status

babi logo

babi

a text editor, eventually...

installation

pip install babi

why is it called babi?

I used to use the text editor nano, frequently I typo this. on a qwerty keyboard, when the right hand is shifted left by one, nano becomes babi.

babi vs. nano

here is a youtube video where I discuss the motivation for creating and using babi instead of nano:

youtube video about babi

quitting babi

currently you can quit babi by using ^X (or via esc + :q).

key combinations

these are all of the current key bindings in babi

  • ^S: save
  • ^O: save as
  • ^X: quit
  • ^P: open file
  • arrow keys: movement
  • ^A / home: move to beginning of line
  • ^E / end: move to end of line
  • ^Y / pageup: move up one page
  • ^V / pagedown: move down one page
  • ^-left / ^-right: jump by word
  • ^-home / ^-end: jump to beginning / end of file
  • ^_: jump to line number
  • selection: shift + ...: extend the current selection
    • arrow keys
    • home / end
    • pageup / pagedown
    • ^-left / ^-right
    • ^-end / ^-home
  • tab / shift-tab: indent or dedent current line (or selection)
  • ^K / ^U: cut and uncut the current line (or selection)
  • M-u / M-U or M-e: undo / redo
  • ^W: search
  • ^\: search and replace
  • ^C: show the current position in the file
  • ^-up / ^-down: scroll screen by a single line
  • M-left / M-right: go to previous / next file
  • ^Z: background
  • esc: open the command mode
    • :q: quit
    • :w: write the file
    • :wq: write the file and quit
    • :qall: quit every open file
    • :comment: comment on the current line / selection
    • :sort: sort the file (or selection)

in prompts (search, search replace, command):

  • ^C: cancel
  • ^K: cut to end
  • ^R: reverse search

setting up syntax highlighting

the syntax highlighting setup is a bit manual right now

  1. find a visual studio code theme, convert it to json (if it is not already json) and put it at ~/.config/babi/theme.json. a helper script is provided to make this easier: ./bin/download-theme NAME URL

here's a modified vs dark plus theme that works:

./bin/download-theme vs-dark-asottile https://gist.github.com/asottile/b465856c82b1aaa4ba8c7c6314a72e13/raw/22d602fb355fb12b04f176a733941ba5713bc36c/vs_dark_asottile.json

keyboard shortcuts on macos

to get the most out of babi's built in keyboard shortcuts, a few settings must be changed on macos with Terminal.app:

  • in System Preferences: Keyboard > Shortcuts > Mission Control: disable or rebind "Move left a space" and "Move right a space" (the defaults ⌃ → and ⌃ ← conflict)
  • in Terminal.app: Terminal > Preferences > Profiles > Keyboard:
    • check Use Option as Meta key
    • ensure the following keys are enabled:
      • ⌃ →: \033[1;5C
      • ⌃ ←: \033[1;5D
      • ⇧ ↑: \033[1;2A
      • ⇧ ↓: \033[1;2B
      • ⇧ →: \033[1;2C
      • ⇧ ←: \033[1;2D

demos

most things work! here's a few screenshots

file view

this opens the file, displays it, and can be edited and can save! unknown keys are displayed as errors in the status bar. babi will scroll if the cursor goes off screen either from resize events or from movement. babi can edit multiple files. babi has a command mode (so you can quit it like vim :q!). babi also supports syntax highlighting

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

babi-0.0.28.tar.gz (37.8 kB view details)

Uploaded Source

Built Distribution

babi-0.0.28-py2.py3-none-any.whl (43.4 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file babi-0.0.28.tar.gz.

File metadata

  • Download URL: babi-0.0.28.tar.gz
  • Upload date:
  • Size: 37.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.7.1 importlib_metadata/4.10.0 pkginfo/1.8.2 requests/2.27.1 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.8.10

File hashes

Hashes for babi-0.0.28.tar.gz
Algorithm Hash digest
SHA256 fc1deb9540612bb7fdf5cced2f96375776aa1655923afb7a7ddcfa99d96499fe
MD5 9c0ef3a7673466f7ead82d0600b2dc35
BLAKE2b-256 7894573f7e615f55df54218e7743d0de9cf63a9bd354d2b32ec182d905d68952

See more details on using hashes here.

Provenance

File details

Details for the file babi-0.0.28-py2.py3-none-any.whl.

File metadata

  • Download URL: babi-0.0.28-py2.py3-none-any.whl
  • Upload date:
  • Size: 43.4 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.7.1 importlib_metadata/4.10.0 pkginfo/1.8.2 requests/2.27.1 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.8.10

File hashes

Hashes for babi-0.0.28-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 6c4ec543c2fcf3978b281962e4de5e2cab719c7f44377b50d3a4a3ee86f74746
MD5 bdfa001502f7156526314f8c62b439d3
BLAKE2b-256 a1e236128b9a8a8fb1d97ef550c5172298250f80eb3bc0fb7f7a2134892ed424

See more details on using hashes here.

Provenance

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page