This is about the shortest I can get that shows what happens: Just what the example function does is not material to my question.
<example> ## from the bash prompt mkdir ~/Temp/First cd ~/Temp/First emacs & # start R using M-x R ## within the *R* buffer make a short function bringLibrary <- function(lastR = "3.0.2", latestR = "3.1.0", Rloc = "~/local/"){ ### Purpose:- Bring library from older R version to newer one. ### (Idea is to then update the packages that need to be) ### ---------------------------------------------------------------------- ### Modified from:- ### ---------------------------------------------------------------------- ### Arguments:- lastR: version of R that has the packages desired ### latestR: latest version of R of interest ### Rloc: where R versions are located (probably not the default) ### Make sure there's a trailing "/" ### ---------------------------------------------------------------------- ### Author:- Patrick Connolly, Date:- 29 May 2014, 11:08 ### ---------------------------------------------------------------------- ### Revisions:- 22/08/14 fixed mistaken swap of lastR & latestR ### 15/10/15 location of R installions made adjustable ### 7//2017 Rloc changed back to ~/local now <- system(paste0("ls ", Rloc, "R-", latestR, "/library"), TRUE) was <- system(paste0("ls ", Rloc, "R-", lastR, "/library"), TRUE) need <- was[!is.element(was, now)] ### Check if it's already been done if(length(need) < 1) stop("Nothing in R-", lastR, " that isn't already in R-", latestR, ".\n") for(i in need) # reason for running this function system(paste0("cp -prv ", Rloc, "R-", lastR, "/library/", i, " ", Rloc, "R-", latestR, "/library/")) ### Notify it's finished and give pastable text to update copied packages cat(length(need), " packages copied into R-", latestR, " directory.\nProbably a good idea to start R-", latestR, " and run\n update.packages(checkBuilt = TRUE, ask = FALSE)\n", sep = "") } ## now save and exit then start in another directory: > q() Save workspace image? [y/n/c]: y ## from the bash prompt mkdir ~/Temp/Second cd ~/Temp/Second emacs & # start R using M-x R ## Within the *R* buffer > attach("../First/.RData") > ls(pos = 2) [1] "bringLibrary" "repos" ## Then 'M-x ess-dump-object-into-edit-buffer <ret> bringLibrary <ret>' bringLibrary <- function(lastR = "3.0.2", latestR = "3.1.0", Rloc = "~/local/") { ### Purpose:- Bring library from older R version to newer one. ### (Idea is to then update the packages that need to be) ... ## but in the *R* buffer all code and comment are there. > bringLibrary function(lastR = "3.0.2", latestR = "3.1.0", Rloc = "~/local/") { ### Purpose:- Bring library from older R version to newer one. ### (Idea is to then update the packages that need to be) ### ---------------------------------------------------------------------- ### Modified from:- ### ---------------------------------------------------------------------- ### Arguments:- lastR: version of R that has the packages desired ### latestR: latest version of R of interest ### Rloc: where R versions are located (probably not the default) ### Make sure there's a trailing "/" ### ---------------------------------------------------------------------- ### Author:- Patrick Connolly, Date:- 29 May 2014, 11:08 ### ---------------------------------------------------------------------- ### Revisions:- 22/08/14 fixed mistaken swap of lastR & latestR ### 15/10/15 location of R installions made adjustable ### 7//2017 Rloc cchanged back to ~/local now <- system(paste0("ls ", Rloc, "R-", latestR, "/library"), TRUE) was <- system(paste0("ls ", Rloc, "R-", lastR, "/library"), TRUE) need <- was[!is.element(was, now)] ### Check if it's already been done if(length(need) < 1) stop("Nothing in R-", lastR, " that isn't already in R-", latestR, ".\n") for(i in need) # reason for running this function system(paste0("cp -prv ", Rloc, "R-", lastR, "/library/", i, " ", Rloc, "R-", latestR, "/library/")) ### Notify it's finished and give pastable text to update copied packages cat(length(need), " packages copied into R-", latestR, " directory.\nProbably a good idea to start R-", latestR, " and run\n update.packages(checkBuilt = TRUE, ask = FALSE)\n", sep = "") } <bytecode: 0x709b6b0> </example> ## Initially this example function was made by 'M-x ess-dump-object-into-edit-buffer <ret> bringLibrary <ret>' That produced a blank file into which the skeleton function was dumped using 'C-c f' which I find very handy. In this case it's not very tedious to paste the requisite code into the edit function buffer, but for longer functions (often found in packages) if I want to make a local copy to edit, it is very tedious -- particularly when the comments are all stripped and placed in a list. I've not been able to see the pattern to when that happens that's different from when it doesn't. This part of my .emacs file might be relevant: (custom-set-variables ;; custom-set-variables was added by Custom -- don't edit or cut/paste it! ;; Your init file should contain only one such instance. '(inferior-ess-dump-command "dump(\"%s\",file=\"%s\", control=\"useSource\") ") '(ess-source-directory "./.tmp") '(load-home-init-file t t)) Ideas as to where I should look are welcome. best Patrick On Thu, 12-Apr-2018 at 11:08PM -0400, Ista Zahn wrote: |> Hi Patrick, |> |> I don't use ess-dump-object-into-edit-buffer, so I'm not sure what |> exactly you expect it to do. A specific example would help, i.e., a |> description of exactly what you did, exactly what happened, and how |> what happened differed from you expectation. |> |> For example, if I start R with 'M-x R <ret>' and do 'M-x |> ess-dump-object-into-edit-buffer <ret> getwd <ret>' I see a new buffer |> is created containing |> |> getwd <- |> function () |> .Internal(getwd()) |> |> Is that what you see? If so, how does it differ from what you expect? |> If you see something different, how does your setup differ from mine? |> I'm running Emacs 25.3 and ESS 17.11 [elpa: 20180412.315] |> |> Best, |> Ista |> |> On Thu, Apr 12, 2018 at 7:19 PM, Patrick Connolly |> <p_conno...@slingshot.co.nz> wrote: |> > Thanks Ista. |> > |> > The result is not the same, but it's equally useless. It produces almost |> > the same as typing the name of the function and pressing <Enter>. That is to |> > say, unless the function has been edited in the working directory, it lists |> > all the code without any of the comments almost in the form of a list |> > element labelled "structure" and a second element labelled "source" which |> > contains all the source in the form of a character vector. Quite a lot of |> > text wrangling is required to get that text into the form of an editable |> > function. |> > |> > There is a slight difference from what results from typing the function name |> > and pressing <Enter> in that the word "structure" is not in the latter and |> > the source is an attr. |> > |> > (I say "almost" because neither form is exactly the same as how a list is |> > displayed.) |> > |> > Is that intended behaviour? |> > |> > TIA |> > Patrick |> > |> > On 04/13/2018 01:48 AM, Ista Zahn wrote: |> > |> > On Thu, Apr 12, 2018 at 3:56 AM, Patrick Connolly |> > <p_conno...@slingshot.co.nz> wrote: |> > |> > Thanks for the response, however, if I start Emacs with a '-q' none of |> > my ~/.emacs file is read, so Emacs doesn't know how to start R. More |> > to the point, I'm unable to run R within Emacs any other way. |> > |> > The usual recipe is to start with emacs -q and then evaluate |> > |> > (package-initialize) |> > (require 'ess-site) |> > |> > in the scratch buffer, then check to see if you can reproduce the bug. |> > If you have ESS installed in a way that it is not in your load-path by |> > default you may have to do something along the lines of |> > |> > (add-to-list 'load-path "/path/to/ESS/lisp/") |> > (load "ess-site") |> > |> > Best, |> > Ista |> > |> > |> > |> > I gather there is a way of applying individual lines of the .emacs |> > files but a bear with a small brain doesn't know how to do that (or |> > where to look in the manual how to do it), |> > |> > It would appear, if it doesn't reproduce, that the problem is |> > somewhere in my .emacs file. That's a hodge-podge of various things |> > I've picked up over the decades so it wouldn't be surprising to find |> > some incompatibilities. |> > |> > Ideas appreciated. |> > |> > |> > On Wed, 11-Apr-2018 at 07:44AM -0400, Ista Zahn wrote: |> > |> > |> I can't reproduce it with the latest ESS from melpa. Can you give |> > |> reproduction steps starting with |> > |> |> > |> emacs -q |> > |> |> > |> ? |> > |> |> > |> --Ista |> > |> |> > |> On Wed, Apr 11, 2018 at 4:58 AM, Patrick Connolly |> > |> <p_conno...@slingshot.co.nz> wrote: |> > |> > For a long time I used to be able to use |> > |> > |> > |> > ess-dump-object-into-edit-buffer |> > |> > |> > |> > to create a buffer that could be used to edit the designated function |> > |> > from anywhere on the search path to make a local version. |> > |> > |> > |> > Starting at about ess-15.x, only the first 5 or so lines of code is |> > |> > made available which I took to be a bug that would be fixed. However, |> > |> > I was mistaken. I installed ess-17.11 and it's still the same. Being |> > |> > a bear with only a small brain, I can't imagine what use that would be |> > |> > if it's what is intended. |> > |> > |> > |> > Could it be that there is an additional setting that allows all of the |> > |> > function (including comments) to be dumped into that buffer? Perhaps, |> > |> > more difficult to track down, I have something else in my ~/.emacs |> > |> > file that is incompatible. |> > |> > |> > |> > TIA for suggestions. |> > |> > |> > |> > -- |> > |> > |> > ~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~. |> > |> > ___ Patrick Connolly |> > |> > {~._.~} Great minds discuss ideas |> > |> > _( Y )_ Average minds discuss events |> > |> > (:_~*~_:) Small minds discuss people |> > |> > (_)-(_) ..... Eleanor Roosevelt |> > |> > |> > |> > |> > ~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~. |> > |> > |> > |> > ______________________________________________ |> > |> > ESS-help@r-project.org mailing list |> > |> > https://stat.ethz.ch/mailman/listinfo/ess-help |> > |> > -- |> > ~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~. |> > ___ Patrick Connolly |> > {~._.~} Great minds discuss ideas |> > _( Y )_ Average minds discuss events |> > (:_~*~_:) Small minds discuss people |> > (_)-(_) ..... Eleanor Roosevelt |> > |> > ~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~. |> > |> > -- ~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~. ___ Patrick Connolly {~._.~} Great minds discuss ideas _( Y )_ Average minds discuss events (:_~*~_:) Small minds discuss people (_)-(_) ..... Eleanor Roosevelt ~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~. ______________________________________________ ESS-help@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/ess-help