[ESS] In Stata mode, where do graphs display?
Paul Johnson
p@u|john32 @end|ng |rom gm@||@com
Mon Feb 29 18:26:57 CET 2016
Thanks sincerely for the help. I feared the graph thing would turn out
that way. Am I just imagining a time 5 years ago where I could launch
an inferior xstata and I could use the stata graphics in the ordinary
way?
I'm testing you do code.
I understood what Stata's doing about the do file. I see you have
implemented same. I'm sure there is some reason they do it that way,
but it seems, well, indirect and wrong. A program writing notes to
itself on hard disk. Who would have thunk :)
pj
On Wed, Feb 24, 2016 at 12:23 PM, Brendan Halpin <brendan.halpin using ul.ie> wrote:
> First question:
>
> Console Stata doesn't show graphs. What I do is export it to EPS and
> view that:
>
> . graph export /tmp/x.eps, replace
> . !evince /tmp/x.eps &
>
> This is for Linux, the detail will differ according to OS.
>
> Second question: re line ends:
>
> What Stata does itself with its "do-file" editor is to write the region
> to a temporary file, issue a command within Stata to "do" the temporary
> file, and then delete it. I emulate this with a function with which I
> replace the usual eval-region command. This is largely based on
> ess-eval-region. See below.
>
> Regards,
>
> Brendan
>
>
> ;; Stata equivalent of ess-eval-region
>
> (defun delimit-do (start end toggle &optional clear message)
> "Send the current region to the inferior ESS process, Stata do-editor style.
> Creates a temporary file, \"do\"-es it, deletes it.
> With prefix argument toggle the meaning of `ess-eval-visibly-p';
> this does not apply when using the S-plus GUI, see `ess-eval-region-ddeclient'."
> (interactive "r\nP")
> (ess-force-buffer-current "Process to use: ")
> (message "Starting evaluation...")
> (setq message (or message "Eval region"))
>
> (save-excursion
> ;; don't send new lines (avoid screwing the debugger)
> (goto-char start)
> (skip-chars-forward "\n\t ")
> (setq start (point))
>
> (unless mark-active
> (ess-blink-region start end))
>
> ;; don't send new lines at the end (avoid screwing the debugger)
> (goto-char end)
> (skip-chars-backward "\n\t ")
> (setq end (point)))
>
> (let* (delimit
> (commands (buffer-substring-no-properties start end))
> (delimit-do-file (make-temp-file "delimit-do" nil ".do"))
> (proc (get-process ess-local-process-name))
> (visibly (if toggle (not ess-eval-visibly-p) ess-eval-visibly-p))
> (dev-p (process-get proc 'developer))
> (tb-p (process-get proc 'tracebug)))
> ;; Go to the start of the section and look back for #delimit
> ;; if found set delimit unless the delimiter is not ";"
> (save-excursion
> (goto-char start)
> (setq delimit (re-search-backward "^#delimit +\\(.+\\)$" nil t))
> (if delimit
> (if (not (string-match ";" (match-string 1))) (setq delimit nil))))
>
> (with-temp-buffer
> (if clear (insert "clear\n"))
> (if delimit (insert "#delimit ;\n"
> commands
> "\n#delimit cr\n")
> (insert commands "\n"))
> (write-file delimit-do-file nil)
> (kill-buffer (current-buffer)))
>
> (process-send-string
> (get-ess-process ess-current-process-name)
> (format "do %s\nrm %s\n" delimit-do-file delimit-do-file))
> )
> (if (and (fboundp 'deactivate-mark) ess-eval-deactivate-mark)
> (deactivate-mark))
> ;; return value
> (list start end))
>
>
> --
> Brendan Halpin, Head, Department of Sociology, University of Limerick, Ireland
> Tel: w +353-61-213147 f +353-61-202569 Room F1-002 x 3147
> mailto:brendan.halpin using ul.ie ULSociology on Facebook: http://on.fb.me/fjIK9t
> http://teaching.sociology.ul.ie/bhalpin/wordpress twitter:@ULSociology
--
Paul E. Johnson
Professor, Political Science Director
1541 Lilac Lane, Room 504 Center for Research Methods
University of Kansas University of Kansas
http://pj.freefaculty.org http://crmda.ku.edu
More information about the ESS-help
mailing list