#lang scribble/doc @begin[(require scribble/manual) (require scribble/eval) (require scribble/basic)] @title[#:tag "top"]{@bold{Vi mode}: Vi mode for Drscheme} by Jon Rafkind (@tt{rafkind at cs dot utah dot edu}) This package provides a mode for Drscheme that emulates some Vi commands. This package is in beta mode, it doesn't have a lot of features and probably has some bugs. Feedback and bug reports is more than welcome! @table-of-contents[] @section[#:tag "install"]{Install} Execute the following line in Drscheme or Mzscheme @scheme{(require kazzmir/vi/tool)} Then restart Drscheme. @section[#:tag "changelog"]{Changelog} @subsection[#:tag "1.4"]{1.4} @itemize{ @item{ctrl-t performs the "execute" action, as in the run button} @item{ctrl-i re-indents all the source in the definitions pane} @item{Keypad arrows move in escape mode} @item{The ed command :e creates a new file before opening it if it didn't already exist.} @item{Some internal organization using mixins} } @subsection[#:tag "1.3"]{1.3} @itemize{ @item{ctrl-r performs 'redo'} @item{ctrl-u deletes a line in insert mode} @item{ctrl-w deletes a word in insert mode} @item{various bug fixes} } @section[#:tag "use"]{Usage} Vi mode provides the usual vi environment. You start in escape mode and move to other modes by pressing the responsibly key. The following (non-exhaustive) list of features are supported in escape mode. @itemize[ @item{i} @item{w} @item{b} @item{j} @item{k} @item{h} @item{l} @item{p} @item{x} @item{$} @item{^} @item{R} @item{u} @item{n} @item{N} @item{a} @item{A} @item{o} @item{z.} @item{dd} @item{d$} @item{dw} @item{==} @item{J} @item{G} @item{gg} @item{v} @item{%} @item{r} @item{cw} @item{yy} @item{ctrl-e} @item{ctrl-R} @item{ctrl-y} @item{ctrl-d} @item{ctrl-u} ] Insert mode @itemize[ @item{ctrl-w} @item{ctrl-u} ] Some ed commands work. Press ':' then some command and enter. @itemize[ @item{w} @item{wq} @item{q} @item{q! - Does the same thing as q for now} @item{e filename} @item{bn} @item{bp} @item{bd - Only in drscheme 4.1.3.2 and up} ] Searching works just like in vim, type '/' and some string. Searching doesn't handle regex's yet, though. Press `esc' to go back to escape mode at any time. Click the "Vi mode" button on the toolbar to disable/enable Vi mode.