Giter Site home page Giter Site logo

Vi-key bindings for mutt about neomutt HOT 58 CLOSED

neomutt avatar neomutt commented on June 30, 2024 8
Vi-key bindings for mutt

from neomutt.

Comments (58)

AdrienLemaire avatar AdrienLemaire commented on June 30, 2024 8

Hi there. Found this thread from https://neomutt.org/contrib/vim-keys. Maybe the doc could be updated to indicate that this feature is not under development anymore :)

from neomutt.

oblitum avatar oblitum commented on June 30, 2024 2

@pickfire this is my .muttrc:

source "gpg -d ~/.mutt/accounts/$MUTT_ACCOUNT |"
source ~/.mutt/keybindings
source ~/.mutt/colorscheme
folder-hook . 'push <collapse-all>'
set realname         = 'Francisco Lopes'
set editor           = 'vim'
set folder           = 'imaps://imap.gmail.com:993'
set spoolfile        = '+INBOX'
set hostname         = gmail.com
set mail_check       = 60
set timeout          = 300
set imap_keepalive   = 300
set postponed        = '+[GMail]/Drafts'
set header_cache     = ~/.mutt/cache/headers
set message_cachedir = ~/.mutt/cache/bodies
set certificate_file = ~/.mutt/certificates
set move             = no
set sort             = 'threads'
set sort_aux         = 'reverse-last-date-received'
set auto_tag         = yes
set record           = ''
set quit             = ask-yes
set include
set uncollapse_jump
set imap_check_subscribed
unset collapse_unread
ignore 'DKIM-Signature:'
ignore 'DomainKey-Signature:'
ignore 'Authentication-Results:'
hdr_order Date From To Cc
auto_view text/html application/pdf
alternative_order text/plain text/enriched text/html

# GooBook
set query_command    = "goobook query '%s'"
macro index,pager    a "<pipe-message>goobook add<return>" 'add sender to google contacts'

# Sidebar configuration
set sidebar_format   = '%B%?F? [%F]?%* %?N?%N/?%S'
set sidebar_visible
set mail_check_stats
  • This is my sole keybindings file:
bind editor                     ^T complete
bind editor                     <tab> complete-query
bind editor                     <space> noop
bind attach                     <space> view-mailcap

#------------------------------------------------------------
# Vi Key Bindings
#------------------------------------------------------------

# Moving around
bind attach,browser,index       gg  first-entry
bind attach,browser,index       G   last-entry
bind pager                      gg  top
bind pager                      G   bottom
bind pager                      k   previous-line
bind pager                      j   next-line

# Scrolling
bind attach,browser,pager,index \CF next-page
bind attach,browser,pager,index \CB previous-page
bind attach,browser,pager,index \Cu half-up
bind attach,browser,pager,index \Cd half-down
bind browser,pager              \Ce next-line
bind browser,pager              \Cy previous-line
bind index                      \Ce next-line
bind index                      \Cy previous-line

bind pager,index                dd  delete-message

# Mail & Reply
bind pager,index                gr  group-reply
bind index                      \Cm list-reply # Doesn't work currently

# Threads
bind browser,pager,index        N   search-opposite
bind pager,index                dT  delete-thread
bind pager,index                dt  delete-subthread
bind pager,index                gt  next-thread
bind pager,index                gT  previous-thread
bind index                      za  collapse-thread
bind index                      zA  collapse-all # Missing :folddisable/foldenable

# Refreshing
bind index                      \Cl imap-fetch-mail
  • NeoMutt version:
❯❯❯ mutt -v
NeoMutt 20160916 (1.7.0)
Copyright (C) 1996-2016 Michael R. Elkins and others.
Mutt comes with ABSOLUTELY NO WARRANTY; for details type `mutt -vv'.
Mutt is free software, and you are welcome to redistribute it
under certain conditions; type `mutt -vv' for details.

System: Linux 4.7.5-1-ARCH (x86_64)
libidn: 1.33 (compiled with 1.33)
hcache backend: GDBM version 1.12. 16/05/2016 (built May 31 2016 18:36:34)

Compiler:
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/lto-wrapper
Target: x86_64-pc-linux-gnu
Configured with: /build/gcc-multilib/src/gcc/configure --prefix=/usr --libdir=/usr/lib --libexecdir=/usr/lib --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=https://bugs.archlinux.org/ --enable-languages=c,c++,ada,fortran,go,lto,objc,obj-c++ --enable-shared --enable-threads=posix --enable-libmpx --with-system-zlib --with-isl --enable-__cxa_atexit --disable-libunwind-exceptions --enable-clocale=gnu --disable-libstdcxx-pch --disable-libssp --enable-gnu-unique-object --enable-linker-build-id --enable-lto --enable-plugin --enable-install-libiberty --with-linker-hash-style=gnu --enable-gnu-indirect-function --enable-multilib --disable-werror --enable-checking=release
Thread model: posix
gcc version 6.2.1 20160830 (GCC)

Configure options: '--prefix=/usr' '--sysconfdir=/etc' '--enable-debug' '--enable-pgp' '--enable-gpgme' '--enable-notmuch' '--enable-pop' '--enable-imap' '--enable-smtp' '--enable-hcache' '--enable-sidebar' '--with-gss=/usr' '--with-ssl=/usr' '--with-sasl' '--with-curses=/usr' '--with-regex' '--with-idn' 'CFLAGS=-march=x86-64 -mtune=generic -O2 -pipe -fstack-protector-strong' 'LDFLAGS=-Wl,-O1,--sort-common,--as-needed,-z,relro' 'CPPFLAGS=-D_FORTIFY_SOURCE=2'

Compilation CFLAGS: -Wall -pedantic -Wno-long-long -march=x86-64 -mtune=generic -O2 -pipe -fstack-protector-strong

Compile options:
+CRYPT_BACKEND_CLASSIC_PGP +CRYPT_BACKEND_CLASSIC_SMIME +CRYPT_BACKEND_GPGME
+DEBUG -DL_STANDALONE +ENABLE_NLS -EXACT_ADDRESS -HOMESPOOL -LOCALES_HACK
-SUN_ATTACHMENT +HAVE_BKGDSET +HAVE_COLOR +HAVE_CURS_SET +HAVE_GETADDRINFO
+HAVE_GETSID +HAVE_ICONV +HAVE_LANGINFO_CODESET +HAVE_LANGINFO_YESEXPR
+HAVE_LIBIDN +HAVE_META -HAVE_REGCOMP +HAVE_RESIZETERM +HAVE_START_COLOR
+HAVE_TYPEAHEAD +HAVE_WC_FUNCS +ICONV_NONTRANS -USE_COMPRESSED +USE_DOTLOCK
+USE_FCNTL -USE_FLOCK -USE_FMEMOPEN +USE_GNU_REGEX +USE_GSS +USE_HCACHE
+USE_IMAP +USE_NOTMUCH -USE_NNTP +USE_POP +USE_SASL -USE_SETGID +USE_SIDEBAR
+USE_SMTP -USE_SSL_GNUTLS +USE_SSL_OPENSSL
-DOMAIN
-MIXMASTER
-ISPELL
SENDMAIL="/usr/sbin/sendmail"
MAILPATH="/var/mail"
PKGDATADIR="/usr/share/mutt"
SYSCONFDIR="/etc"
EXECSHELL="/bin/sh"

patch-attach-headers-color-neomutt
patch-compress-neomutt
patch-cond-date-neomutt
patch-encrypt-to-self-neomutt
patch-fmemopen-neomutt
patch-forgotten-attachments-neomutt
patch-ifdef-neomutt
patch-index-color-neomutt
patch-initials-neomutt
patch-keywords-neomutt
patch-limit-current-thread-neomutt
patch-lmdb-neomutt
patch-multiple-fcc-neomutt
patch-nested-if-neomutt
patch-new-mail-neomutt
patch-nntp-neomutt
patch-notmuch-neomutt
patch-progress-neomutt
patch-quasi-delete-neomutt
patch-reply-with-xorig-neomutt
patch-sensible-browser-neomutt
patch-sidebar-neomutt
patch-skip-quoted-neomutt
patch-smime-encrypt-self-neomutt
patch-status-color-neomutt
patch-timeout-neomutt
patch-tls-sni-neomutt

To learn more about NeoMutt, visit: http://www.neomutt.org/
If you find a bug in NeoMutt, please raise an issue at:
    https://github.com/neomutt/neomutt/issues
or send an email at: <[email protected]>

The case is, with that:

  • if I remove the gr binding I have no binding for group reply, not only that, but Mutt doesn't show any binding for group reply at the top.
  • if I comment out the line importing the vim-bindings, g not only works but is also shown again at the top of Mutt as the binding for group reply.
  • using the vim-bindings with the gr binding, gr not only works but is also displayed at the Mutt top as the group reply binding.

I'd like to use g alone, but it stopped working with the original vim-bindings.

from neomutt.

flatcap avatar flatcap commented on June 30, 2024 1

sidebar

Well, we've got cursor line up/down, page up/down.
What else sounds useful?

  • Shift line up/down (Ctrl-E/Ctrl-Y in vim)?
  • Search in sidebar (and reverse search)?
  • Numbered jump to mailbox (like the Index jump to email)?

As for the Index, a few things spring to mind (but would need code to be written):

  • Top/Middle/Bottom of screen (H/M/L in vim)
  • Open fold, close fold (in addition to toggle)
  • Visual mode (highlighting of tagged files)
    • vip/vap - highlight paragraph (thread)
    • dip/dap - delete paragraph (thread)

And how about a command mode (for real power!)

  • :g/spam/d
  • :q (I type this way too often)

Someone in another forum wanted to be able to to the Sidebar, then use the normal motion keys. Until the new window code lands, that isn't going to be possible.

from neomutt.

flatcap avatar flatcap commented on June 30, 2024

@pickfire That's a great start (and welcome to NeoMutt).
These bindings are certain to improve my productivity :-)

from neomutt.

flatcap avatar flatcap commented on June 30, 2024

I've created a new branch contrib/vim-keybindings and added your config and simple README. You can commit to it directly.

from neomutt.

rgrinberg avatar rgrinberg commented on June 30, 2024

Great idea. I have my own ad-hoc vim like bindings set but would love to switch to something more thought out.

from neomutt.

flatcap avatar flatcap commented on June 30, 2024

I have my own ad-hoc vim like bindings

Show us.

  • What should we add from your set?
  • What can't you do that would be useful?

from neomutt.

The-Compiler avatar The-Compiler commented on June 30, 2024

FWIW those are the ones I have configured: http://git.the-compiler.org/configs/tree/mutt/muttrc#n32

from neomutt.

rgrinberg avatar rgrinberg commented on June 30, 2024

What should we add from your set?

As I've said, What I have is quite adhoc so it's hard for me to tell what is actually vim like vs what I've gotten used to and seems vim inspired. Here's a few that I'm fairly confident about:

bind index \Cu half-up
bind pager \Cu half-up
bind index \Cd half-down
bind pager \Cd half-down

What can't you do that would be useful?

Sidebar navigation is something I haven't yet figured out how to do in a vim like way. That's 1 glaring example for me, will need more time to ponder over other things.

from neomutt.

rgrinberg avatar rgrinberg commented on June 30, 2024

For the sidebar:

  • I'd like a more searchy way to navigate. Incremental search on the
    sidebar would be very useful to me. I know I can already kind of do this
    without the sidebar just with normal directory changing but it would be
    nicer to do it directly there IMO.
  • Having sidebar directories nest and fold would of course be wonderful
    as well.
  • Quite nice would also be the ability to toggle between 2 sidebar
    directories a la C-6 in vim.

In General:

  • I'd love to see something like vim's :jumps, C-o and C-i
    imitated.
  • marks in the index/pager might be incredibly useful.
  • Vimscript! I kid, I kid...

On 06/19, Richard Russon wrote:

sidebar

Well, we've got cursor line up/down, page up/down.
What else sounds useful?

  • Shift line up/down (Ctrl-E/Ctrl-Y in vim)?
  • Search in sidebar (and reverse search)?
  • Numbered jump to mailbox (like the Index jump to email)?

As for the Index, a few things spring to mind (but would need code to be written):

  • Top/Middle/Bottom of screen (H/M/L in vim)
  • Open fold, close fold (in addition to toggle)
  • Visual mode (highlighting of tagged files)
    • vip/vap - highlight paragraph (thread)
    • dip/dap - delete paragraph (thread)

And how about a command mode (for real power!)

  • :g/spam/d
  • :q (I type this way too often)

Someone in another forum wanted to be able to to the Sidebar, then use the normal motion keys. Until the new window code lands, that isn't going to be possible.


You are receiving this because you commented.
Reply to this email directly or view it on GitHub:
#56 (comment)

from neomutt.

flatcap avatar flatcap commented on June 30, 2024

They're some good ideas. I shall have a think about how much effort each would be.
Some of the simpler ideas would be great for NeoMutt-newbies / mentoring.

Vimscript

I was thinking Lua -- it's light and simple.
It's certainly not a crazy idea, but I have no idea where to start.

from neomutt.

darnir avatar darnir commented on June 30, 2024

The bind index \Cm list-reply changes <Return> to list-reply on my Mutt. Which means I can no longer use the Enter key to view a message.

from neomutt.

pickfire avatar pickfire commented on June 30, 2024

@flatcap Thanks a lot for the quick response and the welcome.

@rgrinberg Ah, thanks for reminding me about the half-up and half-down feature.

@flatcap for your information:

  • - Shift line up/down (Ctrl-E/Ctrl-Y in vim)? (My first plan)
  • - Search in sidebar (and reverse search)? haven't tried sidebar
  • - Numbered jump to mailbox (like the Index jump to email)?
    • I might just use the number as a count, not sure if I could do that

??? As for the Index, a few things spring to mind (but would need code to be written):

EDIT: TODO moved to https://github.com/neomutt/neomutt.github.io/edit/master/_contrib/vim-keybindings.md

@rgrinberg Wow, you have great ideas, I have zero idea how to implement those things. And I haven't heard of mentor system here.

@darnir The list-reply doesn't work yet for unknown reason. I need to take a look into it.

Edited: Fixed tickboxes (flatcap)

from neomutt.

flatcap avatar flatcap commented on June 30, 2024

Shift line up/down

I was suggesting an idea to manipulate the Sidebar in the same way

  • And how about a command mode (for real power!), isn't there :?

Yes, that starts Mutt's command mode.
It wouldn't be too hard to add some extra "vim-like" commands to the list.

:q (I type this way too often) (me too)

Such as the 'q' command :-)

  • What is :g/spam/d ?

I was suggesting the global command in vim. :g/REGEX/COMMAND
For example:

  • :g/spam/d
    Find each line in the file matching the string 'spam' and delete it ('d')

I think this could be a powerful way to quickly perform commands on certain emails. It would be equivalent to:

  • shift-t -- tag messages matching
  • type in regex
  • ; -- perform command on tagged messages
  • d -- e.g. delete

from neomutt.

pickfire avatar pickfire commented on June 30, 2024

@rgrinberg I have added the feature to scroll half page in 2bab308

@flatcap Sorry for not replying you, I have no idea what do you want.

More suggestions are welcomed. Currently I think the delete key needs some discussion as I think dd might not be so useful as in mutt. I think D might do or ^d

from neomutt.

flatcap avatar flatcap commented on June 30, 2024

@pickfire
Don't worry. I was just trying to list all the possible ideas for making Mutt more vim-like.
Most require code changes so can be ignored, for now.

from neomutt.

pickfire avatar pickfire commented on June 30, 2024

@flatcap I am not sure how to build neomutt the normal way, I can't find the INSTALL page and it isn't in README, maybe we need a more beginner-friendly guide?

from neomutt.

flatcap avatar flatcap commented on June 30, 2024

@pickfire
A build HOWTO is on my list of things to do. I need more volunteers :-)

Here's a basic build with some sensible configure options:

git clone https://github.com/neomutt/neomutt.git
cd neomutt
autoreconf --install
./configure --enable-imap --enable-notmuch --enable-pop --enable-sidebar --enable-hcache
make
./mutt

Afterwards you might want to run make install
Although a smarter move would be to install your distro's version of mutt and just put neomutt ahead of it in your $PATH.

from neomutt.

flatcap avatar flatcap commented on June 30, 2024

@rgrinberg

the ability to toggle between 2 sidebar directories a la Ctrl-^ in vim.

It's a bit complicated, but you can fake this in Mutt, already.
You'd use macros, unmailboxes and mailboxes

# muttrc
source fruit.rc
# fruit.rc
unmailboxes *
mailboxes apple banana cherry
macro index,pager \C^ "<enter-command>source cars.rc<enter>"
# cars.rc
unmailboxes *
mailboxes audi bentley corvette
macro index,pager \C^ "<enter-command>source fruit.rc<enter>"

The trick is that the macro is redefined each time.

from neomutt.

karelzak avatar karelzak commented on June 30, 2024

Vimscript
I was thinking Lua -- it's light and simple.
It's certainly not a crazy idea, but I have no idea where to start.

I don't think it's about language, but about any API provided by mutt core. If you will have API then you can use it in arbitrary interpreter which is possible link to C programs (javascript, python, etc...)

from neomutt.

pickfire avatar pickfire commented on June 30, 2024

@flatcap Do you want me to help to write INSTALL?

By the way, what are those README.* for, it's seems long.

from neomutt.

flatcap avatar flatcap commented on June 30, 2024

@pickfire

Do you want me to help to write INSTALL?

Yes please. That'd be useful.
I've just looked at the history of the file. Apart from some spelling fixes a year ago, it hasn't changed in 7 years.

what are those README.* for, it's seems long.

Most of them are generated automatically from the features' entry in the manual.
Besides NeoMutt, I distribute each feature as a separate patch.
The README.{feature} gives the user a quick guide without having to build anything.

Shorter, more focussed, guides (tutorials perhaps) would be better :-)

from neomutt.

pickfire avatar pickfire commented on June 30, 2024

@flatcap I found those README being the duplicates' of http://www.neomutt.org/features.html it seems confusing to me at first.

Oh, of course, I would like to help to write INSTALL, I will submit a pull request for that in docs/INSTALL.

from neomutt.

flatcap avatar flatcap commented on June 30, 2024

Yes. The official route is:

  • Edit doc/manual.xml.head (in DocBook XML format)
  • Convert to Markdown for http://www.neomutt.org/feature/X (rendered as HTML by Jekyll)
  • Convert to Text for README.X

from neomutt.

flatcap avatar flatcap commented on June 30, 2024

@pickfire
I'm making a release on Friday. If you have any more changes, please commit them as soon as possible.
Thanks.

from neomutt.

pickfire avatar pickfire commented on June 30, 2024

@flatcap I found that it is a bit troublesome to type dd and so on, maybe I will change some keys for d.

from neomutt.

pickfire avatar pickfire commented on June 30, 2024

@flatcap Okay, this should be done now, that dd doesn't seems so bad anyway. I will be closing this until furthur enchancement is needed.

from neomutt.

flatcap avatar flatcap commented on June 30, 2024

I will be closing this until further enhancement is needed.

Thanks for all your work. It'll be in the release that may be out today.

from neomutt.

tarpack avatar tarpack commented on June 30, 2024

Hi. I saw in the latest changelog that these vim keybindings have been added. My question is, how do I use them now that I've upgraded neomutt? Do I need to source something in my muttrc?

I installed neomutt using the AUR package for arch linux. I'm not sure where the "vim-keybindings.rc" file is installed to.

from neomutt.

pickfire avatar pickfire commented on June 30, 2024

@tarpack It's in contrib/vim-keybindings/vim-keybindings.rc, you can copy that to your ~/.mutt and use it by sourcing it:

source ~/.mutt/vim-keybindings.rc

from neomutt.

tarpack avatar tarpack commented on June 30, 2024

Ok, so it isn't installed somewhere by the package. It would be nice if stuff like this could go into something like "/usr/share/doc/mutt/samples" so that we can source from there rather than copying the file out of the repo and worrying about maintaining our own versions.

Thanks!

from neomutt.

pigmonkey avatar pigmonkey commented on June 30, 2024

I have the same problem with list-reply as @darnir. I had to comment that line out in order to open mail.

from neomutt.

pickfire avatar pickfire commented on June 30, 2024

Yes, that's why I commented that. Need to see how it goes.

from neomutt.

pigmonkey avatar pigmonkey commented on June 30, 2024

Since we know about the list-reply issue, can we just comment out that whole line (rather than just placing a comment about the breakage at the end of the line)? Now that the keybindings are installed to /usr/share/doc/neomutt/ I would like to just include the file from there. As it is I still need to maintain my own copy so that I can remove that breaking line.

from neomutt.

pickfire avatar pickfire commented on June 30, 2024

@pigmonkey I need to find a replacement for list-reply before doing that or else the others can't use list-reply.

from neomutt.

oblitum avatar oblitum commented on June 30, 2024

How make group reply work? With the keybindings g doesn't show up in the mutt top anymore, nor does it work for group reply.

from neomutt.

oblitum avatar oblitum commented on June 30, 2024

If the new bindings conflicts with well used ones like group-reply I think the keybinding list must provide an alternative binding for this action by default.

from neomutt.

oblitum avatar oblitum commented on June 30, 2024

I've bind gr for group-reply, and it's also now shown back at top of mutt.

from neomutt.

pickfire avatar pickfire commented on June 30, 2024

@oblitum Did you remember inserting some key-bindings? I don't recall that I set g to scroll to the top, I think it's gg instead.

from neomutt.

oblitum avatar oblitum commented on June 30, 2024

@pickfire I only have these vim-keybindings. I did know that only gg was being set but still, g alone stopped working because of these keybindings. This is how I'm using it now: https://github.com/oblitum/dotfiles/blob/7a8d652a473e53b09ae5a5f8108ecd467ee79309/.mutt/vim-keybindings.

from neomutt.

pickfire avatar pickfire commented on June 30, 2024

@oblitum It should work, I don't see why g alone breaks. Maybe you can show how to reproduce it?

from neomutt.

pickfire avatar pickfire commented on June 30, 2024

@oblitum If you tried to switch to g alone, the other g. combination won't work as g has override it and prevent the use of second key. I would say that setting keys with their respective meanings would be nice.

I can't find out the reason that caused this but maybe you could check the ? (help page) to see which key is preventing the g. combination.

from neomutt.

oblitum avatar oblitum commented on June 30, 2024

@pickfire g.? I didn't know about this one, I thought just g was the default for Mutt. I know g alone is indeed, because when not using custom keybindings it works and is shown at the window top. As far as I see, g. is just "not bound".

from neomutt.

oblitum avatar oblitum commented on June 30, 2024

@pickfire didn't you forget to add such binding? Anyway I'm just using gr now.

from neomutt.

pickfire avatar pickfire commented on June 30, 2024

@oblitum I think you don't get what I mean, do you? g. is not about g + . but it's g + one character.

from neomutt.

oblitum avatar oblitum commented on June 30, 2024

@pickfire no I didn't. I think employing some regex flavor out of a sudden like that isn't good communication.

My problem is not that g. is not working, since the beginning all I'm talking about is that if you provide keybindings that override useful ones like for group-reply, the new keybinding set must provide an alternative keybinding for such function!

from neomutt.

oblitum avatar oblitum commented on June 30, 2024

If g alone keeps working for you, despite using these vim keybindings, OK, so you don't know why it doesn't work for me. No problem, I'm just registering here that it doesn't work for me and I had to input an alternative (gr).

from neomutt.

pickfire avatar pickfire commented on June 30, 2024

@oblitum What do you mean? g alone does nothing and that is expected.

from neomutt.

oblitum avatar oblitum commented on June 30, 2024

@pickfire g alone is group reply in standard install.

from neomutt.

oblitum avatar oblitum commented on June 30, 2024

the bindings remove the group-reply functionality/binding and don't provide any alternative for such a common operation. There's a reason group-reply has a binding in standard installation.

from neomutt.

pickfire avatar pickfire commented on June 30, 2024

@oblitum Ah, I didn't notice that, maybe I will change it to gr. Just submit a pull request so that you can take in some credit for this too.

from neomutt.

guyzmo avatar guyzmo commented on June 30, 2024

just noticed this issue as referenced from the main site β€” which would need some updating. Here's my own version of vi keybindings:

exiting

I unbound all x, i and q and left only x (I'm thinking on switching to another key though). And to exit mutt, it's ZZ (with a confirmation, because I never relaly want to exit mutt ☺).

# unbinding x and i because only one key is enough
bind generic,compose,attach,pager,index i noop    
bind generic,compose,attach,pager,index q noop    
                                                  
# binding q for exiting all menus                 
bind generic,compose,attach,pager x exit          
                                                  
# making q do nothing in index                    
bind index x noop                                 
                                                  
# binding ZZ like in vim to quit, only in index   
bind index ZZ quit                                
                                                  
set quit=ask-yes                                  

top/down, reply-group

I also implemented go to top/down, and to avoid issues, I added ro for reply only and rr for reply to all.

# just like vi and less         
bind index gg first-entry       
bind index G last-entry         
                                
bind index,pager rr group-reply 
bind index,pager ro reply       

from neomutt.

pickfire avatar pickfire commented on June 30, 2024

@guyzmo Ah, you are back. I will take a look at it and see if any keys will do better.

from neomutt.

guyzmo avatar guyzmo commented on June 30, 2024

Back? it's my first comment on this ticket! πŸ˜€

…and I never left ☺

from neomutt.

pickfire avatar pickfire commented on June 30, 2024

@guyzmo I think q for quitting neomut is good, no need to change that.

For the gg and G, I have already implemented it.

But for reply and group-reply, I have yet think of a good key so it uses r for reply and gr for group reply for now.

from neomutt.

guyzmo avatar guyzmo commented on June 30, 2024

actually, q for quitting is ok, but having x and i never made much sense to me.

ZZ is mostly because it's now in my muscle memory (thanks vim), and a good way to actually quit from mutt.

Because I did implement gg and G, I figured it was very vim-like β€” yet based on existing mutt comand β€” to implement both rr and ro. The rationale is that I always prefer to group reply per default (even if I have to drop a recipient in the editor before sending the mail), which is why rr is group-reply, and ro is the special case where you only want to reply to the sender (reply to one). Talking about that, I'm also adding rl (for reply to list) ☺

from neomutt.

pickfire avatar pickfire commented on June 30, 2024

I don't use ZZ in vim although I know that it is there as well as :x, I just use :q most of the time. But for reply to list, I am still looking for a better suited key. Thanks a lot for suggesting rl. If you want, just submit a pull request and maybe others can have a look.

from neomutt.

guyzmo avatar guyzmo commented on June 30, 2024

from neomutt.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.