Open petrosb opened 6 years ago
Great script, btw. Very useful!
Hi, @petrosb :wave: ! I like it! I need to separate the Elisp from the Applescript and put it all together in a build step. Then, we can put things like this into their respective script files where one can uncomment some lines to enable certain functionality.
I'll work on cleaning this thing up as I've described. Then, it should be easier to add to via pull requests. Stay tuned...
@petrosb your feature is ready as a configuration!
Get the latest from master
curl -fsSL https://raw.github.com/zachcurry/emacs-anywhere/master/install | bash
Add the second line below the comment in ~/.emacs_anywhere/config
# Your configs go here
export EA_SHOULD_COPY=true
Cheers!
A quick follow-up:
Is there a way to paste the copied text into new *Emacs Anywhere*
buffer automatically?
@feigaoxyz no. It seems like a nice compliment to this feature though! Do you think we should add it?
I do think so. And that's actually PO proposed. I mean, the whole purpose to select some text and copy to clipboard before invoking this tool is to have it shown in the buffer, right?
p.s.
I think the names EA_SHOULD_COPY
and EA_SHOULD_PASTE
need some work, as they are not so self-explain and README does not make them clear.
I think you mean OP and I agree after rereading his/her post that he/she intended for the text to appear in the buffer. I must have glanced at the title when I added this late last night. Also, the README and the names of these options are probably less than ideal like you say.
Haven't had a chance to try the latest version, but to clarify the OP's comment (:-P), the script I provided above copies the selected text from the app upon activation using
keystroke "c" using command down -- copy before launching emacs; the yank later pastes it in emacs
and then when the emacs anywhere buffer is activated is using
(yank)
to copy the text from the clipboard into the buffer. Thus, when the script is run, the Emacs window will contain the selected text, ready to be edited.
In hindsight, something I did not consider is what happens if no text is selected, so the Command-C does nothing, and there is old text in the Clipboard. In a quick test I just performed, the old text appears in the window, which might not be desired behavior. If I haven't selected something, I would expect the Emacs Anywhere buffer to be empty (not sure how to fix that easily). For me, it's an acceptable trade-off for now, but you might feel otherwise.
PS. Apologies for nod properly making the code in the original ticket look like code... Don't use github tickets/comments very often, so I completely missed this.
Thanks @petrosb ! I messed up and I didn't see the part where you call (yank)
. No apologies necessary. I'll see if I can think of a good way of handling the implementation concerns you've brought up because they are totally valid.
@petrosb I think Emacs Anywhere will let you do this now. In fact, I think you can do anything with it now 😎
Have a look at the README. A lot of things have changed lately.
Let me know if you have any questions 😄
Looks like the original complaint still doesn't work:
Would be nice if I select something in the text box before opening emacs to have it appear in the emacs buffer so I can edit it before pasting again.
@m-cat I have something close to this in my config, this may be of interest: https://tecosaur.github.io/emacs-config/config.html#emacs-anywhere-configuration it pastes the last/active selection (it's hard to tell if which), and deletes the buffer content if the first keystroke is backspace.
I have a working version of this functionality for linux, see https://github.com/DanielRichtmann/emacs-anywhere
Would be nice if I select something in the text box before opening emacs to have it appear in the emacs buffer so I can edit it before pasting again. Here is how to do it (two trivial changes; feel free to incorporate it if you want, or I can create a pull request if you prefer, or just ignore it):
(edited to format code)