==================
- Feature: Make all key bindings user configurable.
- Run ``dob config dump editor-keys`` to see all the mappings.
- User can specify zero, one, or multiple keys for each action.
- Improve: Remove 'escape'-only binding to avoid exit on unmapped Ctrl-keys.
- Bugfix: Catch Ctrl-C on dirty-quit confirmation, to avoid unseemly stack trace.
- Bugfix: Ctrl-W not saving on exit.
- Improve: Remove the Ctrl-W save-and-exit key binding.
- Convention is that Ctrl-W is "close", but what would that be in dob?
- The command remains but the binding was removed. The user can assign
a key binding in their config if they want to enable this command.
- Feature: Vim-like command mode (lite).
- Just the three commands, ``:w``, ``:q``, and ``:wq``.
- Because dob uses EDITOR, if Vim is user's editor, user could
run ``:wq`` twice in a row to save their Fact description, leave
the Vim editor, and then save and quit dob.
- Feature: +/-N time adjustment commands.
- Type minus to begin a start time adjustment command. E.g., if you
want to set the start time to ten minutes before the end time, type
``-10<CR>``. Or type ``-10m`` (for minutes). For the active Fact, the
time is calculated relative to "now".
- Type a plus to begin an end time adjustment command, followed by
an integer or floating point number, and then press Enter or "m"
for minutes, or "h" for hours.
- E.g., to set the end time 2.5 hours after the start time, type ``+2.5h``.
- Feature: Add modifier key (defaults to ``!``) to allow interval gap.
- E.g., consider the command ``-1h``, which sets start 1 hour before end.
If it makes the current Fact's time shorter, then it stretches the
previous Fact's end time, as well.
- To not touch the neighbor Fact but to leave a gap instead,
press the modifier key after entering the number, e.g., ``-1!h``.
- User can change the modifier key via the ``editor-keys.allow_time_gap``
config setting.
- Feature: Convenient 1- and 5-minute single-key time nudging commands.
- E.g., ``[`` and ``]`` to decrement or increment end by 1 min., or
add shift press for 5 mins., i.e., ``{`` and ``}``.
- Likewise, use ``,`` and ``.`` to nudge start time
backwards or forwards by 1 minute, respectively;
and use ``<`` and ``>`` for five minutes instead.
- All four keys are user-customizable, of course!
- Bugfix: Ensure Facts marked dirty after time nudging.
- Or user is not asked to save on exit after nudging time.
- Bugfix: Long press time nudge is not increasing deltas over time.
- E.g., if user holds Ctrl-left down, it starts adjusting the time by
one minute for each press generated, but it was not increasing to
five minutes per press, etc., the longer the user kept the key pressed.
- Improve: Ensure neighbor Fact time width not squashed to 0.
- Bugfix: Cannot jump to first/final fact if current Fact within jump delta.
- E.g., Consider user is on current Fact, 2020-04-12 12:00 to 13:00, and
the final Fact is from 2020-04-12 15:00 to 16:00. Pressing ``K`` does not
jump to the final Fact, because it was less than 1 day ahead of current.
- Improve: On jump day from active Fact, use now as reference time.
- This feels more natural, rather than jumping from the start of the
active Fact, and prevents jumping back more than a day.
- Feature: Add Vim-like [count] prefix to Jump and Nudge commands.
- E.g., user has been able to press ``j`` to go to the previous Fact.
Now they can press ``5j`` to go back 5 Facts.
- Likewise for jumping by day, e.g., ``2.5K`` will jump forward 2.5 days.
- Same for time nudging, ``Ctrl-left`` has been used for decrementing the
end time by 1 minute. Now user can specify exact amount, e.g., to
decrease the end time by 4.2 minutes, the user can type ``4.2<Ctrl-left>``.
- User can type ``!`` before or after digits to signal that a time nudge
command should leave a gap rather than stretching a neighbor's time,
e.g., ``!1<Ctrl-right>`` and ``1!<Ctrl-right>`` are equivalent.
- To give user better visibility into what's happening, the jump commands
now print a status message indicating how many days or number of Facts
were jumped. When jumping by day, the time reference used is also shown,
which is helpful if there's a long Fact or Gap, so the user does not get
confused when their jump does not appear to do anything (i.e., when
time reference changes but locates the same Fact that was showing).