private final boolean deletePreviousWord() throws IOException {
    while (isDelimiter(buf.current()) && backspace()) {;
    }

    while (!isDelimiter(buf.current()) && backspace()) {;
    }

    return true;
  }
  private final boolean nextWord() throws IOException {
    while (isDelimiter(buf.current()) && (moveCursor(1) != 0)) {;
    }

    while (!isDelimiter(buf.current()) && (moveCursor(1) != 0)) {;
    }

    return true;
  }