Phi is a minimal code editor designed to look pretty, run fast, and be easy to configure and use. It's primary function is for editing code.
The editor is still a work in progress. There is a chance it will eat up your battery, run quite slowly, and probably crash frequently.
**Do not edit your precious files with this editor!**
Here's a screenshot of Phi in action:
The editor must:
- run fast;
- load and edit large files with ease;
- look pretty; and finally
- be easy to use
The editor probably wont:
- have any plugin support;
- be very customizable in terms of layout;
- support many non utf8 encodings;
- support non true-type-fonts;
- support right-to-left languages;
Perhaps in the future if I have time to get round to some of these I may. Avoiding most of these is to avoid complexity in the code-base and general architecture of the editor.
The editor does not exist as a serious replacement to Sublime Text/Atom/Emacs/[editor name here].
Though one of my big goals for the project is to possibly replace sublime text for my own personal use. Thus the editor is somewhat optimized for my own work-flow.
The code is up purely for people to look at and maybe use or contribute or whatever. Sharing is caring!
Note the editor is still unstable. Please report any bugs you find so I can squash them! It is appreciated if you skim the issue handler to make sure you aren't reporting duplicate bugs.
before filing an issue
Just to make sure it's an issue with the editor currently and not due to a broken change, please:
- make sure the repository is up to date
- make sure all the dependencies are updated, especially "github.com/felixangell/strife"
- try removing the ~/.phi-config folder manually and letting the editor re-load it
You will need the go compiler installed with the GOPATH/GOBIN/etc setup. In addition you will need the following libraries:
If you're on Linux, you will need:
Either works. This is for copying/pasting.
Here's an example for Ubuntu:
$ sudo apt-get install libsdl2-dev libsdl2-image-dev libsdl2-ttf-dev xclip $ go get github.com/felixangell/phi $ cd $GOPATH/src/github.com/felixangell/phi $ go build $ ./phi
If you're on macOS, you can do something like this, using homebrew:
$ brew install sdl2 sdl2_image sdl2_ttf pkg-config $ go get github.com/felixangell/phi $ cd $GOPATH/src/github.com/felixangell/phi $ go build $ ./phi
Building on Windows is a bit more involved. It's the same process, though you will need a bit more software:
- Install mingw-w64 from mingw-builds
- Build Revision:
- Destination folder: any folder your user owns, e.g.
- Install SDL2, SDL2_img, and SDL2_ttf from here: sdl2, sdl2_image, sdl2_ttf
- Extract these zip files;
- Copy the
x86_64-w64-mingw32into your mingw folder specified when installing mingw-w64.
- Add the
mingwbin folder to the
Once this is complete, open up a terminal and type the following:
$ go get github.com/felixangell/phi $ cd $GOPATH/src/github.com/felixangell/phi $ go build $ ./phi
Note that you should run
go install so that the dependencies aren't being rebuilt for faster compile times.
Configuration files are stored in
$HOME/.phi-editor/config.toml. Note that
this directory is created on first startup by the editor, as well as the configuration
files in the 'cfg/' directory are pre-loaded dependening on platform: see 'cfg/linuxconfig.go', for example.
Below is an incomplete configuration file to give you an idea of what the config files are like:
[editor] tab_size = 4 hungry_backspace = true tabs_are_spaces = true match_braces = false maintain_indentation = true highlight_line = true [render] aliased = true accelerated = true throttle_cpu_usage = true always_render = true [theme] background = 0x002649 foreground = 0xf2f4f6 cursor = 0xf2f4f6 cursor_invert = 0x000000 [cursor] flash_rate = 400 reset_delay = 400 draw = true flash = true [commands] [commands.save] shortcut = "super+s" [commands.delete_line] shortcut = "super+d"