On 02/17/2011 10:44 PM, Rostyslaw Lewyckyj wrote:
I have a reasonably extensive repertory of edit commands from
which, I'd like to pick and chose individual commands and
execute them against my current buffer. I'd like to open the
file to be edited in buffer (a), and the repertory of
commands in buffer (b). And then I'd like to pick commands
from (b),  and execute them on (a).

Depending on how you have the commands defined in buffer (b), if they're literal (control-characters and all, which can do odd things when reloading the doc), you can yank the line into a register and then execute it as a macro. Depending on whether they're normal-mode or ex/command/search-mode arguments (the commands for which you'll want to prefix with the appropriate ":" or "/"), you'll either want to include or exclude the trailing newline:

  0y$
  Y

The first one goes to the beginning of the line and yanks to the end (excluding the <CR>); the second one yanks the entire line (including the <CR>) and executes it. You can then switch back to buffer (a) and execute it with

  @"

If you have several that you plan to use repeatedly, you can yank them into various registers:

  "aY
  <move around in B>
  "bY
  <move around in B>
  "cY

You now have 3 lines yanked into registers "a", "b" and "c" which you can execute any time you want with

  @a
  @b
  @c

I run out of the ability to remember what I've put in each register before I run out of the 26 registers :)

If you want to automate this, you can create some mappings like

  :nnoremap <f4> 0y$<c-w>p@"
  :nnoremap <f5> Y<c-w>p@"
  :vnoremap <f4> y<c-w>p@"

which will give you 3 mappings you can use in window "b", one for normal-mode commands, one for ex/search-mode commands, and one where you visually select the command you want to run (in case it happens that you want to execute a command that spans multiple newlines).

-tim


--
You received this message from the "vim_use" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

Reply via email to