       "V": -> new VisualLineMode extend @options, initialRange: @selection.getRangeAt(0).cloneRange()
       "y": ->
         # Special case: "yy" (the first from edit mode, and now the second).
-        @selectLine() if @options.yYanksLine and @keyPressCount == 1
+        @selectLexicalEntity "lineboundary" if @options.yYanksLine and @keyPressCount == 1
         @yank()
 
-    if @options.underEditMode
+    if @options.underEditMode and not @options.oneMovementOnly
       extend @commands,
         "c": -> @yank(); enterInsertMode()
+        "x": -> @yank deleteFromDocument: true
         "d": ->
           # Special case: "dd" (the first from edit mode, and now the second).
-          @selectLine() if @options.dYanksLine and @keyPressCount == 1
+          @selectLexicalEntity "lineboundary" if @options.dYanksLine and @keyPressCount == 1
           @yank deleteFromDocument: true
+
+    if @options.oneMovementOnly
+      extend @commands,
+        "a": ->
+          if @keyPressCount == 1
+            for entity in [ "word", "sentence", "paragraph" ]
+              do (entity) => @movements[entity.charAt 0] = -> @selectLexicalEntity entity
 
     unless @options.underEditMode
       @installFindMode()

      which = if direction == forward then "start" else "end"
      @selection.extend original["#{which}Container"], original["#{which}Offset"]

  # Run a movement command.  The movement should be a string of the form "direction amount", e.g. "forward
  # word".
  runMovement: (movement) ->
    @selection.modify @alterMethod, movement.split(" ")...

  # Try to move one character in "direction".  Return 1, -1 or 0, indicating whether the selection got bigger,
  # or smaller, or is unchanged.

      "v": -> new VisualMode underEditMode: true

      "Y": -> @enterVisualMode runMovement: "Y"
      "x": -> @enterVisualMode runMovement: "h", deleteFromDocument: true
      "y": => @enterVisualMode yYanksLine: true
      "d": => @enterVisualMode deleteFromDocument: true, dYanksLine: true
      "c": => @enterVisualMode deleteFromDocument: true, onYank: enterInsertMode
