Thanks for the suggestion. Sounds promising, but on the other hand screen is on all unix distributions I know of, but dtach is harder to find.
If you're using gnu screen primarily for it's detach capability then you
may want to consider 'dtach', which is pretty much just the feature of
screen. Consequently it has less keybindings etc, and is more
compatible with various programs. I've not really used it with emacs,
but you might consider it unless you use screens other features.
R.
Andrew Hyatt wrote:
> Hi everyone,
> I use org-mode religiously these days. I blogged about my use here (
> http://technical-dresese.blogspot.com/2007/08/org-mode.html) (please excuse
> the fact that when I wrote this I didn't know about the existing org-mode
> functionality to jump to the current clock).
>
> I generally have a problem of integrating the work I do in the shell with
> the tasks in org-mode. Plus, I often need access to the shells at home I
> started from work. I thought I'd combine these problems into a little
> org-mode extension that ties screen and org-mode together, via ansi-term.
>
> For these to work, you have to load ansi-term, which my hack is based on.
>
> If there's enough interest, I'll make a real .el file out of this.
>
> The general idea is that you start a task in which all the work will take
> place in a shell. This usually is not a leaf-task for me, but usually the
> parent of a leaf task. From a task in your org-file, M-x ash-org-screen
> will prompt for the name of a session. Give it a name, and it will insert a
> link. Open the link at any time to go the screen session containing your
> work!
>
> It works pretty well for me. The only problem is that I often run emacs in
> a screen session itself, and I can never get scrolling to work right in
> screen-in-screen.
>
> (defun ash-org-screen-buffer-name (name)
>
> "Returns the buffer name corresponding to the screen name given."
>
> (concat "*screen " name "*"))
>
>
>
> (defun ash-org-screen-helper (name arg)
>
> ;; Pick the name of the new buffer.
>
> (let ((term-ansi-buffer-name (generate-new-buffer-name
> (ash-org-screen-buffer-name name))))
> (setq term-ansi-buffer-name
>
> (term-ansi-make-term term-ansi-buffer-name "/usr/bin/screen" nil
>
> arg name))
>
>
>
> (set-buffer term-ansi-buffer-name)
>
> (term-mode)
>
> (term-char-mode)
>
>
>
> (term-set-escape-char ?\C-x)
>
> term-ansi-buffer-name))
>
>
>
> (defun ash-org-screen (name)
>
> "Start a screen session with name"
>
> (interactive "MScreen name: ")
>
>
>
> (save-excursion
>
> (ash-org-screen-helper name "-S"))
>
> (insert-string (concat "[[screen:" name "]]")))
>
> And don't forget to add ("screen" . "elisp:(ash-org-goto-screen \"%s\")") to
> org-link-abbrev-alist._______________________________________________
Emacs-orgmode mailing list
Remember: use `Reply All' to send replies to the list.
Emacs-orgmode@gnu.org
http://lists.gnu.org/mailman/listinfo/emacs-orgmode