Description
viPlugin is a plugin for the Eclipse Platform that adds vi(m) functionality to all editors that are implementations of the ITextEditor interface of Eclipse like the JDT, CDT and many more.
Support is currently given for Eclipse 2.1.3 and Eclipse 3.0, Eclipse 3.1, Rational Application Developer 6.0 and WSAD 5.x based on Eclipse 2.1.
Go to Table of contentsInstallation
There are two versions of the viPlugin:
viPlugin_1.x.y_E21.zip for Eclipse 2.1.3 and WSAD 5.x based on Eclipse 2.1
viPlugin_1.x.y_E30.zip for Eclipse 3.0, Eclipse 3.1 and Rational Application Developer 6.0
Unzip the correct file depending on your Eclipse version into the eclipse folder.
Go to Table of contents
Activation
For Eclipse 3.0, Eclipse 3.1 and Rational Application Developer 6.0:
- Start Eclipse
- Right click the toolbar and select Customize Perspective
- Select the Commands Tab and check the "viPlugin" checkbox in the available "Command Groups" Listbox
- Click on the vi icon in the Toolbar/Menu or hit CTRL-Shift-V to load/unload the viPlugin
For Eclipse 2.1 or WSAD 5.x:
- Start Eclipse.
- Right click on the toolbar with the vertical bars "|" in it.
- Select Customize Perspective...
- open Other
- check viPlugin
- click OK
To get some of the vim CTRL-? shortcuts you have to activate the ViKeyConfiguration with
- Window->Preferences->Workbench->Keys->Active configuration(drop-down) and select viPlugin.
Note: As long as the plugin is loaded all TextEditors are using the viLayer. By clicking the icon again the viPlugin is unloaded.
Go to Table of contentsConfiguration
The viPlugin can be configured with the viPlugin_rc.xml file which has to be placed in the same directory as the viPlugin.license file.
Following is a sample xml file to show how configuration can be done:
<?xml version="1.0"?>
<xml>
<shiftwidth>4</shiftwidth>
<vimcursor>true</vimcursor>
<ignorecase>true</ignorecase>
<expandtab>true</expandtab>
<hlsearch>true</hlsearch>
<incsearch>true</incsearch>
<undolevels>1000</undolevels>
<wordseparators>.,(,), ,TAB,ENTER,:,;,?,+,=,ANGLE_BRACKET_RIGHT,ANGLE_BRACKET_LEFT,*,{,},",|,COMMA,-,\,/,@,[,],},~,!,#,$,%,^,',`,´,AND</wordseparators>
</xml>
Additionaly the viPlugin implements the following commands (Eclipse Actions) that can be assigned Keybinding via the standard Preferences->Workbench->Keys dialog (select KeyConfiguration ViPluginKeyConfiguration and Category ViPlugin):
- SwitchToCommandMode
- AddOneLevelOfIndentation
- EraseOneLevelOfIndentation
- EraseBackOneWord
Go to Table of contents
Commands with Description
Following is a short description of implemented commands. For more information have a look at the vim documentation at
http://www.vim.org.
Command
|
Description
|
ESC |
in insertMode: switch to command mode
in CommandMode: delete CommandBuffer |
i,a,I,A
|
switch to insert mode |
s |
delete current character and switch to Insert Mode |
o
|
add a new line after the current line and switch to insert mode |
O |
add a new line before the current line and switch to insert mode |
$ |
move to the end of the line |
0 |
move the the beginning of the line |
yy |
yank (copy) current line |
y |
yank (copy) selected text to default buffer (clipboard)
|
"ay
|
yank (copy) selected text to buffer a |
p |
paste text in default buffer |
"ap
|
paste text in buffer a
|
dd |
Delete current line |
dk, d(Up Arrow)
|
delete current line and the line above |
dj, d(Down Arrow) |
delete current line and the line below |
dw |
Delete word |
d$ |
Delete to the end of the line |
d0 |
Delete to the beginning of the line |
cc,S |
Delete current line and switch to insert mode |
cw |
Delete to the end of the word and switch to insert mode |
c$ |
Delete to the end of the line and switch to insert mode |
c0 |
Delete to the beginning of the line and switch to insert mode |
gg |
Go to the first line |
G
|
Go to the last line |
<n>G |
Go to the <n>-th line |
/xxx |
search for xxx |
* |
search for word under cursor |
# |
search for word under cursor backwards |
n |
search again with the last search string |
N |
search backwards with the last search string |
x |
delete current character |
:w |
Save file |
:wq |
Save file and close editor |
:q |
Close editor without saving |
:<nr> |
go to line number <nr> |
hjkl |
movement keys |
w |
move one word forward |
b |
move one word backward |
. |
repeat last command |
:u
|
Undo last change
|
u
|
Undo last change
|
CTRL-R, Z |
Redo last undo
|
<<
|
Shift line left
|
>>
|
Shift line right
|
Go to Table of contents
All implemented commands without description
ESC, R, r, J, h, j, k, l, i, I, a, A, o, O, s, S, x, X, dd, D, yy, Y, cc, C, guu, gUU, p, P, u, U, n, N, ta, Ta, fa, Fa, ";", ",", w, b, E, v, V, ZZ, ZQ, zz, zt, zb, z-Enter, %, *, #, (dot-command), ma, qa, @a, 'a, "ay, "ap, /abc, ?abc, gg, G, H, M, L, _, +, -, {, }, ENTER, DEL, BACKSPACE, /(Up-Arrow), /(Down-Arrow), ?(Up-Arrow), ?(Down-Arrow), /ENTER, ?ENTER, W, B, ==, '' (2 single ticks), <<, >>
d, y, c, gu and gU with the following modifiers w,e,E,$,0, $, ^, h, j, k, l, {, }, W, B, gg, G, /xxx, ?xxx, tx, Tx, fx, Fx, (Up-Arrow), (Down-Arrow), (Left-Arrow), (Right-Arrow), 'a, %, SPACE
< and > with the following modifiers 'a, %, j, k, h, l
CTRL-R, CTRL-F, CTRL-B, CTRL-Y, CTRL-D, CTRL-E, CTRL-U, CTRL-T
Some of the following extended commands support ranges like: :.,+1d :.,$s/foo/bar/g :1,'ac
:w, :wa, :q, :wq, :q!, :100, :$, :u, :(Up-Arrow), :(Down-Arrow), :x, :[%]s/search/replace/[g], :s, :%s, :n, :p, :e!, :d
:set, :set ignorecase, :set ic, :set noignorecase, :set noic, :set vimcursor, :set vc, :set novimcursor, :set novc, :set shiftwidth=3, :set sw=3, :set expandtab, :set et, :set noexpandtab, :set noet, :set hlsearch, :set nohlsearch, :set hl, :set nohl, :set incsearch, :set noincsearch, :set ic, :noic
vim imcompatibe commands:
q = page-down, Q = page-up
Go to Table of contents
This product includes the following software:
Jakarta-Commons and Jakarta-Regexp (License)
NanoXML (License)
The licenses can also be found in the doc folder.
Go to Table of contents