One minor issue I noticed is that trying to move to the beginning of a line starting with whitespace (or any other separators) stops after the first character (e.g. `..^a` moves to `.^.a`, where `^` is the cursor). Adding an exemption here if the cursor position is 0 should fix this:
```c
if (isWordSep(l->buf[l->pos]) && l->pos != 0) l->pos++;
```
Other than that, I can't find any problems. :+1: