emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
* paste from clip to code block
@ 2015-04-17  7:21 Xebar Saram
  2015-04-17 13:56 ` John Kitchin
  0 siblings, 1 reply; 10+ messages in thread
From: Xebar Saram @ 2015-04-17  7:21 UTC (permalink / raw)
  To: org mode

[-- Attachment #1: Type: text/plain, Size: 173 bytes --]

Hi all

i was wondering if anyone has every created a function to auto paste what
in the sysclip/emas clip into org but as a formatted code block?
any clue anyone?

best

Z

[-- Attachment #2: Type: text/html, Size: 277 bytes --]

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: paste from clip to code block
  2015-04-17  7:21 paste from clip to code block Xebar Saram
@ 2015-04-17 13:56 ` John Kitchin
  2015-04-17 14:36   ` Xebar Saram
  2015-04-17 15:08   ` Jorge A. Alfaro-Murillo
  0 siblings, 2 replies; 10+ messages in thread
From: John Kitchin @ 2015-04-17 13:56 UTC (permalink / raw)
  To: Xebar Saram; +Cc: org mode

I like this kind of keyboard shortcut:

For python:
<p TAB C-w

For emacs-lisp

<el TAB C-w

What else would you want?

If you like yasnippets, you could do this:

# -*- mode: snippet; require-final-newline: nil -*-
# --

#+begin_src python
`(yank)`
#+end_src

$0

Or some kind of lisp function like:
#+BEGIN_SRC emacs-lisp
(defun paste-python-code ()
  (interactive)
  (insert "#+BEGIN_SRC python\n")
  (yank)
  (insert "\n#+END_SRC"))
#+END_SRC

I guess you need one of these for every language type.
Xebar Saram writes:

> Hi all
>
> i was wondering if anyone has every created a function to auto paste what
> in the sysclip/emas clip into org but as a formatted code block?
> any clue anyone?
>
> best
>
> Z

--
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

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: paste from clip to code block
  2015-04-17 13:56 ` John Kitchin
@ 2015-04-17 14:36   ` Xebar Saram
  2015-04-17 15:08   ` Jorge A. Alfaro-Murillo
  1 sibling, 0 replies; 10+ messages in thread
From: Xebar Saram @ 2015-04-17 14:36 UTC (permalink / raw)
  To: John Kitchin; +Cc: org mode

[-- Attachment #1: Type: text/plain, Size: 1119 bytes --]

thx john

that are very helpful tips!

Z

On Fri, Apr 17, 2015 at 4:56 PM, John Kitchin <jkitchin@andrew.cmu.edu>
wrote:

> I like this kind of keyboard shortcut:
>
> For python:
> <p TAB C-w
>
> For emacs-lisp
>
> <el TAB C-w
>
> What else would you want?
>
> If you like yasnippets, you could do this:
>
> # -*- mode: snippet; require-final-newline: nil -*-
> # --
>
> #+begin_src python
> `(yank)`
> #+end_src
>
> $0
>
> Or some kind of lisp function like:
> #+BEGIN_SRC emacs-lisp
> (defun paste-python-code ()
>   (interactive)
>   (insert "#+BEGIN_SRC python\n")
>   (yank)
>   (insert "\n#+END_SRC"))
> #+END_SRC
>
> I guess you need one of these for every language type.
> Xebar Saram writes:
>
> > Hi all
> >
> > i was wondering if anyone has every created a function to auto paste what
> > in the sysclip/emas clip into org but as a formatted code block?
> > any clue anyone?
> >
> > best
> >
> > Z
>
> --
> 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
>

[-- Attachment #2: Type: text/html, Size: 1840 bytes --]

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: paste from clip to code block
  2015-04-17 13:56 ` John Kitchin
  2015-04-17 14:36   ` Xebar Saram
@ 2015-04-17 15:08   ` Jorge A. Alfaro-Murillo
  2015-04-17 15:17     ` John Kitchin
  1 sibling, 1 reply; 10+ messages in thread
From: Jorge A. Alfaro-Murillo @ 2015-04-17 15:08 UTC (permalink / raw)
  To: emacs-orgmode

John Kitchin writes:

> I like this kind of keyboard shortcut: 
> 
> For python: <p TAB C-w 
> 
> For emacs-lisp 
> 
> <el TAB C-w 
>

I agree, this is the best method. Although probably you mean C-y 
instead of C-w.

For the record, this requires you to set up 
`org-structure-template-alist' to include python and emacs-lisp. 
For example, I use p and E, for python and emacs-lisp, so in my 
.emacs I have:

#+BEGIN_SRC emacs-lisp
  (eval-after-load "org"
         '(progn
            (add-to-list 'org-structure-template-alist
                         '("E"
                           "#+BEGIN_SRC emacs-lisp\n?\n#+END_SRC"
                           "<src 
                           lang=\\"emacs-lisp\\">\n\n?</src>"))
            (add-to-list 'org-structure-template-alist
                         '("p"
                           "#+BEGIN_SRC python\n?\n#+END_SRC"
                           "<src 
                           lang=\\"python\\">\n\n?</src>"))))
#+END_SRC
 
I even use the method in message-mode, for writing emails with 
code, like I just did now =)

Best,
 
-- 
Jorge.

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: paste from clip to code block
  2015-04-17 15:08   ` Jorge A. Alfaro-Murillo
@ 2015-04-17 15:17     ` John Kitchin
  2015-05-07  7:59       ` Sebastien Vauban
  0 siblings, 1 reply; 10+ messages in thread
From: John Kitchin @ 2015-04-17 15:17 UTC (permalink / raw)
  To: Jorge A. Alfaro-Murillo; +Cc: emacs-orgmode@gnu.org

[-- Attachment #1: Type: text/plain, Size: 2406 bytes --]

you are right, I meant C-y ;)

I have these templates defined in my setup:

;; * Expansions for blocks
;; add <p for python expansion
(add-to-list 'org-structure-template-alist
             '("p" "#+BEGIN_SRC python\n?\n#+END_SRC" "<src
lang=\"python\">\n?\n</src>"))

;; add <por for python expansion with raw output
(add-to-list 'org-structure-template-alist
             '("por" "#+BEGIN_SRC python :results output raw\n?\n#+END_SRC"
"<src lang=\"python\">\n?\n</src>"))

;; add <pv for python expansion with value
(add-to-list 'org-structure-template-alist
             '("pv" "#+BEGIN_SRC python :results value\n?\n#+END_SRC" "<src
lang=\"python\">\n?\n</src>"))

;; add <el for emacs-lisp expansion
(add-to-list 'org-structure-template-alist
             '("el" "#+BEGIN_SRC emacs-lisp\n?\n#+END_SRC" "<src
lang=\"emacs-lisp\">\n?\n</src>"))

;; add <sh for shell
(add-to-list 'org-structure-template-alist
             '("sh" "#+BEGIN_SRC sh\n?\n#+END_SRC" "<src
lang=\"shell\">\n?\n</src>"))

John

-----------------------------------
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


On Fri, Apr 17, 2015 at 11:08 AM, Jorge A. Alfaro-Murillo <
jorge.alfaro-murillo@yale.edu> wrote:

> John Kitchin writes:
>
>  I like this kind of keyboard shortcut:
>> For python: <p TAB C-w
>> For emacs-lisp
>> <el TAB C-w
>>
>
> I agree, this is the best method. Although probably you mean C-y instead
> of C-w.
>
> For the record, this requires you to set up `org-structure-template-alist'
> to include python and emacs-lisp. For example, I use p and E, for python
> and emacs-lisp, so in my .emacs I have:
>
> #+BEGIN_SRC emacs-lisp
>  (eval-after-load "org"
>         '(progn
>            (add-to-list 'org-structure-template-alist
>                         '("E"
>                           "#+BEGIN_SRC emacs-lisp\n?\n#+END_SRC"
>                           "<src
>  lang=\\"emacs-lisp\\">\n\n?</src>"))
>            (add-to-list 'org-structure-template-alist
>                         '("p"
>                           "#+BEGIN_SRC python\n?\n#+END_SRC"
>                           "<src
>  lang=\\"python\\">\n\n?</src>"))))
> #+END_SRC
>
> I even use the method in message-mode, for writing emails with code, like
> I just did now =)
>
> Best,
>
> --
> Jorge.
>
>
>

[-- Attachment #2: Type: text/html, Size: 4139 bytes --]

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: paste from clip to code block
  2015-04-17 15:17     ` John Kitchin
@ 2015-05-07  7:59       ` Sebastien Vauban
  2015-09-05 20:15         ` Grant Rettke
  0 siblings, 1 reply; 10+ messages in thread
From: Sebastien Vauban @ 2015-05-07  7:59 UTC (permalink / raw)
  To: emacs-orgmode-mXXj517/zsQ

John Kitchin wrote:
> I have these templates defined in my setup:
>
> ;; * Expansions for blocks [...]
>
> ;; add <sh for shell
> (add-to-list 'org-structure-template-alist
>              '("sh" "#+BEGIN_SRC sh\n?\n#+END_SRC" "<src
> lang=\"shell\">\n?\n</src>"))

Note that the language should be `shell' in Org from Git (not sure about
MELPA, which I don't use). That'll be so in Org 8.3 as well.

Best regards,
  Seb

-- 
Sebastien Vauban

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: paste from clip to code block
  2015-05-07  7:59       ` Sebastien Vauban
@ 2015-09-05 20:15         ` Grant Rettke
  2015-09-07 14:09           ` John Kitchin
  0 siblings, 1 reply; 10+ messages in thread
From: Grant Rettke @ 2015-09-05 20:15 UTC (permalink / raw)
  To: Sebastien Vauban; +Cc: emacs-orgmode@gnu.org

On Thu, May 7, 2015 at 2:59 AM, Sebastien Vauban
<sva-news@mygooglest.com> wrote:
> John Kitchin wrote:
>> I have these templates defined in my setup:

I used my duplicated Org macros as an excuse to learn YASnippet and
came up with this. It is work in progress, but it works. I got tired
of entering a name so many times along with an output file during
exploratory programming in the .emacs.el:
https://github.com/grettke/help/blob/master/yasnippet/org-mode/sc. It
does require learning YAS at some point, and it is worth it.

# -*- mode: snippet -*-
# key: sc
# name: Source Block
# group: HELP
# contributor: gcr@wisdomandwonder.com
# --
#+NAME: ${1:`(org-id-new)`}
#+BEGIN_SRC ${2:$$(yas-choose-value '("emacs-lisp" "org" "sass" "R"
"ditaa" "dot" "plantuml"))}${2:$(when (-contains? '("ditaa" "dot"
"plantuml") yas-text) (concat " :file \\"./image/" (yas-field-value 1)
".png\\""))} $3
$0
#+END_SRC

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: paste from clip to code block
  2015-09-05 20:15         ` Grant Rettke
@ 2015-09-07 14:09           ` John Kitchin
  2015-09-07 16:39             ` Grant Rettke
  0 siblings, 1 reply; 10+ messages in thread
From: John Kitchin @ 2015-09-07 14:09 UTC (permalink / raw)
  To: Grant Rettke; +Cc: Sebastien Vauban, emacs-orgmode@gnu.org

Neat. Do you have some handy way to store a link to the source block, or
jump to them?

Grant Rettke writes:

> On Thu, May 7, 2015 at 2:59 AM, Sebastien Vauban
> <sva-news@mygooglest.com> wrote:
>> John Kitchin wrote:
>>> I have these templates defined in my setup:
>
> I used my duplicated Org macros as an excuse to learn YASnippet and
> came up with this. It is work in progress, but it works. I got tired
> of entering a name so many times along with an output file during
> exploratory programming in the .emacs.el:
> https://github.com/grettke/help/blob/master/yasnippet/org-mode/sc. It
> does require learning YAS at some point, and it is worth it.
>
> # -*- mode: snippet -*-
> # key: sc
> # name: Source Block
> # group: HELP
> # contributor: gcr@wisdomandwonder.com
> # --
> #+NAME: ${1:`(org-id-new)`}
> #+BEGIN_SRC ${2:$$(yas-choose-value '("emacs-lisp" "org" "sass" "R"
> "ditaa" "dot" "plantuml"))}${2:$(when (-contains? '("ditaa" "dot"
> "plantuml") yas-text) (concat " :file \\"./image/" (yas-field-value 1)
> ".png\\""))} $3
> $0
> #+END_SRC

--
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

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: paste from clip to code block
  2015-09-07 14:09           ` John Kitchin
@ 2015-09-07 16:39             ` Grant Rettke
  2015-09-07 20:18               ` John Kitchin
  0 siblings, 1 reply; 10+ messages in thread
From: Grant Rettke @ 2015-09-07 16:39 UTC (permalink / raw)
  To: John Kitchin; +Cc: Sebastien Vauban, emacs-orgmode@gnu.org

On Mon, Sep 7, 2015 at 9:09 AM, John Kitchin <jkitchin@andrew.cmu.edu> wrote:
> Neat. Do you have some handy way to store a link to the source block, or
> jump to them?

I don't, but please tell us more about what you mean.

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: paste from clip to code block
  2015-09-07 16:39             ` Grant Rettke
@ 2015-09-07 20:18               ` John Kitchin
  0 siblings, 0 replies; 10+ messages in thread
From: John Kitchin @ 2015-09-07 20:18 UTC (permalink / raw)
  To: Grant Rettke; +Cc: Sebastien Vauban, emacs-orgmode@gnu.org

For example with the cursor on a src-block press C-c l to store a link
to that name, and later type C-c C-l to insert a link to that
src-block.

It would look a little like this:
#+BEGIN_SRC emacs-lisp
(defun org-src-block-store-link ()
  (let* ((object (org-element-context)))
    (when (equal (org-element-type object) 'src-block)
      (org-store-link-props
       :type "src-block"
       :link (concat "src-block:" (org-element-property :name object))))))

(add-hook 'org-store-link-functions 'org-src-block-store-link)

(org-add-link-type
 "src-block"
 (lambda (label)
   (org-mark-ring-push)
   (widen)
   (goto-char (point-min))
   (re-search-forward (regexp-quote (format "#+NAME: %s" label)))
   (beginning-of-line)))
#+END_SRC

it only works in the current file though.


Grant Rettke writes:

> On Mon, Sep 7, 2015 at 9:09 AM, John Kitchin <jkitchin@andrew.cmu.edu> wrote:
>> Neat. Do you have some handy way to store a link to the source block, or
>> jump to them?
>
> I don't, but please tell us more about what you mean.

--
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

^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2015-09-07 20:19 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-04-17  7:21 paste from clip to code block Xebar Saram
2015-04-17 13:56 ` John Kitchin
2015-04-17 14:36   ` Xebar Saram
2015-04-17 15:08   ` Jorge A. Alfaro-Murillo
2015-04-17 15:17     ` John Kitchin
2015-05-07  7:59       ` Sebastien Vauban
2015-09-05 20:15         ` Grant Rettke
2015-09-07 14:09           ` John Kitchin
2015-09-07 16:39             ` Grant Rettke
2015-09-07 20:18               ` John Kitchin

Code repositories for project(s) associated with this public inbox

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

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 read-only IMAP folder(s) and NNTP newsgroup(s).