all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Tom Roche <Tom_Roche@pobox.com>,
To: help-gnu-emacs@gnu.org,
Subject: Re: [emacs-lisp newbie] print-something() -> clipboard?
Date: Sun, 20 May 2012 14:57:30 -0400	[thread overview]
Message-ID: <871ume7k9x.fsf@pobox.com> (raw)
In-Reply-To: <4FB74988.9000404@easy-emacs.de>


Tom Roche 18.05.2012 21:46
>> (defun print-buffer-name ()
>>    "Print (at point) the current buffer's name."
>>    (interactive "*") ; abort if buffer is read-only
>>    (insert (buffer-name (window-buffer (minibuffer-selected-window)))))
>> (global-set-key "\C-pb" 'print-buffer-name)
...
>> I'd like to have the option to "print" the datum to the clipboard.
>> How can I (easily :-) do that?

Andreas Röhler Sat, 19 May 2012 09:19:36 +0200
> (defun yank-date-clipboard ()
>   "Insert into the kill-ring, at X also into the clipboard."
>   (interactive)
>   (kill-new (format-time-string "%Y%m%d")))

Thanks! So now I'm wondering, how can I toggle between
insert-to-buffer and insert-to-clipboard semantics? I now have

(defun print-buffer-name ()
  "Print (at point) the current buffer's name."
  (interactive "*") ; abort if buffer is read-only
  (let ((bn (buffer-name (window-buffer (minibuffer-selected-window)))))
    (insert bn)))
(global-set-key "\C-pb" 'print-buffer-name)

(defun print-buffer-name-clipboard ()
  "Print to clipboard the current buffer's name."
  (interactive "*") ; abort if buffer is read-only
  (let ((bn (buffer-name (window-buffer (minibuffer-selected-window)))))
    (kill-new bn)))
(global-set-key "\C-pc" 'print-buffer-name-clipboard)

but I don't want to define a separate keychord in each case. I want
something like (expressed procedurally--unfortunately I currently think
in '{}', not '()')

if I type [C-p b]
  (insert bn)
else if I type [C-u C-p b]
  (kill-new bn)

Can that be done with one {function, keychord} definition?
Or must I have 2, like above? If the latter, how to define
[C-u C-p b]?

your assistance is appreciated, Tom Roche <Tom_Roche@pobox.com>



  parent reply	other threads:[~2012-05-20 18:57 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-05-18 19:46 [emacs-lisp newbie] print-something() -> clipboard? Tom Roche
2012-05-19  7:19 ` Andreas Röhler
2012-05-20 18:57 ` Tom Roche [this message]
2012-05-20 19:20   ` Drew Adams
2012-05-20 20:27 ` Tom Roche
2012-05-21 13:24   ` Drew Adams

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=871ume7k9x.fsf@pobox.com \
    --to=tom_roche@pobox.com \
    --cc=help-gnu-emacs@gnu.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 external index

	https://git.savannah.gnu.org/cgit/emacs.git
	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.