emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
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 --]

  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).