Subject: Re: bug#16214: Consistency in dired-, occur-, and grep-mode

From: Tak Kunihiro <[email-masked]>
Date: Sat, 28 Dec 2013 18:57:16 +0900 (JST)

Dear Juri,

>> How about to add `E' to edit buffer? It is close to `e' on occur, and
>> it seems that it is not used in any of dired/occur/wgrep yet.
> 
> Maybe we could use the same key `C-x C-q' for `occur-edit-mode', and
> improve it in such a way that it doesn't cause unexpected results
> when the user intends to edit just the *Occur* buffer, and not its
> associated source buffers.

Thank you for the reply.  Current proposed keys are summarized in
Table 1.  Honestly, I am not capable to improve *Occur* and even I do
not know how I proceed for the next step including technical aspects
as described on www.emacswiki.org/emacs/BzrForEmacsCasualDevs.

Could you give me a suggestion?

Best regards,
Tak

Table 1: A proposed mode, function, key-bind as-is, and key-bind
plus to have consistency between dired-, occur-, and grep.

|--------+-------------------------------------------+---------------+-----------|
| mode   | function                                  | key-as-is     | key-plus  |
|--------+-------------------------------------------+---------------+-----------|
| !      | A. edit-buffer (enable/finish/abort)      |               |           |
|--------+-------------------------------------------+---------------+-----------|
| wdired | (dired-toggle-read-only)                  | "C-x C-q"     |           |
|        | (wdired-finish-edit)                      | "C-c C-c"     |           |
|        | (wdired-abort-changes)                    | "C-c C-k"     |           |
| occur  | (occur-edit-mode)*                        | "e"           | "C-x C-q" |
|        | (occur-cease-edit)                        | "C-c C-c"     |           |
|        | n/a                                       |               | "C-c C-k" |
| wgrep  | (wgrep-change-to-wgrep-mode)              | "C-c C-p"     | "C-x C-q" |
|        | (wgrep-finish-edit)                       | "C-c C-c"     |           |
|        | (wgrep-abort-changes)                     | "C-c C-k"     |           |
|--------+-------------------------------------------+---------------+-----------|
| !      | B. open-file-other-window                 |               |           |
|--------+-------------------------------------------+---------------+-----------|
| dired  | (dired-find-file-other-window)            | "o"           |           |
| occur  | (occur-mode-goto-occurrence-other-window) | <RET> and "o" |           |
| grep   | (compile-goto-error)                      | <RET>         | "o"       |
|--------+-------------------------------------------+---------------+-----------|
| !      | C. open-file-other-window-no-select       |               |           |
|--------+-------------------------------------------+---------------+-----------|
| dired  | (dired-display-file)                      | "C-o"         |           |
| occur  | (occur-mode-display-occurrence)           | "C-o"         |           |
| grep   | n/a                                       |               | "C-o"     |
|--------+-------------------------------------------+---------------+-----------|
| !      | D. open-file-this-window                  |               |           |
|--------+-------------------------------------------+---------------+-----------|
| dired  | (dired-find-file)                         | <RET> and "f" |           |
| occur  | n/a                                       |               | "f"       |
| grep   | n/a                                       |               | "f"       |
|--------+-------------------------------------------+---------------+-----------|
| !      | Z. summary of function-assign-to-<RET>    |               |           |
|--------+-------------------------------------------+---------------+-----------|
| dired  | (dired-find-file)                         | <RET> and "f" |           |
| occur  | (occur-mode-goto-occurrence-other-window) | <RET> and "o" |           |
| grep   | (compile-goto-error)                      | <RET>         | "o"       |
|--------+-------------------------------------------+---------------+-----------|