emacs-orgmode
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [O] ox-clip.el


From: Jiegec
Subject: Re: [O] ox-clip.el
Date: Thu, 30 Jun 2016 18:19:04 +0800

By reading nsselect.m, there is:

DEFUN ("ns-get-selection", Fns_get_selection,
       Sns_get_selection, 2, 2, 0,
       doc: /* Return text selected from some X window.
SELECTION-SYMBOL is typically `PRIMARY', `SECONDARY', or `CLIPBOARD'.
\(Those are literal upper-case symbol names, since that's what X expects.)
TARGET-TYPE is the type of data desired, typically `STRING'.  */)
     (Lisp_Object selection_name, Lisp_Object target_type)
{
  Lisp_Object val = Qnil;

  check_window_system (NULL);
  CHECK_SYMBOL (selection_name);
  CHECK_SYMBOL (target_type);

  if (ns_get_pb_change_count (selection_name)
      == ns_get_our_change_count_for (selection_name))
      val = ns_get_local_selection (selection_name, target_type);
  if (NILP (val))
    val = ns_get_foreign_selection (selection_name, target_type);
  if (CONSP (val) && SYMBOLP (Fcar (val)))
    {
      val = Fcdr (val);
      if (CONSP (val) && NILP (Fcdr (val)))
        val = Fcar (val);
    }
  val = clean_local_selection_data (val);
  return val;
}

and It seems that it implements the selection API.

So we can use `gui-set-selection' and `gui-get-selection’.
And it works:

(gui-set-selection nil “hello”)
(gui-get-selection)
;=> “hello”

But the text to be copied here is in RTF, but Emacs
is hardcoded to copy texts. Damn. We have to use
pbcopy or to change Emacs internal code.

Now things go back to finding the culprit of
overwriting the clipboard. And I traced to
`evil-visual-update-x-selection’ called in 
`evil-visual-{pre,post}-command’. Oh I don’t understand
why evil does this. Disabling evil-mode works.

Then here comes another bug:

I’m testing on a Chinese org file. Here is the part:

*** Evil-Surround

[[https://github.com/timcharper/evil-surround][Evil-surround]] 是一个 Vim 上非常常用的插件改写的,使用它可以快速的将选中区域进行匹配的操作,例如选中区域两边同时进行添加或修改括号,引号等操作。

下载安装后使用下面的代码将其激活,

#+BEGIN_SRC emacs-lisp
(require 'evil-surround)
(global-evil-surround-mode)
#+END_SRC

简单的使用方法就是在选中所选区域后,使用  =S(= 来将选中区域包括在括号之中。如果想将括号改变成 ="= 可以在选中后使用 =cs("=


But pasting the formatted resulted this:


The encoding is wrong. Adding a ‘-inputencoding UTF-8’ fixes it.

Really cool! That’s what I want.

Any workaround for that unwanted evil behaviour? I rely on evil a lot. 


On Jun 29, 2016, at 10:25 PM, John Kitchin <address@hidden> wrote:


Jiegec writes:

I’m testing this in OS X. I can confirm this works though it seems to conflict with
some other packages here which constantly copy the selected region and then
overwrite the result of ox-clip.
What kind of package is that? None of the kill commands can use the
clipboard that ox-clip sends things too as far as I know. I don't see
how this is possible.

I have checked the output of textutil and use the 
same command in shell and that works. One feedback: are there internal functions
to manipulate the system clipboard? I am in favour of those instead of
pbcopy.

There are none that I know of (or I would have used them ;).

As in mentioned in https://github.com/ChrisJohnsen/tmux-MacOSX-pasteboard <https://github.com/ChrisJohnsen/tmux-MacOSX-pasteboard>,
pbcopy sometimes does not work. The link above says ‘Under Yosemite 
(and later) pasteboard access seems to work fine without the program from 
this repository.’ but this is not true in my laptop in OS X El Capitan
10.11.5.

That could be true. I don't have access to anything that modern yet. 


On Jun 29, 2016, at 9:16 PM, John Kitchin <address@hidden> wrote:

its not there yet. I would like some people to test it out a little
maybe? get some feedback on it. Then it will probably go to MELPA.

Jiege Chen writes:

John Kitchin <address@hidden> wrote:
Hi everyone,

I extended the work I did here
http://kitchingroup.cheme.cmu.edu/blog/2016/06/16/Copy-formatted-org-mode-text-from-Emacs-to-other-applications/
on copying formatted org-mode to other applications so it is
approximately cross-platform now. There is one command
`ox-clip-formatted-copy' that should copy a region in an org-file with
formatting to paste into other applications on Windows, Mac and Linux.

https://github.com/jkitchin/scimax/blob/master/ox-clip.el

Try it out!


Impressive. I'd love ox-clip to be released in MELPA. Is that already done?


-- 
Professor John Kitchin
Doherty Hall A207F
Department of Chemical Engineering
Carnegie Mellon University
Pittsburgh, PA 15213
412-268-7803
@johnkitchin
http://kitchingroup.cheme.cmu.edu



-- 
Professor John Kitchin
Doherty Hall A207F
Department of Chemical Engineering
Carnegie Mellon University
Pittsburgh, PA 15213
412-268-7803
@johnkitchin
http://kitchingroup.cheme.cmu.edu


reply via email to

[Prev in Thread] Current Thread [Next in Thread]