Find Replace
Fork from https://github.com/earshinov/vscode-filter-lines
This extension allows you
- To filter text of the current document by a regular expression and output matched or matched group(s).
- To replace text of the current document by a list of find and replace and output replaced text.
// Example text
1a!
2b!
3c!
4d!
// Output of Replace List: 1:11,2:22
11a!
22b!
3c!
4d!
// Output of Include Matched: \d(\w)
1a
2b
3c
4d
// Output of Include Matched Group: \d(\w)
a
b
c
d
Available commands
All of the following commands are available via Ctrl-Shift-P.
Command |
Default keybinding |
Find Replace: Replace List |
Ctrl-K Ctrl-R * |
Find Replace: Include Matched |
Ctrl-K Ctrl-M * |
Find Replace: Include Matched Group |
Ctrl-K Ctrl-G * |
* Use cmd instead of ctrl on Mac
"Regex" commands accept any regular expression valid in JavaScript.
Use s
(DOTALL) flag if you want to match multiple lines.
See MDN for syntax reference, but
keep in mind that you need to prefix flag between (?
and )
like (?gs)
and inner part of the regex without the enclosing slashes (/.../
) like (?gs)\d+
.
Flags
You can prefix flags between (?
and )
like (?gis)
. If not prefixed default gs
flags will be used.
Following is RegExp flags
g
(global): Don't return after first match
m
(multi line): ^ and $ match start/end of line
i
(insensitive): Case insensitive match
y
(sticky): Anchor to start of pattern, or at the end of the most recent match
u
(unicode): Match with full unicode
s
(single line): Dot matches newline
d
(indices): The regex engine returns match indices
Following is extension specific flags
p
(path): Read find and replace value from file path. Use +
to specify multiple path like common.txt+order.txt
c
(change): Change key and value. For example, a:1
means replace 1
with a
, but means replace a
with 1
when c
flag used.
w
(word): Find word only by enclosing find value with defaultBoundary
of setting to prevent replace again case. Target will change to value when c
flag used.
Available settings
Setting |
Description |
Default value |
preserveSearch |
Tells the extension to preserve the search string. |
true |
defaultFlags |
Tells the extension to preserve the default flags. |
gm |
defaultBoundary |
Tells the extension to preserve the default word boundary flags. |
gm |
If you are using Settings UI, you will find these settings under "Find Replace" section.
Under the hood: Available commands ids
You can use these command ids to make your own keybindings.
# findReplace.replaceList
Implements the "Find Replace: Replace List" command with output of replaced.
Input value is combined with comma(,) and colon(:) when read from user input, but line delimeter when read from file.
For example 1:11,2:22
must be replaced to 1:11\n2:22
or 1:11\r\n2:22
when you enter file path in input box.
To escape ,
or :
- Use doubled value like
,,
or ::
- Use
,
or :
File path rule
- Can use relative path (ex:
data/a.txt
to get a.txt
in data
folder inside current workspace folder)
- Can be combined with
+
(ex: data/a.txt+data/b.txt
to get a.txt
and b.txt
in data
folder)
# findReplace.includeMatched
Implements the "Find Replace: Include Line" command with output of only matched.
# findReplace.includeMatchedGroup
Implements the "Find Replace: Include Line" command with output of only matched group(s).
You can find this extension in the Visual Studio Marketplace.