message: Fix a few bugs in `:read`
  Defaults to current file
  Inserts below current line, not at current position
diff: @@ -46,16 +46,19 @@ export class ReadCommand extends ExCommand {
  }
  async execute(vimState: VimState): Promise<void> {
  - const textToInsert = await this.getTextToInsert();
  + const textToInsert = await this.getTextToInsert(vimState);
  if (textToInsert) {
  - await TextEditor.insert(vimState.editor, textToInsert);
  + vimState.recordedState.transformer.insert(vimState.cursorStopPosition.getLineEnd(), '\n' + textToInsert);
  }
  }
  - async getTextToInsert(): Promise<string> {
  - if ('file' in this.arguments && this.arguments.file.length > 0) {
  + // TODO: executeWithRange()
  +
  + async getTextToInsert(vimState: VimState): Promise<string> {
  + if ('file' in this.arguments) {
  return readFileAsync(this.arguments.file, 'utf8');
  - } else if ('cmd' in this.arguments && this.arguments.cmd.length > 0) {
  + } else if ('cmd' in this.arguments) {
  + if (this.arguments.cmd.length > 0) {
  if (SUPPORT_READ_COMMAND) {
  const cmd = this.arguments.cmd;
  return new Promise<string>(async (resolve, reject) => {
  @@ -72,7 +75,11 @@ export class ReadCommand extends ExCommand {
  return '';
  }
  } else {
  - throw Error('Invalid arguments');
  + // TODO: error message?
  + return '';
  + }
  + } else {
  + return vimState.document.getText();
  }
  }
  }
  