From 9b3fc101305e39edb029c237eed6960b40d55ddf Mon Sep 17 00:00:00 2001 From: Corey Johnson & Nathan Sobo Date: Mon, 23 Jan 2012 10:06:56 -0800 Subject: [PATCH] Make dh keybinding work. --- spec/atom/vim-mode-spec.coffee | 17 +++++++++++++++++ src/atom/vim-mode/motions.coffee | 5 +++++ 2 files changed, 22 insertions(+) diff --git a/spec/atom/vim-mode-spec.coffee b/spec/atom/vim-mode-spec.coffee index ddb9c2ce3..41baa3cdc 100644 --- a/spec/atom/vim-mode-spec.coffee +++ b/spec/atom/vim-mode-spec.coffee @@ -57,6 +57,23 @@ describe "VimMode", -> expect(editor.buffer.getText()).toBe "12345\nABCDE" expect(editor.getPosition()).toEqual(column: 0, row: 1) + describe "when followed by an h", -> + it "deletes the previous letter on the current line", -> + editor.buffer.setText("abcd\n01234") + editor.setPosition(column: 1, row: 1) + + editor.trigger keydownEvent 'd' + editor.trigger keydownEvent 'h' + + expect(editor.buffer.getText()).toBe "abcd\n1234" + expect(editor.getPosition()).toEqual {column: 0, row: 1} + + editor.trigger keydownEvent 'd' + editor.trigger keydownEvent 'h' + + expect(editor.buffer.getText()).toBe "abcd\n1234" + expect(editor.getPosition()).toEqual {column: 0, row: 1} + describe "when followed by a w", -> it "deletes to the beginning of the next word", -> editor.buffer.setText("abcd efg") diff --git a/src/atom/vim-mode/motions.coffee b/src/atom/vim-mode/motions.coffee index e94ba54c4..8fba701bd 100644 --- a/src/atom/vim-mode/motions.coffee +++ b/src/atom/vim-mode/motions.coffee @@ -9,6 +9,11 @@ class MoveLeft extends Motion {column, row} = @editor.getPosition() @editor.moveLeft() if column > 0 + select: -> + position = @editor.getPosition() + position.column-- if position.column > 0 + @editor.selectToPosition position + class MoveUp extends Motion execute: -> {column, row} = @editor.getPosition()