KO
|
EN
gitlite — search
Search
#python
#java
#python3
#arduino
#golang
#machine-learning
#rust
#html
#flask
#javascript
#seismology
#nodejs
badavi
★ 16
Open GitHub ↗
vi-like text editor
Download README (.md)
Explore Similar Repositories
RubyConf2014
:
RubyConf 2014: Rapidly Mapping JSON/XML API Schemas In Ruby (Adam Cuppy)
TORCSLink
:
An interface between The Open Source Race Car Simulator (TORCS) and MATLAB/Simulink (or anything else...)
data-structures-and-algorithms-in-javascript
:
Basic data structures and algorithms implemented in JavaScript
signupsumo-web
:
Instant notifications when valuable people sign up to use your product or service.
ris
:
a simple cross-platform resource compiler for c++ projects
// repository documentation
Was this content helpful?
★ 0
(0 ratings)
Select Rating:
★
★
★
★
★
Submit Feedback
Recent Feedback
×
Download README
Do you want to download the
README.md
file for
badavi
?
Download (.md)
# badavi [](https://github.com/isbadawi/badavi/actions) `badavi` is a vi-like terminal mode text editor, implemented in C and using the [`termbox`](https://github.com/tomas/termbox) library to draw to the terminal. It's meant to be a learning exercise and fun project to hack on rather than a serious day-to-day editor, although who knows where it'll end up. ### Features supported so far * Normal, insert, and visual modes. * Motions -- `h`, `j`, `k`, `l`, `0`, `$`, `^`, `{`, `}`, `b`, `B`, `w`, `W`, `e`, `E`, `G`, `g_`, `ge`, `gE`, `gg`, `%`, and more. Motions can be prefixed with an optional count. * `:` commands -- `:w [path]`, `:wq`, `:q`, `:e path` and more. * Split windows with `:split` (horizontal) and `:vsplit` (vertical). You can navigate between them with `<C-w> hjkl`, resize the current window with `<C-w> +` and `<C-w> -`, and equalize the layout with `<C-w> =`. * Delete (`d`), change (`c`) and yank (`y`) operators, which can be applied to any of the motions, or the visual mode selection. (Text objects aren't implemented yet). The affected region is saved into the unnamed register, used by `p` to paste text. Named registers from `a` to `z` are also implemented, and can be specified by prefixing the operator (or `p`) with `"a` through `"z`. * Undo (`u`) and redo (`<c-r>`) (only single-level for now, unlike vim). * `ctags` support -- on startup badavi looks for a tags file called `tags` in the current directory (`'tags'` option not supported yet). The `:tag` command jumps to the specified tag, and `<c-]>` jumps to the tag of the word under the cursor. `<c-t>` and `:tag` can be used to walk up and down the tag stack. The `-t` command line option can also be passed in to start editing at the given tag, as in e.g. `badavi -t main`. * A small subset of the options are implemented. You can manipulate them with `:set`, `:setlocal` and `:setglobal`. These commands accept a similar syntax as vim, e.g. `:set number`, `:set number!`, `:set nonumber`, `:set number?`, etc. Options can be read from a file with `:source path`. At startup a file called `~/.badavimrc` is sourced. * Search forwards with `/`, backwards with `?`. Standard POSIX regexes are used, so the syntax is not exactly the same as vim's. For instance, word boundaries are specified with `[[:<:]]` and `[[:>:]]` instead of `\<` and `\>`. `n` and `N` can be used to cycle through matches. `*` and `#` can be used to search forwards or backwards for the next occurrence of the word under the cursor. Searching is a motion, so it works with the operators. The `'incsearch'` and `'hlsearch'` options are also implemented. ### Building Just run `make`. ### License MIT -- see `LICENSE` file for details.