package org.ninjadev.multivim.commandparser.normalvisualcommands; import java.io.IOException; import org.ninjadev.multivim.Cursor; import org.ninjadev.multivim.commandparser.operators.AbstractOperator; import org.ninjadev.multivim.commandparser.operators.Movement; import org.ninjadev.multivim.movement.IMovement; public class BeginLineMovement implements IMovement{ @Override public boolean move(Cursor cursor, int count, AbstractOperator operator) throws IOException { operator.before(); Cursor operatorCursor = new Cursor(cursor.buffer, cursor.user); operatorCursor.set(cursor); while(operatorCursor.data.position.column != 0){ operatorCursor.buffer.setChar(operator.transform(operatorCursor.getCharacter()), operatorCursor.data.position.row, operatorCursor.data.position.column); operatorCursor.backward(); } operator.after(cursor, operatorCursor); cursor.user.setOperator(new Movement()); return false; } }