Vim Mode for Playground, System Browser, Debugger in Pharo.
- Latest Pharo 6.1 image.
- Pharo VM for Pharo 6.1. (It doesn't work in the latest Pharo. I have tried to fix it, but my Smalltalk skill is rusty, I have no idea what went wrong.)
baseline := 'SmalltalkVimMode'.
repository := 'github://unchartedworks/SmalltalkVimMode:master'.
metacello := [ Metacello new baseline: baseline; repository: repository ].
get := [ metacello value get ].
load := [ metacello value onConflict: [:ex | ex allow]; load ].
actions := {get . load}.
apply := [ :action | action value ].
actions do: apply.
Esc enter normal mode
i enter insert mode
V enter visual mode per line
Command + / comment/uncomment selected code, if there is no selection, the current line will be commented/uncommented.
h left
N h left N times
j down
N j down N times
k up
N k up N times
l right
N l right N times
0 move the cursor to the first character in the line
$ move the cursor to the last character in the line
^ move the cursor to the first non-blank character in the line
g_ move the cursor to the last non-blank character in the line
w move forward to the start of the next word (next alphanumeric word)
N w move forward to the start of the next N words (next N alphanumeric words)
W move forward to the start of the next word (delimited by a white space)
N W move forward to the start of the next N words (delimited by a white space)
e move forward to the end of the next word (next alphanumeric word)
N e move forward to the end of the next N words (next N alphanumeric words)
E move forward to the end of the next word (delimited by a white space)
N E move forward to the end of the next N words (delimited by a white space)
b move backward to the start of previous word (previous alphanumeric word)
N b move backward to the start of previous N words (previous N alphanumeric words)
B move backward to teh start of previous word (delimited by a white space)
N B move backward to teh start of previous N words (delimited by a white space)
gg move to the beginning of the buffer
G move to the end of the buffer
fx move forward to the next occurrence of character x to the right
N fx move forward to the Nth occurrence of character x to the right
tx move forward to before the next occurrence of character x to the rigtht
N tx move forward to before the Nth occurrence of character x to the right
Fx move forward to the Nth occurrence of character x to the left
N Fx move forward to the Nth occurrence of character x to the left
Tx move forward to after the previous occurrence of character x to the left
N Tx move forward to after the Nth occurrence of character x to the left
a insert text after the cursor
A insert text at the end of the line
i insert text before the cursor
o begin a new line below the cursor
O begin a new line above the cursor
x delete character at the cursor
N x delete N characters from the cursor
dw delete a word.
N dw delete N words.
d0 delete to the beginning of a line.
d$ delete to the end of a line.
dgg delete to the beginning of the file.
dG delete to the end of the file.
dd delete line
N dd delete N lines
r peplace the character under the cursor
R replace characters instead of inserting them
yy copy current line into storage buffer
p paste storage buffer after current line
N p paste N times storage buffer after current line
u undo the last operation
N u undo the last N operations
Ctrl + rredo the last undo operation
N Ctrl + rredo the last N undo operations