| Author: | Ollie Rutherfurd |
|---|
Vimposter enables vi emulation for jEdit, modeled after behavior in Vim.
I've been using this plugin actively while developing it, so I've found it stable enough for day to day use. However, it should be considered a prototype. Also, many implemented actions and bindings don't behave as they would in vi/vim, for example w, e, and friends have different definitions of a word -- though this will be fixed in the future.
The following are configuration properties which can't (yet) be set using Vimposter's option pane.
"{char}
[count]#{motion}
$
[count]%
'{char}
[count]*{motion}
[count],
[count].
/
0
:
[count];
[count]<{motion}
[count]<<{motion}
={motion}
[count]==
[count]>{motion}
[count]>>{motion}
A
[count]B
[count]BACK_SPACE
C+CLOSE_BRACKET
[count]C+a
C+b
[count]C+d
[count]C+r
C+t
C+w C+v
[count]C+w C+w
C+w o
C+w p
C+w s
C+w v
[count]C+w w
[count]C+x
D
DELETE
[count]DOWN
[count]E
[count]END
ENTER
ESCAPE
[count]F{char}
[count]G
[count]HOME
I
[count]INSERT{motion}
[count]J
[count]LEFT
[count]N
[count]O
[count]P
[count]PAGE_DOWN
[count]PAGE_UP
R
[count]RIGHT
[count]S+END
[count]S+HOME
[count]SPACE
[count]T{char}
[count]UP
[count]W
[count]X
^
`{char}
a
[count]b
c{motion}
cc
[count]d{motion}
[count]dd
[count]e
[count]f{char}
[count]gP
[count]gU{motion}
[count]gg
[count]gp
[count]gu{motion}
[count]h
i
[count]j
[count]k
[count]l
m{char}
[count]n
[count]o
[count]p
[count]r{char}
[count]t{char}
[count]u
v
[count]w
[count]x
y{motion}
[count]yy
zA
zO
zR
za
[count]zb
zc
zm
zo
[count]zt
[count]zz
[count]{
[count]}
[count]~
:!<CMD> (requires Console plugin) :<LINE-NUMBER> :$ :b :bn :bp :bw :cn :cnext :cnf :cnfile :cp :cprevious :cpf :cpfile :e :e! :help :marks :new :q :q! :qa :ret :retab :sp :ta (requires Tags plugin) :ts (requires Tags plugin) :w :x :set wrap :set nowrap
C+d C+n C+t C+u [count]C+w [count]END ESCAPE [count]HOME S+END S+HOME
"{char}
[count]$
[count]%
'{char}
[count],
[count]0
:
[count];
[count]<{motion}
=
[count]>{motion}
[count]B{motion}
[count]C+b
[count]C+d
[count]DOWN{motion}
[count]ENTER
ESCAPE
[count]F{char}
[count]G{motion}
[count]LEFT
[count]PAGE_DOWN{motion}
[count]PAGE_UP{motion}
[count]R
[count]RIGHT
[count]SPACE
[count]T{char}
U
[count]UP{motion}
[count]W{motion}
[count]^
`{char}
[count]b{motion}
c
d
[count]f{char}
gU
[count]gg{motion}
gu
[count]h
[count]j
[count]k
[count]l
m{char}
[count]p
[count]t{char}
u
[count]v
[count]w{motion}
x
y
[count]zb
[count]zt
[count]zz
[count]{
[count]}
The source code is distributed under the GPL. Please have a look at: http://www.fsf.org/copyleft/gpl.html
- 0.1.2, 2007-12-08 (requires jEdit >= 4.3pre12)
- Updated for 4.3pre12 API change (bsh package shuffle)
- 0.1.1, 2007-12-08 (requires jEdit >=4.3pre5 && < 4.3pre12)
- Added bindings :set et and :set noet.
- Added :shell (requires Console plugin).
- D (delete to end of line) can take a register and count. (Muhammad Haggag)
- Added :set ft=mode (or :set filetype=mode).
- Added C in command (normal) mode. (Muhammad Haggag)
- Added [I (hypersearch-word) in command (normal) mode.
- n & N in command (normal) mode are now motions and accept a count. (Muhammad Haggag)
- 0.1.0, 2007-04-15
- Updated for 4.3pre5 API changes
- Added bindings :cn, :cnext for error-list-next-error, :cp, :cprevious for error-list-previous-error, :cnf, :cnfile for error-list-next-error-file, and :cpf, :cpfile for error-list-previous-error-file.
- Added C+a and C+x (increment and decrement number) actions in command (normal) mode.
- :!<cmd> runs <cmd> in System Shell, if Console plugin installed.
- :help runs help.
- Added :ret and :retab actions.
- Added C+w in insert mode (backspace-word).
- Added C+u in insert mode (delete-start-line).
- Added C+d, C+t (shift-left, shift-right) for insert mode.
- Fixed Action Bar repeating (delegates to default handler).
- 0.0.8, (never released)
- Added semi functional . (repeat last change) to command mode. It works for deletes, case changes, and basically all changes except edits and insertions.
- Fixed << at end of buffer.
- Fixed zz behavior and added zb and zt to command and visual modes. (Matt Gilbert)
- r works with a count.
- cc auto indents if line is empty.
- Fixed indenting to put caret on first non-whitespace character of caret line.
- Updated for 4.3pre3 API changes.
- Fixed :x bug preventing commit messages from being properly saved when using jEdit to write a CVS or svn commit message.
- Added :NUMBER to ex mode to jump to a line.
- Added :set wrap and :set nowrap.
- Added partial support for D (doesn't support taking a count). (John Morris)
- 0.0.7, 2005-04-12
- Added zz to command mode. (Matt Gilbert)
- Fixed auto enabling. (Matt Gilbert)
- 0.0.6, 2005-04-11
- Added vimposter-strict property, to control vi/vim compatabilty.
- h and l respect vimposter-strict, not wrapping to the previous or next line if property set. (Matt Gilbert)
- Added C+r in command mode. (Matt Gilbert)
- Added :ta and :ts. (Matt Gilbert)
- Added C+] (C+CLOSE_BRACKET) and C+t. (Matt Gilbert)
- If vimposter-strict enabled, x does backspace at EOL (Matt Gilbert).
- If vimposter-strict enabled, X does nothing at the start of a line.
- Select nothing when switching to command mode. (Matt Gilbert)
- Added RIGHT and LEFT to visual mode.
- Fixed NPE appending to null register. (Matt Gilbert)
- Fixed x in visual mode to delete current char if nothing selected, and puts cut text into specified register.
- Added R binding for command mode (Matt Gilbert)
- Fixed arg handling for r when using non-alpha characters. I never ran into with this (ex r#), but Matt couldn't get it to work otherwise. (Matt Gilbert)
- Added zR (expand all folds) binding for command mode (Matt Gilbert).
- Added R in visual mode.
- Added u & U for visual mode.
- Added ~ in command mode. (Matt Gilbert)
- Added :qa to ex mode.
- Added [count] support to ==, <<, and >>. (Matt Gilbert)
- Fixed j and k selection handling in visual mode. (Matt Gilbert)
- 0.0.5, 2005-03-31
- Fixed , & ;, which were always searching backwards and forwards instead of reversing the direction of the last character search.
- Added n and N bindings, though they can't be used as motions.
- Use block caret for command mode, and non-block caret for others (Matt Gilbert).
- Added :b and :bw bindings (Matt Gilbert).
- Fixed d binding in visual mode to delete to a register and then switch to command mode. (Matt Gilbert).
- 0.0.4, 2004-03-28
- Fixed cc to put caret at end of leading whitespace.
- Added read-only checks for buffer modification actions.
- Added ; and ,: repeat last character search on current line and repeat it in the opposite direction.
- Fixed ENTER to put caret at first non-whitespace character.
- Yanking to A-Z appends to register.
- Fixed readNextChar (delegating to default input handler).
- 0.0.3, 2004-03-21
- Fixed [count]yy and [count]dd to copy and delete multiple lines, instead of acting on a single line repeatedly.
- Fixed input handling so ":" can be passed to an actions, for example: r and f.
- Added :x.
- ENTER goes to start of next line.
- Added m{char}, '{char}, `{char}, and :marks, using Markers.
- Vimposter can be automatically enabled by setting property vimposter.auto-enable to true.
- Repeated actions followed by motions fixed such that the following are equivlent: 3w3w and d9w (rather than three separate deletions of three words -- which would break pasting the 9 words).
- Added [count]gg and [count]G.
- 0.0.2, 2004-03-17