Note: This project is currently in beta. It may experience bugs, crashes, or other issues.
- Emacs-like text editor
- Easy-to-use interface
- Basic text editing functionalities
- Customizable themes
- Compact design
- Responsive performance
- Portability, including build processes
ge package:
- Entry point
- Key definitions
- Keyboard macro processing
gecore package:
- Core functionalities
- Screen management
- Tree structure
- Kill buffer
utils package:
- Utility functions
te package:
- Text editor functionalities
- Default view in ge (TreeLeaf interface)
theme package:
- Color definitions
- Mark character definitions
Near-Term Goals:
- Functionality and code optimization
- Bug resolution
This text editor project is inspired by Godit (https://github.com/nsf/godit).
To install ge, you need to have Go installed on your system. Then, you can use the following command:
$ mkdir ge-tmp
$ cd ge-tmp/
$ git clone https://github.com/ge-editor/ge.git ge
$ cd ge
$ go get -u
$ make
After installing ge, you can start it by running the ge command in your terminal.
./ge <text file>
Contributions are welcome! If you find any issues or have suggestions for improvement, please feel free to open an issue or create a pull request.
This project is licensed under the MIT License - see the LICENSE file for details.
key | function |
---|---|
C-g | Universal cancel button |
C-x C-c | Quit from the godit |
C-x C-s | Save file [prompt maybe] |
C-x w | Save file as [prompt maybe] |
C-x C-f | Open file |
M-g | Go to line [prompt] |
C-/ | Undo |
C-x C-/ (C-/...) | Redo |
key | function |
---|---|
C-x C-w | View operations mode |
C-x o | Cycle through views |
C-x b | Switch buffer in the active view [prompt] |
C-x k | Kill buffer in the active view |
key | function |
---|---|
v | Split active view vertically |
h | Split active view horizontally |
k | Kill active view |
C-f, <right> | Expand/shrink active view to the right |
C-b, <left> | Expand/shrink active view to the left |
C-n, <down> | Expand/shrink active view to the bottom |
C-p, <up> | Expand/shrink active view to the top |
1, 2, 3, 4, ... | Select view |
key | function |
---|---|
C-f, <right> | Move cursor one character forward |
C-b, <left> | Move cursor one character backward |
C-n, <down> | Move cursor to the next line |
C-p, <up> | Move cursor to the previous line |
C-e | Move cursor to the end of line |
<end> | Move cursor to the end of logical line |
C-a | Move cursor to the beginning of the line |
<home> | Move cursor to the beginning of the logical line |
C-v, <pgdn> | Move view forward (half of the screen) |
M-v, <pgup> | Move view backward (half of the screen) |
ESC > | Move cursor to the end of file |
ESC < | Move cursor to the beginning of the file |
C-\ | Insert a newline character |
C-m, <enter> | Insert a newline character and autoindent |
C-h, <backspace> | Delete one character backwards |
C-d, <delete> | Delete one character in-place |
C-k | Kill line |
<any other key> | Insert character |
key | function |
---|---|
C-s, C-r | Into Search and replace mode [interactive prompt] |
C-s | Move to forward matched word |
C-r | Move to backward matched word |
C-e | Replace on cursor |
C-y | Yank and replace on minibuffer from kill buffer |
key | function |
---|---|
C-@, C-<space> | Set mark |
C-x C-x | Swap cursor and mark locations |
C-u | Open mark list |
C-w | Kill region (between the cursor and the mark) |
ESC-w, M-w | Copy region (between the cursor and the mark) |
C-y | Yank (aka Paste) previously killed/copied text |
C-x i | Yank (aka Paste) from clipboard text |
key | function |
---|---|
C-x ( | Start keyboard macro recording |
C-x ) | Stop keyboard macro recording |
C-x e (e...) | Stop keyboard macro recording and execute it |
C-x = | Info about character under the cursor |
C-x I | Insert date |
C-z | Suspend |