Configuration-free text editor and IDE limited to VT100. Suitable for writing git commit messages, editing Markdown, config files, source code, viewing man pages and for quick edit-compile cycles when programming. Has syntax highlighting, jump-to-error, rainbow parentheses, macros, tab completion, cut/paste portals and a simple gdb front-end.
BSD-3-CLAUSE License
Bot releases are hidden (Show)
Published by xyproto over 1 year ago
ineffassign
).make trace
and running with ./o -cpuprofile cpu.pprof somefile.txt
and then analyzing the file with go tool pprof
and ie. top30
).Published by xyproto over 1 year ago
o
as a man page viewer on Arch Linux (using MANPAGER=o
).Published by xyproto over 1 year ago
ctrl-_
and type in a 2-letter digraph (same digraphs as ViM uses).ctrl-f
and search for a blank string or a space.ctrl-t
is pressed while editing C or C++, but there is no corresponding source or header file to switch to, use the macro behavior instead.esc
repeatedly to bring up the ctrl-o
menu.-n
flag for not writing to ~/.cache/o
(where the location history, search history, game highscore etc. are kept).--help
and a man page are available.Published by xyproto over 1 year ago
ctrl-t
on an empty line in a Markdown table, insert an empty table and open the Markdown table editor.edig
symlink uses the intended theme.Published by xyproto over 1 year ago
ctrl-o
menu (up from 4). This is to not get in the way of clearing a recorded macro by pressing Esc repeatedly.ctrl-s
while playing the built-in game, to save the pixels as a .png
file, as an easteregg within an easteregg.Published by xyproto over 1 year ago
o
also work as a man page viewer on OpenSUSE.o
on OpenSUSE.og
, use usleep
instead of sleep
.ctrl-w
format Markdown tables, when the cursor is on one.ctrl-s
to save the file also work when editing a Markdown table with the Markdown table editor.ctrl-n
jump to matching parentheses, only ctrl-p
.ctrl-o
menu more descriptive.ctrl-o
menu also show the current program version.o -p
, mark the resulting as executable if it is a script (if it has a .sh
file extension, is pasted in a bin
directory like /usr/bin
or if the file contents starts with a shebang).O_THEME
as an alias for the THEME
environment variable name.Published by xyproto over 1 year ago
betteralign
utility to optimize structs.ctrl-n
and ctrl-p
jump to matching parenthesis or bracket, but only if the cursor is on one and if the previous keypress was not ctrl-n
/ctrl-p
. This way, one can navigate to a parenthesis with the arrow keys and jump to the matching one with ctrl-n
/ctrl-p
, but scrolling down repeatedly with ctrl-n
or up with ctrl-p
will not be stopped.ctrl-g
show a friendly help message, but when ctrl-g
is pressed a third time, let it either go to definition or toggle the status bar at the bottom. Go to definition is a new experimental feature, is only tested for Go code, and currently only works within the same file.Esc
4 times in a row as an alternative way of opening the ctrl-o
menu.ctrl-space
render Markdown files to HTML.ctrl-o
menu for rendering Markdown files to PDF with pandoc
.ctrl-o
menu if the OPENAI_API_KEY
, OPENAI_KEY
or CHATGPT_API_KEY
environment variables is set to a valid OpenAI API key. Every time return
is pressed, the line will be sent to ChatGPT and be corrected. This is an experimental feature.ctrl-f
, then the tab
key and then return
).WordAtCursor
function.ctrl-t
while the cursor is on a Markdown table. Within the table editor, ctrl-n
can be used for adding columns, ctrl-d
can be used for deleting empty columns. return
, tab
and the arrow keys also work, see the README.md file for more information.ctrl-w
format Markdown tables, if the cursor is on one.Published by xyproto over 1 year ago
-c
flag, for directly copying a file to the clipboard.Published by xyproto over 1 year ago
-p
flag for pasting the clipboard contents to a new file.-f -p FILENAME
paste the clipboard to a file, but also overwrite the file if it exists.o
to read man pages with ie. MANPAGER=o man ls
.Published by xyproto over 1 year ago
mode
dependency so that it uses the first 512 bytes to detect the file type. Some man pages have very long first lines.stdin
, ref #14.stdin
.version.sh
script so that it also works on macOS.release.sh
script so that it compiles for multiple platforms in parallel.Published by xyproto over 1 year ago
o
starts, and load them later on as needed.ctrl-space
build and run Odin programs.iferr
feature work for Odin..ino
files.ctrl-o
menu.Generate
, generate
, Write
and write
in single-line comments, with a blank line following, trigger code generation.!
trigger code generation.Build
option in the ctrl-o
menu for macOS, since ctrl-space
might not register.Published by xyproto over 1 year ago
OPENAI_KEY
environment variable.Write
.Published by xyproto over 1 year ago
.desktop
file.go.mod
that could cause issues for users of go install
.Published by xyproto over 1 year ago
Published by xyproto over 1 year ago
o
to Orbiton
. The editor executables are still:
o
- for the terminalog
- for the VTE GUI/etc/fstab
files.CHATGPT_API_KEY
, OPENAI_API_KEY
or OPENAI_KEY
, in that order.Published by xyproto over 1 year ago
os.Getenv
several times. Call os.Environ
once and then cache the variables. This is handled automatically by the github.com/xyproto/env/v2
package. There is a tiny performance improvement for o
because of this.trace
build tag.0
, for generating code and to 0.8
for generating other text.!
for filetypes other than Markdown, only use Write
and write
as "trigger words" for starting to generate code or text with ChatGPT (and only if the CHATGPT_API_KEY
is set).Published by xyproto over 1 year ago
ctrl-space
twice.!
or ie. // generate a function that ....
and return
is pressed..png
, .jpg
, .jpeg
, .gif
, .ico
and bmp
are supported. If CGO_ENABLED
is not set to 0 at compile time, .webp
is also supported). This is an experimental feature and how the images are scaled is not always optimal.rand.Seed
that is deprecated by Go 1.20 (used by the little built-in game).Published by xyproto over 1 year ago
.desktop
file./tmp/tmp.*
files when writing the location history.ktlint
when formatting Kotlin.ctrl-space
is pressed twice.go4.org/bytereplacer
for better performance when replacing bytes.Published by xyproto almost 2 years ago
pbcopy
and pbpaste
on macOS, and make the Makefile
more macOS-friendly.ctrl-space
also run programs when pressed a second time. The last lines of the output will be shown on screen. For now, this feature is only supported for simple Go, Kotlin and Rust applications.ctrl-_
hotkey.chmod +x
behavior, for scripts.g
suffix for all GUI-related executables and symlinks.ctrl-c
behaves.Published by xyproto about 2 years ago
.gz
ending.o
with a sw
symlink, launch ko -s
or set THEME=synthwave
).ctrl-c
, since ctrl-c
may interrupt the program in some terminal emulators.*_test.go
files with ctrl-space
.static
differently for C (and C++).ctrl-~
hotkey for the Linux console.fgtrace
if the trace
build tag is used.ctrl-i
while in debug mode change the behavior of ctrl-space
and ctrl-n
between "step into" and "step next".version.sh
script to only use sed
.