==================================================== = Welcome to VER, the Vim & Emacs in Ruby editor = ==================================================== This project can be found at: http://github.com/manveru/ver Notes: * M usually stands for the alt key on your keyboard. Various help commands (all not implemented yet): [M-h h] : Open help browser [M-h k] : Query help for key [M-h g] : Grep help [M-h t] : Open tutorial Quick intro: VER is a modal editor, drawing from both Emacs and Vim for inspiration, as they are both excellent projects but have very different downsides. I tried to address these downsides: * Use of a real programming language (Ruby) for implementation, configuration and scripting (no ancient elisp or crazy vimscript) * Easy to use keymappings to emulate other editors while maintaining the strength of a live environment. * I don't intend this editor to be everything for everybody, it's just useful for myself for now. * Make editing powerful without years of learning and remembering arcane shortcuts, and don't require users of the editor to sacrifice their wrists. * Allow project-based browsing and grepping right from the start. * Easily identify the mode you are in by looking at the color of the status line and cursor. Currently working: * [C-x] : Eval a line of ruby * [C-e] : Eval current line and output result below * Buffers * [C-s] : Save buffer contents to file * Opening new buffers * [M-o] : Fuzzy file browser (only use for projects) * [C-o] : Normal file browser (fast for anything, but less magic) * [C-g] : Grep browser, grep all files and jump to matches * Switching buffers * [M-1] to [M-9] : Quick switching buffers * [M-b] : Switching buffers by partial name * [C-q] : Exit current mode or close VER * [C-w] : Close current buffer (requires confirmation if buffer was modified) * Selection, Copy, Paste * Starting selection * [v] : charwise * [V] : linewise * [C-v] : blockwise * Once selection is active, you can switch between these selection modes with the same keys. So, if you started charwise selection but would like to select blockwise instead, just hit [C-v] * Copy to clipboard * [y] : copy current selection * [Y] : copy the full lines touched by current selection * Paste from clipboard * [p] : paste after current cursor position * [P] : paste before current cursor position * Indent * [>] : Indent selection * [<] : Unindent selection * Filter * [!] : Filter selection through external program * [M-e] : Eval selection and output result below * Syntax highlighting - No keys associated, the syntax is detected by filename extension for now. - Trailing newlines are highlighted by default. * Searching * [/] : Start searching by regular expression * [n] : Jump to next search result * [N] : Jump to previous search result * Indentation * [>] : Indent line * [<] : Unindent line * Movement * Basic * [j] : Line down * [k] : Line up * [h] : Char left * [l] : Char right * Jumps * [w] : Word right * [W] : Chunk right * [b] : Word left * [B] : Chunk left * [0] : Beginning of line * [$] : End of line * [G] : Last line * [g g] : First line * [C-f] or [npage] : One page down * [C-b] or [ppage] : One page up * [0 g], [50 g], [100 g], ... : Jump to given line * Completion * [tab] : Last used completion, if first time it defaults to word completion * [C-x C-w] : Word completion * [C-x C-l] : Full line completion * [C-x C-f] : Filename completion * [C-x C-s] : spelling completion (needs aspell) How to run VER: First, make sure that you have the bin/ directory in your PATH. On startup you can choose which keymap to use, VER currently ships with two: vi and diakonos. The vi mapping is the default. ver -k diakonos ver -k vi Todo: - [M-s] : Save file under different name - [M-x] : Live ruby console (figure out some nice way) - FFI bindings for X11 so we can communicate with it and have a proper clipboard (xclip is weak) - Proper handling of [esc], halfdelay works if it's called later, but makes other control characters send signals. - Handling tabs