zsh-users
 help / color / mirror / code / Atom feed
From: Daniel Shahaf <d.s@daniel.shahaf.name>
To: Ahmad Ismail <ismail783@gmail.com>
Cc: Zsh Users <zsh-users@zsh.org>
Subject: Re: save a command in history from within the widget
Date: Sun, 25 Oct 2020 20:24:19 +0000	[thread overview]
Message-ID: <20201025202419.528548e8@tarpaulin.shahaf.local2> (raw)
In-Reply-To: <CAHAhJw+EVFVoXT7Wp_dTMwVy4__Za+umR3cgmmY1Crr5y5+6Qg@mail.gmail.com>

Ahmad Ismail wrote on Sun, 25 Oct 2020 01:00 +0600:
> I am currently working on a widget. It is used so that I can use my git
> alias also for my dotfiles.
> 
> The widget is given bellow:
> Now, the problem is, the commands I am invoking are not being saved in the
> history file.
> For example, if I use:
> 
> % g d add-and-commit "Few Modifications"
> 
> it saves:
> 
> : 1603565685:0;git d add ~ && g d commit -am "Few Modifications"
> 
> I know the command below is the command I actually ran. But I want to save
> the command I used as well. Is there any way I can save a command in
> history from within the widget?

I don't understand your use-case.  You stated your purpose is to use
your «g» alias in your dotfiles, but then you gave an example from
interactive use, and in any case dotfiles don't run widgets.

In any case, I'd scratch the approach of checking [[ $BUFFER =~ '^g d foo' ]],
because it'll break as soon as you want to interactively use complex
commands (e.g., sublists, lists, conditions, loops).

I don't understand why you can't drop a script literally called «g»
into a directory in $path and implement in it whatever logic you want.
(Or possibly a function, depending on your use-case.)

As to your widget code, you don't need kill-whole-line if you set
BUFFER explicitly.  Also, you check BUFFER without first checking
PREBUFFER, which is subtly wrong because $PREBUFFER may end with a line
continuation.

Cheers,

Daniel


  reply	other threads:[~2020-10-25 20:24 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-10-24 19:00 Ahmad Ismail
2020-10-25 20:24 ` Daniel Shahaf [this message]
2020-10-25 21:13   ` Ahmad Ismail
2020-10-26 22:04     ` Daniel Shahaf
2020-10-27 19:01       ` Ahmad Ismail
2020-10-26  7:11   ` Roman Perepelitsa
2020-10-26 11:15     ` Ahmad Ismail
2020-10-26 14:19       ` Ahmad Ismail
2020-10-29 11:07 ` Lewis Butler
2020-10-29 23:54   ` Ahmad Ismail

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=20201025202419.528548e8@tarpaulin.shahaf.local2 \
    --to=d.s@daniel.shahaf.name \
    --cc=ismail783@gmail.com \
    --cc=zsh-users@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).