Add h (move left) monvment to vimMode.

This commit is contained in:
Corey Johnson & Nathan Sobo
2012-01-13 10:25:16 -08:00
parent 86d7a91dcd
commit d3d832a740
3 changed files with 19 additions and 1 deletions

View File

@@ -39,6 +39,16 @@ describe "VimMode", ->
expect(editor.buffer.getText()).toBe '1345'
expect(editor.getCursor()).toEqual(column: 1, row: 0)
describe "the h/j/k/l keybindings", ->
it "move the cursor left/up/down/right", ->
editor.buffer.setText("12345\nabcde\nABCDE")
editor.setCursor(column: 1, row: 1)
editor.trigger keydownEvent('h')
expect(editor.getCursor()).toEqual(column: 0, row: 1)
editor.trigger keydownEvent('h')
expect(editor.getCursor()).toEqual(column: 0, row: 1)
describe "numeric prefix binding", ->
it "repeats the following operation N times", ->
editor.buffer.setText("12345")

View File

@@ -23,3 +23,9 @@ module.exports =
isComplete: -> true
MoveLeft: class
execute: (editor) ->
{column, row} = editor.getCursor()
editor.navigateLeft() if column > 0
isComplete: -> true

View File

@@ -1,6 +1,6 @@
_ = require 'underscore'
$ = require 'jquery'
{ NumericPrefix, DeleteChar } = require 'vim-mode-operators'
{ NumericPrefix, DeleteChar, MoveLeft } = require 'vim-mode-operators'
module.exports =
class VimMode
@@ -19,6 +19,7 @@ class VimMode
@editor.on 'command-mode:activate', => @activateCommandMode()
@editor.on 'command-mode:delete-char', => @deleteChar()
@editor.on 'command-mode:numeric-prefix', (e) => @numericPrefix(e)
@editor.on 'command-mode:move-left', => @pushOperator(new MoveLeft)
activateInsertMode: ->
@editor.removeClass('command-mode')
@@ -38,6 +39,7 @@ class VimMode
bindings =
'i': 'insert-mode:activate'
'x': 'command-mode:delete-char'
'h': 'command-mode:move-left'
for i in [0..9]
bindings[i] = 'command-mode:numeric-prefix'
bindings