This is straightforward when you just think of buffers as being source files in your IDE, but it's not limited to that - you can also complete from a dired buffer, or your compiler output buffer, or your REPL. So you can get a filename to expand, even though no source code file actually contains that filename. If instead of dired and compile-mode you were using a separate file manager, and a separate terminal window to compile, you'd have text in three separate programs and no expectation that the text editor in your IDE would be able to see the other two.
So sometimes I'll prepare one buffer with a list of lines that are basically meant to provide input to a macro for editing another buffer and have the macro constantly jump back and forth between them. (E.g., move to a spot in the "edit" buffer, jump over to the "input" buffer, kill the next line, jump back to the "edit", yank that line, etc.)
C-x r k
Switch to the scratch buffer (think there's a missing RET at the end) C-x b *scr C-I
"Yank" the "rectangle" saved in the first command C-x r y
Moves to the start of the buffer and sets a "mark" M-<
Literals that are entered at the start of the buffer (+
Move to the end of the buffer M->
Another literal )
Executes the buffer (or at least the LISP expression at the cursor). Note the scratch buffer allows you to type arbitrary LISP stuff and execute it with C-j. C-j
So, suppose the initial buffer contained 1
1
2
3
Then the scratch buffer would get turned into (+1
1
2
3 )
And when executed this would add the list of numbers and look like this: (+
1
1
2
3)
7In vanilla emacs you need a RET, but I bet that like many people, OP's using a mechanism that will just select the matching item if there's a unique match, rather than the built-in buffer selection mechanism.
I use ido (with flx-ido for fuzzy completions), and it works for me as stated: C-i in the minibuffer runs `ido-complete`, which selects the unique completion if there's only one. (By default, that is, this is emacs and so of course there's a variable `ido-confirm-unique-completion` that you can set to customize this behavior.)
M-x calc-grab-rectangle RET V R +