Questions tagged [substitute]
Any operation involving regular expression based substitution of text, such as the ex-mode `:s` command. Not to be confused with the [replace] tag.
268
questions
1
vote
2answers
21 views
search last substitution
After doing
:%s/foo/bar/g
I can type
:<C-r>/
to place foo into the command line.
How can I place bar into the command line?
I ultimately want to do a series of:
:%s/foo/bar/g
:%s/bar/baz/g
:%s/...
0
votes
1answer
37 views
Substitution replaces only current line?
I have a block of of text which contains variables whose name I want to change, but not all. I want to be able to choose which variables get replaced by the substitution and which do not. I tried ...
1
vote
1answer
53 views
Is there any way to position the cursor in a :substitute replace pattern?
I have the following line:
return err
And would like to replace that to:
return fmt.Errorf(": %w", \1)
Which is done easily with something like:
:s/return \v(\k+)/return fmt.Errorf(": %w", \1)/
...
4
votes
3answers
231 views
Recover whole search pattern for substitute command
Sometimes I type a long substitute command
/%s/foo/bar.../
and while I am typing it or only after hiting enter
I notice that I have mistakenly
used a the search key (/) instead of the ex-command key (...
15
votes
2answers
2k views
Vim global substitution doesn't substitute all matches in a line
Sometimes my global substitutions don't substitute all matches in a line. It is confirmed by the fact that I can see it when I do substitutions with confirmation, a match is found in a line with ...
0
votes
2answers
83 views
Change date format from MM-DD-YYYY to YY-MM-DD using a regular expression?
A file contains
03-01-2020 04-01-2021
03-02-2020 04-02-2021
03-03-2020 04-03-2021
03-04-2020 04-04-2021
03-05-2020 04-05-2021
03-06-2020 04-06-2021
03-07-2020 04-07-2021
03-08-2020 04-08-2021
03-09-...
3
votes
2answers
2k views
vim comment out every line of text containing a pattern using the 'global' command
In my file containing LaTeX source code, I wish to comment out all the lines matching a pattern (specifically, the pattern that I am interested in is \draw, including the \ character).
I have magic ...
1
vote
1answer
26 views
in-place replacement of code in HTML documents with TOhtml?
I'm working on some old HTML documentation, where are multiple code snippets (several lines long). I need to replace this old HTML-ized code with new one using modern styling.
What I have now:
... ...
...
0
votes
1answer
19 views
How to replace [ with ( in vim
I have this markdown line,
![Home][screenshots/home.png]
I want to replace it with,

So, I tried this,
:%s/[s/(s/g
Vim(version 81) says pattern not found.
-1
votes
1answer
48 views
Regex for any character that is not alphanumeric, whitespace, or a doublequote
I expect this to select all non-alphanumeric characters:
[^\w]
Instead it selects all non-w's.
This is the regex I would use in JavaScript, Python etc.:
[^\w\s"]
How can I write this so that it'...
1
vote
1answer
29 views
substitution of increasing numbers per row
Each row is:
Or(a=a[0], b=b[0], out=out[0]);
Or(a=a[0], b=b[0], out=out[0]);
Or(a=a[0], b=b[0], out=out[0]);
and I need:
Or(a=a[0], b=b[0], out=out[0]);
Or(a=a[1], b=b[1], out=out[1]);
Or(a=a[2], b=b[...
67
votes
11answers
16k views
How to find and replace in Vim without having to type the original word?
I'd like to optimize my "find and replace" workflow in Vim. It's something I do often, as I'm sure most of you do too. Usually something along the lines of -- copy a block and change the name of a ...
2
votes
1answer
21 views
Substitute: previous match with confirm
If I do a replace like this:
:%s/May/June/gc
afterward I keep hitting y or n as needed. But sometimes it hit n on
accident and need to go back. I read that you can use N for this purpose, but
it ...
0
votes
2answers
80 views
How do you :tag: every word of a line using substitution?
How do you substitute every word of a line, so that it becomes a useful vimwiki tag?
Provided the following line:
Word Compund_Word
I want:
:Word: :Compund_Word:
I guess it involves some use of ...
3
votes
1answer
189 views
Unexpected substitution behavior
I need to put a comma between any two digits in a string of digits. For example, I want this
12345678910
to become this
1,2,3,4,5,6,7,8,9,1,0
The approach I took was the following
s/\([0-9]\)\([0-9]\...
1
vote
2answers
58 views
Vim equivalent to Perl regex for making a substitution in a substitution?
I have this perl regex:
s/(^(#+)\s.*?\g2)/$1 =~ s|\n| |rg/gmse
It strips out all new lines between ##+ characters and replaces them with a space. It'll take a string like:
before text
more text
### ...
0
votes
0answers
31 views
Why \r means newline when replacing? [duplicate]
In vim's manual:
When replacing: \r is newline, \n is a null byte (0x00).
The \n's value is 0x0a in hex format,it is no relation with 0x00 ,what is the logic to define When replacing: \r is newline,...
3
votes
1answer
201 views
Date change question: Find and replace with wildcards?
I have a file with a bunch of dates of the form a/b/c, where a,b, and c are numbers of varying character length. However, I'd like to change every instance to read c/a/b.
I'm wondering if there is a ...
4
votes
1answer
110 views
Replace all quotes with escaped quotes and vice versa
I am trying to replace all quotes (") with escaped quotes (\") and simultaneously all escaped quotes with normal quotes.
I found the following solution to a similar problem here for swapping 'foo' to ...
0
votes
1answer
34 views
inserting a line number into substitution text
I have a long script file that I need to run in an application. I generally create these by running a query against the application and then creating the script I need using VIM. Sometimes these can ...
5
votes
1answer
386 views
What's the meaning of the two question marks in substitution operation?
I'm learning how substitution works in Vim. And I find this example really weird to understand: :?a?,/b/s/bad/good. I know what this command will do in general. But why use two question marks to wrap ...
4
votes
1answer
59 views
Count lines matching a pattern
I'm trying to obtain the number of lines matching a pattern, from a function. I would like the cursor not to be moved at all during the process.
In this case, non-empty and non-comment lines.
Here's ...
0
votes
1answer
193 views
Replace nbsp with none string in utf-8 encoding in vim
The nbsp(non breaking space)'s binary format in utf-8 encoding is c2a0.
Create a sample.txt this way :input it is a test then ctrl+v+u a0,then you get the sample test file.
xxd sample.txt
00000000: ...
0
votes
1answer
38 views
What does :s (by itself) do?
What does :s by itself do? I was thinking that it would be equivalent to:
:s//
Does it use the equivalent of <C-r>/ or something, or where is it grabbing the pattern from?
1
vote
1answer
8 views
Odd behavior when trying to perform a substitution on the clipboard register
I have a map that creates a markdown hyperlink for the current url open in the browser:
inoremap <Leader>gg [<esc>:silent !~/bin/copy_safari_title.osa <cr>"+pa](<esc>:...
3
votes
2answers
49 views
Is it possible to make a substitution command that preserves the case of the matched pattern?
Consider the following constant definition:
define("_TBL_USERS","users");
Now, I want to transform it into:
define("_TBL_USER_ITEMS","user_items");
I tried ...
1
vote
1answer
30 views
Can we make substitutions based on rules from a file?
I've been using the command mode for making replacements in a file. Something like :%s/foo/bar/g and to make a series of replacements:
:%s/i/1/g | :%s/j/2/g | :%s/k/3/g | :%s/l/4/g | ...
This line ...
35
votes
4answers
10k views
How to replace only within visual selection?
How does one get vim to replace a character within the visual selection only and not elsewhere on the line? Example:
Line: int arr[] = { 00 01 02 03 04 05 05 /* ... lots more like this*/};
Visual ...
2
votes
1answer
428 views
How can I make two substitution command in one line
Giving these 2 substitution commands in vim:
%s/}$/\r}\r/g
%s/^\s*([a-zA-Z\#\.\:\s\(\)-\[\]'=]*)\s*\{/$1 \{/g
I have 2 questions:
How can I join 2 substitution commands in a one line command ?
Is ...
1
vote
1answer
27 views
How to insert text using substitute and regex?
Honestly I can't read regex for now.
I have quick-fix list and I have a hunch that this can be done with regex but I don't know how.
I want this:
@ViewChild(MatTable)
@ViewChild('text 1')
@...
1
vote
1answer
27 views
Continuous number substitution
Suppose you have a textfile:
Time step #1 (t = 0 a.u. = 0 fs)
unneccessary text unneccessary text unneccessary text
...
Time step #2 (t = 10 a.u. = 0.24189 fs)
...
Time step #3 (t = 20 a.u. = 0.48378 ...
1
vote
2answers
97 views
How can I search/replace and retain a part that varies between the results?
What I'm trying to do is reformat some ugly JSON, replacing a pile of lines that are formatted:
[whitespace][number],\n
for example:
5,
I have thousands of those lines, but don't know ...
0
votes
1answer
33 views
Includeexpr + substitute not behaving as I would expect
I am using includeexpr and substitute() in a ftplugin to remove a portion of an include string for gf functionality (in twig template files, for the curious), but I get an error instead.
Twig ...
2
votes
1answer
129 views
Create a mapping in .vimrc that accepts an argument
I want to create a mapping in my .vimrc file that takes an argument.
I'm constantly defining latex commands which require arguments inside of curly brackets and writing them instead inside regular ...
1
vote
1answer
42 views
Substitution within substitution? Replace with the result of a substitution operation on matched group
I would like to turn a list like this
these are
custom regex expressions 4
syntax? syntax
weird one 3
there are many many many many words in this line 3
into this
these are
custom {4}regex {4}...
0
votes
0answers
34 views
Replace with another word on the screen
Sometimes I find it convenient to
Search for text I want to replace /original
Start writing a substitution to replace that :s/
Use C-r C-w to put the current word hovered into the command line :s/...
7
votes
2answers
3k views
How to repeat last action with movement?
Assume the content:
foo fnord bar;" >> /tmp/foo/derp
gnarf foo fnord bar;" >> /tmp/foo/derp
I want to jump to the " and delete to end of line and repeat that over the rest of lines.
Yet ...
0
votes
1answer
12 views
substitute with modified matched with :s
I want to change :
int i = libfnc1();
float j = libfnc2();
libfnc3();
to
int i = lib::libfnc1();
float j = lib::libfnc2();
lib::libfnc3();
using :s
I want to do somthing like :s/libfnc[0-9]/lib::*...
1
vote
1answer
47 views
using \r in {sub} of substitute() function call
I want to write a zsh vi-mode helper to wrangle complex commands but ran into a snag using \r in a substitute() function invocation. It results in \r replaced with control characters ^M in output. ...
2
votes
2answers
39 views
How to replay ex commands in order?
I often have a situation where I will direct some output to a file then open it in vim and use ex commands (substitution, keep lines, delete lines, etc) to massage the output to a form I want. However ...
19
votes
5answers
8k views
Can I do an interactive :substitute (search & replace)?
Sometimes I use :s with a complicated regexp which may or may not be correct, or I'm not sure if I want to replace all matches.
Is there any way I can tell Vim to confirm every match it finds before ...
15
votes
5answers
12k views
How to replace each match with incrementing counter?
I want to search and replace each occurrence of a certain pattern with a decimal number which begins at 1 and increments by one for each match.
I can find similarly worded questions that turn out not ...
7
votes
4answers
4k views
Replace with hex character
Given this file:
printf 'hello\x19world\n' > hello.txt
I can replace a hex character:
$ ex -sc '%s/\%x19/ /|x' hello.txt
$ od -c hello.txt
0000000 h e l l o w o r l d \n
...
1
vote
1answer
73 views
How do I add a thousand seperator to a number?
Is it possible to add a thousands separator to a number or a selection of numbers?
Before
42
4815162342
After
42
4.815.162.342
I have to perform this operation quite often, which is why I would ...
0
votes
1answer
20 views
How can I read a file and do template substitution?
Question
How can I read a file into the current buffer and do some template substitution on it automatically?
Background
I'm working on a simple bash-driven logging / journaling capability. (on ...
1
vote
2answers
565 views
Search query to match multiple instances on a line, only between certain delimiters?
I do a lot of programming in Ruby, and a common edit suggested by Rubocop (a linter) is to reformat an array of symbols
[:foo, :bar, :baz]
as a percent string:
%i[foo bar baz]
I'm looking for a ...
13
votes
11answers
9k views
Substitute second occurence on line
I have a list of files:
./a.temp.txt ./a.temp.txt
./a/b.temp.txt ./a/b.temp.txt
./a/b/c.temp.txt ./a/b/c.temp.txt
And I want to remove the temp. on each line, but only the second occurence, ...
0
votes
1answer
54 views
substitute lines in a function
In this function I would like to substitute everything within (" and ") with emptiness
function! ListJoinFolds() abort
0
let bufnr = bufnr('%')
let items = []
while 1
let ...
3
votes
1answer
483 views
Replace multiple spaces with one
I want to replace all adjacent spaces with one space but the replacement should only take place if they aren't at the line begin.
For example (I use brackets to demarcate line begin and end):
[Hello,...
2
votes
1answer
31 views
Vim decremental replace not working
I want to replace the lines :
https://www.dailymotion.com/video/whatever_1 # The Serie - S2 E4 - Grin and Bear It
https://www.dailymotion.com/video/whatever_2 # The Serie - S2 E3 - Betty's Wait ...