zsh-workers
 help / color / mirror / code / Atom feed
From: Sebastian Gniazdowski <sgniazdowski@gmail.com>
To: dana <dana@dana.is>
Cc: Daniel Shahaf <d.s@daniel.shahaf.name>,
	Zsh hackers list <zsh-workers@zsh.org>
Subject: Re: Official plugin manager?
Date: Fri, 3 Jan 2020 01:25:21 +0100	[thread overview]
Message-ID: <CAKc7PVAPJQZSsOB8XFrA7PLaP8hyD+TmEQY2qoiA8MkXB6_6JQ@mail.gmail.com> (raw)
In-Reply-To: <0C0C9775-59EE-4FBB-AB84-3E7FEF6E5024@dana.is>

On Thu, 2 Jan 2020 at 22:28, dana <dana@dana.is> wrote:
> I agree that zsh provides an underwhelming out-of-box experience for novice
> users and that they are funnelled into OMZ in an attempt to address that. It'd
> be nice if that wasn't the case. I'm not necessarily opposed to an official
> plug-in manager, but i'm not sure it follows that creating one would solve
> this specific problem.

I cannot recall my first contact with Zsh as it was ~14 years ago,
however, when reconstructing I would say that I was pretty much
impressed by the hash table availability, about which I've read in
some pros and cons, Bash vs. Zsh article. I've couldn't believe how
can you have an "official Linux shell" (i.e.: Bash) without them. Then
I recall reading the description of *each* option and turning it
on/off in .zshrc. I'm still using the options, like octal_zeros, for
example, c_bases, numeric_glob_sort, complete_in_word,
no_glob_complete, and others. Noticing: the last one isn't active now
when I'm using menu select. Then I've probably searched the net
looking for how to make the keys like home, end work, found out the
$terminfo trick to notice that it's not working for all keys and then
hardcoding cat -v sequences.

So my experience was maybe a bit different, I was ready to get the
best shell imagined (because of the hash tables) by going close to the
detailed configuration from the start. But maybe others were like this
too and they are just recalling the literally first contact with Zsh.

> Lots of zsh plug-in managers already exist. Any one of them can be used by
> blog authors to 'share decent zshrcs which would also include the other needed
> setopts and zstyles, etc.' *right now*.

I think that this hits a wall of having a choice. "Hey, I just want a
*reasonable* p-m to get all the plugins, as that's what actually
matters, isn't it? Why do I have to decide on the p-m, if I'm going to
do this properly then I'll at least enter 'best zsh plugin manager' in
Google, and this means work, work, lost time and large impatience
intake. And then the slight discomfort of not diving into the topic
enough deep and deciding on a p-m mostly by its cool name - hey, am I
really using the p-m that I should?"

> The only thing that
> would be different about a first-party plug-in manager is that you wouldn't
> have to install it first.

Yes and I think that this is a significant factor in the first-contact
experience.

> Novice users don't use OMZ because they want to manage plug-ins. They use it
> because they want a command they can just run to get the fancy completion and
> prompts they see in screen-shots (...)
> Were we to provide a first-party plug-in manager,
> in the absence of other changes, it would simply be used to install OMZ, or
> something like it.

Ok, I can agree with this, although having a theme loaded by a single
line in zshrc does contribute very much to fulfilling the expectations
of new users that you've mentioned. As for the completion and other
things, like properly working home/end keys, the p-m could address
this by point 6. in the original post – by allowing sourcables, not
only autoloads. For example, Roman shares a decent bindkey setup:

https://www.reddit.com/r/zsh/comments/eblqvq/d/fb7337q/

Why not store this snippet into a plugin called 'bindkeys', which
would have been a subdirectory in
/usr/share/zsh/<VER>/plugins/bindkeys, in a file "translate.zsh" to
highlight the bindkey-s-translation property of the setup, to then
allow users loading it with:

zsh-pm pick=translate.zsh @bindkeys

?

> (...) that most users now don't really want the degree of control (...)
> They just want the cool stuff. If that's true, i feel like having
> the wizard simply offer to turn on that (pre-determined) cool stuff would be
> an easier and more effective way to cut into the OMZ use case than a plug-in
> manager.

OK, however, the sourcables-backend to zsh-newuser-install is IMO
needed first. Then the install function could offer to append:

zsh-pm pick=nodups.zsh param='size -> 10000' @history

to the zshrc.

PS. The zsh-pm is just a conservative quasi-idea of the possible name
of the function of the p-m.

PS2. To illustrate the benefits of sourcables I'm gonna again use
Roman's snippet, as it serves well for the possible bundled-plugin
example:

https://www.reddit.com/r/zsh/comments/dkjp27/bindkey_quest/f4glg6n

zsh-pm @meta-cd

OR

zsh-pm param='back -> ^B; forward -> ^F' @meta-cd

Basically, such a plugin would be one other way to spice-up the first
contact with Zsh, and it shows the benefits of sourcables-approach.

-- 
Sebastian Gniazdowski
News: https://twitter.com/ZdharmaI
IRC: https://kiwiirc.com/client/chat.freenode.net:+6697/#zplugin
Blog: http://zdharma.org

  reply	other threads:[~2020-01-03  0:26 UTC|newest]

Thread overview: 34+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-01-02  3:17 Sebastian Gniazdowski
2020-01-02  4:28 ` Eric Cook
2020-01-02 11:03 ` Daniel Shahaf
2020-01-02 11:37   ` Sebastian Gniazdowski
2020-01-02 11:55     ` Sebastian Gniazdowski
2020-01-02 21:30     ` dana
2020-01-03  0:25       ` Sebastian Gniazdowski [this message]
2020-01-03  1:36         ` dana
2020-01-03  2:43           ` Sebastian Gniazdowski
2020-01-03  2:45           ` Bart Schaefer
2020-01-03  3:26             ` dana
2020-01-03  5:13               ` Sebastian Gniazdowski
2020-01-03 15:00               ` Peter Stephenson
2020-01-03 20:48                 ` Daniel Shahaf
2020-01-03 21:51                   ` Roman Perepelitsa
2020-01-03 22:06                     ` Daniel Shahaf
2020-01-03 22:26                       ` Bart Schaefer
2020-01-03 22:37                       ` Roman Perepelitsa
2020-01-04  0:42                         ` dana
2020-01-04  1:06                           ` Daniel Shahaf
2020-01-04 15:46                           ` Roman Perepelitsa
2020-01-04 16:27                             ` Daniel Shahaf
2020-01-04 16:41                               ` Roman Perepelitsa
2020-01-04 17:35                                 ` Daniel Shahaf
2020-01-04 17:42                                   ` Roman Perepelitsa
2020-01-04 17:11                             ` Bart Schaefer
2020-01-05 10:40                               ` Oliver Kiddle
2020-01-06 17:47                   ` Leah Neukirchen
2020-01-03 11:15             ` Oliver Kiddle
2020-01-04  5:16               ` Sebastian Gniazdowski
2020-01-04  6:00                 ` Sebastian Gniazdowski
2020-01-02 12:00   ` Roman Perepelitsa
2020-01-02 12:21     ` Sebastian Gniazdowski
2020-01-02 12:27       ` Roman Perepelitsa

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

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=CAKc7PVAPJQZSsOB8XFrA7PLaP8hyD+TmEQY2qoiA8MkXB6_6JQ@mail.gmail.com \
    --to=sgniazdowski@gmail.com \
    --cc=d.s@daniel.shahaf.name \
    --cc=dana@dana.is \
    --cc=zsh-workers@zsh.org \
    /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.vuxu.org/mirror/zsh/

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 NNTP newsgroup(s).