From: Calvin Young <calvinwyoung@gmail.com>
To: "Jorge A. Alfaro-Murillo" <jorge.alfaro-murillo@yale.edu>
Cc: emacs-orgmode@gnu.org
Subject: Re: Emulating list functionality from traditional GUI editors
Date: Thu, 11 Dec 2014 10:19:23 -0800 [thread overview]
Message-ID: <CANniJEwnknaXhbzYyZcot_8dP14EpZgqDiB3ndZV2BFLNNAezQ@mail.gmail.com> (raw)
In-Reply-To: <878uieqeej.fsf@yale.edu>
[-- Attachment #1: Type: text/plain, Size: 3131 bytes --]
Jorge, thanks for the quick response!
> * If the cursor is at the end of a list item, then "Return" should
>> insert a new list item (i.e., automatically perform org-meta-return)
>>
>
> M-<enter> does this. You do not want <enter> to do that because you when
> you want to finish the list <enter> finishes it.
>
I don't think I explained myself clearly the first time around. The
behavior I'm hoping to achieve (i.e., the default bulletting behavior in
Google Docs, OSX Notes, etc.) is as follows:
;; Starting with this setup:
- one
- two
+ a[CURSOR_HERE]
;; Hitting <enter> should produce:
- one
- two
+ a
+ [CURSOR_HERE]
;; Hitting <enter> again would then produce:
- one
- two
+ a
- [CURSOR_HERE]
;; And hitting <enter> one last time would produce:
- one
- two
+ a
[CURSOR_HERE]
I know we can already achieve this with some combination of M-<enter>,
<enter>, and M-S-<enter>, but this behavior has 2 distinct advantages:
1. The user only needs to remember one key to cycle between all of these
actions, rather than 3 key combinations.
2. This behavior is more consistent with the bulleting behavior in other
editors, which could make it feel more intuitive for new org-mode users.
> * If the cursor is at the beginning of an empty list item, then
>> "Return" should outdent the list item (or remove it if it's already at
>> the outer-most indentation level)
>>
>
> I am not sure that I understand this but I assume that you would obtain
> the same with <tab>. It goes back and forth between levels of list so if
> you have
>
> - one
> - two
> + a
> + CURSOR_HERE
>
> and you hit <tab> then it changes to
> - one
> - two
> + a
> + CURSOR_HERE
>
> and then two times <tab> (or S-<tab> from the beginning) changes it to
>
> - one
> - two
> + a
> - CURSOR_HERE
>
Yes, but for the reasons mentioned above, it'd be nice if we could use the
<enter> to outdent a new list entry as well.
> * If the cursor is at the beginning of an empty list item, then
>> "Backspace" should delete the list item and move my cursor to the end of
>> the previous list item
>>
>
> I guess you could remap <backspace> to a function that checks if you are
> at the beginning of the list and when that is true it does what you want,
> otherwise it just calls `delete-backward-char'. But generally I would do
> C-a C-k <backspace>, just two more keystrokes.
>
Makes sense. This is an easy function to write -- just wanted to make sure
there wasn't something that already does this out-of-the-box.
> * It'd be nice of these rules could be applied to checkboxes as well
>>
>
> M-S-<enter> inserts a check box.
In general, I *believe* a lot of folks use lists and checkboxs in similar
ways. I certainly do, and I frequently accidentally hit M-<enter> while
editing a checkbox when I really intend to insert a new checkbox entry. As
a result, it seems desirable to create an interface that treats them more
similarly (e.g., using a single <enter> keypress to auto-insert a new
entry).
If this doesn't exist yet, I'd be happy to roll it myself. But it'd be nice
to avoid re-inventing the wheel here if possible :)
[-- Attachment #2: Type: text/html, Size: 5875 bytes --]
next prev parent reply other threads:[~2014-12-11 18:19 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-12-11 17:05 Emulating list functionality from traditional GUI editors Calvin Young
2014-12-11 17:34 ` Jorge A. Alfaro-Murillo
2014-12-11 17:41 ` Jorge A. Alfaro-Murillo
2014-12-11 18:19 ` Calvin Young [this message]
2014-12-11 18:44 ` Jorge A. Alfaro-Murillo
-- strict thread matches above, loose matches on Subject: below --
2014-12-11 8:14 Calvin Young
2014-12-11 19:48 ` Rasmus
2014-12-12 4:48 ` Calvin Young
2014-12-12 8:37 ` Sebastien Vauban
2014-12-13 9:47 ` Calvin Young
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://www.orgmode.org/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=CANniJEwnknaXhbzYyZcot_8dP14EpZgqDiB3ndZV2BFLNNAezQ@mail.gmail.com \
--to=calvinwyoung@gmail.com \
--cc=emacs-orgmode@gnu.org \
--cc=jorge.alfaro-murillo@yale.edu \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).