ArgsAndMore : Apply commands to multiple buffers and manage the argument list.
| script karma |
Rating 1/1,
Downloaded by 110
|
Comments, bugs, improvements
|
Vim wiki
|
| created by |
| Ingo Karkat |
| |
| script type |
| utility |
| |
| description |
DESCRIPTION
This plugin supports you with batch processing many files by extending the
built-in :windo, :argdo, etc. commands. You can filter the argument list,
add files _not_ matching a pattern, convert between arguments and quickfix
list, and apply arbitrary Ex commands (also partially) via :Argdo, then
analyze any errors and retry on an argument list where the successfully
processed arguments have been removed.
RELATED WORKS
- The :ArgsNegated command was inspired by the following Stack Overflow
question:
http://stackoverflow.com/questions/11547662/how-can-i-negate-a-glob-in-vim
USAGE
:Bufdo {cmd} Execute {cmd} in each buffer in the buffer list, then
return back to the original one.
:Windo {cmd} Execute {cmd} in each window, then return back to the
original one.
:Winbufdo {cmd} Execute {cmd} in each different buffer shown in one of
the windows in the current tab page (once per buffer),
then return back to the original one.
:Tabdo {cmd} Execute {cmd} once in each tab page, then return back
to the original one.
:Tabwindo {cmd} Execute {cmd} in each open window on each tab page,
then return back to the original one.
:Argdo {cmd} Execute {cmd} for each file in the argument list, then
return back to the original file and argument.
:[range]Argdo {cmd} Execute {cmd} for the [range] of indices from the
argument list, then return back to the original file
and argument.
For example, to execute {cmd} on the remaining
arguments, use :.,$Argdo {cmd}
In contrast to :argdo, this also avoids the
hit-enter prompt (all files will be processed
without further interaction from you), and an error
summary will be printed.
To work on the errors / arguments with errors, you can
use :ArgdoErrors and :ArgdoDeleteSuccessful.
:ArgdoErrors List all error messages that occurred during the last
:Argdo command, and for each unique error, print the
argument number and filespec.
:ArgdoDeleteSuccessful Delete those arguments from the argument list that
didn't cause any error messages during the last
:Argdo command.
:ArgsFilter {expr} Apply the filter() of {expr} to the argument list,
and keep only those where {expr} yields true. This
allows you to :argdelete multiple arguments at once
and to delete without specifying the full filename.
:ArgsNegated[!] {arglist}
Define all files except {arglist} as the new argument
list and edit the first one.
:ArgsList[!] List each argument number and filespec in a neat list
(not just one after the other as :args). With [!],
expand all arguments to absolute filespecs.
:ArgsList[!] {glob} List each argument number and filespec that matches
(with [!]: does not match) {glob} in a neat list.
Matching and printing is done to the full filespec.
:ArgsToQuickfix Show all arguments as a quickfix list.
:CListToArgs Convert the files in the quickfix list to arguments.
:[count]CListToArgsAdd
:LListToArgs Convert the files in the window's location list to
:[count]LListToArgsAdd arguments. |
| |
| install details |
INSTALLATION
This script is packaged as a vimball. If you have the "gunzip" decompressor
in your PATH, simply edit the *.vmb.gz package in Vim; otherwise, decompress
the archive first, e.g. using WinZip. Inside Vim, install by sourcing the
vimball or via the :UseVimball command.
vim ArgsAndMore*.vmb.gz
:so %
To uninstall, use the :RmVimball command.
DEPENDENCIES
- Requires Vim 7.0 or higher.
CONFIGURATION
After each {cmd}, an extra Ex command (sequence) can be executed. By default,
a delay of 100 ms is introduced here. This allows you to abort an interactive
:s///c substitution by pressing CTRL-C twice within the delay. (Without the
delay, it may or may not abort.) To also persist any changes to the buffer,
you could use:
let g:ArgsAndMore_AfterCommand = 'update | sleep 100ms' |
| |
script versions (upload new version)
Click on the package to download.
| ArgsAndMore-1.11.vmb.gz |
1.11 |
2013-01-21 |
7.0 |
Ingo Karkat |
FIX: Factor out s:sort() and also use numerical sort in the one missed case. |
| ArgsAndMore-1.10.vmb.gz |
1.10 |
2012-09-10 |
7.0 |
Ingo Karkat |
- Add g:ArgsAndMore_AfterCommand hook before buffer switching and use this by default to add a small delay, which allows for aborting an interactive s///c substitution by pressing CTRL-C twice within the delay.
- Add :Bufdo command for completeness, to get the new hook, and the enhanced error reporting of :Argdo. |
| ArgsAndMore-1.01.vmb.gz |
1.01 |
2012-08-28 |
7.0 |
Ingo Karkat |
- Do not use <f-args> because of its unescaping behavior.
- FIX: "E480: No match" on :ArgsNegated with ../other/path relative argument; need to issue a dummy :chdir to convert relative args before doing the :argdelete. |
| ArgsAndMore.vba.gz |
1.00 |
2012-07-30 |
7.0 |
Ingo Karkat |
Initial upload |
ip used for rating: 54.235.20.17
|