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.
340
questions
0
votes
1
answer
52
views
Add newline after every paragraph in log file in vi editor
I want to add new line after every paragraph in vi editor. How do I do it?
The new line is located by the date and time in this format
2023-11-26 14:14:14
1
vote
1
answer
29
views
Search and replace text in visual range but not entire line [duplicate]
I want to search and replace within a visual range just as was answered in this SO post, which uses :'<,'>.
But I don't want this to take place on an entire line, only within the selected subset ...
3
votes
2
answers
70
views
How to remove trailing whitespace and carriage return characters?
My goal is to get rid of "bad" CRs and trailing spaces at once, so I am executing the following command:
:%s/^M\|\s\+$//g
The problem is that if at the end of the line there is a ^M and ...
1
vote
1
answer
29
views
How do I use parameters within a custom command?
I want to define a global search and replace with confirmation command, something like:
command Gfr :s/<parameter1>/<parameter2>/gc
So I can type:
:Gfr foo bar
and Vim will find all ...
1
vote
4
answers
79
views
How to encapsulate a visual selection with preprocessor logic?
I have to preprocessor-comment out a lot of C-code.
E.g. I want this:
if (abcd == true)
do_smt();
To become this:
#if 0
if (abcd == true)
do_smt();
#endif
This is tedious work, so I was hoping ...
1
vote
1
answer
41
views
Is there a way to substitute a text that has regex formatted number ranges and replace with all combinations?
Let's say I have a file that looks like:
host[1-2]lx
host[1-4]win
what I want is an easy way to get
host1lx
host2lx
host1win
host2win
host3win
host4win
Is there a neat way to automate that process?
...
1
vote
1
answer
70
views
How can I replace duplicate line prefixes with blanks?
Is it possible to transform:
John Apple Red 3
John Apple Green 5
John Radish White 2
John Radish Red 7
Tom Apple Red 3
Tom Apple Green 5
Tom Radish White 2
Tom Radish Red 7
to:
John Apple Red 3
...
0
votes
1
answer
40
views
Command to separate nested brackets over multiple lines
I am looking for a language-agnostic way to convert something like this:
this(is, a, line(of, things))
to this:
this(
is,
a,
line(
of,
things
)
)
I can handle the non-...
0
votes
1
answer
19
views
What is the syntax to use character classes inside Vim regex bracket expression?
I did the following tests:
code
output
notes
:echo substitute("s s", '\v[^s]', "<&>", "g")
s< >s
space replaced. All fine
:echo substitute("s s&...
6
votes
3
answers
3k
views
How do I add text before and after the visual selection?
Suppose I’ve selected some text in visual mode. How do I insert a certain piece of text at the beginning of the selection and a different piece of text at the end?
(I’m only concerned with “normal” ...
1
vote
2
answers
206
views
Substitution command in neovim remaps not working
I simply want to map < leader> pu to erase all occurrences of the carriage return character (represented as ^M) in a file.
I can execute the command:
:%s/\r//g
and it works.
Any attempts to use ...
1
vote
1
answer
103
views
How to evaluate Lua in substitution field instead of vim script?
As simple example, take this:
:'<,'>s/\vs([A|B])\.size\(\)/\={"A":"a","B":"b"}[submatch(1)]/g
This substitution will replace sA.size() with a and sB.size(...
1
vote
1
answer
49
views
How to evaluate vim script in the substitution field and put text with it?
I have to replace a lot of variables s1.size() with wa, and replace s2.size() with wb accordingly. I have made next substitution request:
:'<,'>s/\vs([1|2])\.size\(\)/w\={"1":"a&...
0
votes
4
answers
53
views
How to repeat substitution on the consequent lines?
Say I want to fix a mistake in the following php code:
$line1 = intval($line[$1]);
$line2 = intval($line[$2]);
$line3 = intval($line[$3]);
and do substitution on the first line with:
:s/\$\(\d\)/\1/
#...
1
vote
2
answers
99
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:
... ...
...
2
votes
1
answer
42
views
:.w !bash a temporarily modified line and executing it in the shell
#!/usr/bin/env bash
# scp /tmp/abc.sh SERVER1:~/bin && ssh SERVER1 "~/bin/abc.sh"
echo "Hello Stack Exchange"
echo "thanks for the help
I would like to be able to use ...
0
votes
2
answers
49
views
Trying to replace pattern _1_ with _01_ but its not working
I am using Vim version 9.0.1280.
The search and replace command I am using is -
:%s/\(_\)\([1-9]\{1\}\)\(_\)/_0\1_/gc
When I run this vim offers to replace _1_ with _0\1_.
What am I doing wrong?
0
votes
2
answers
161
views
Vim substitution and keep cursor in place
I have a mapping in my .vimrc.
It is the following:
nnoremap q; :call Add_comment_css()<CR>
And then I can run, say 10q;
And then it will run 10 times.
But my problem is that the cursor always ...
0
votes
1
answer
97
views
How to test in which mode of magicness Vim is?
Vim can be in four or more magic states.
In vim help documentation there is plenty to read about, all presuming that the user knows the current state of magicness.
When a complicated many lines long :...
3
votes
2
answers
2k
views
Duplicate line and replace part of line multiple times
Considering this type of Json structure :
[
{
"id": "0000000000001",
"en-US": "String 1"
},
{
"id": "0000000000002",
"en-US": "String 2"
}
...
]
I ...
4
votes
1
answer
637
views
How to match the content in a pair of brackets, no matter how many pairs of brackets are contained in the content?
I want to replace
GD[many[[brackets]]], GD[evenMore[[[[brackets]]]]]
with
GD[someStuff], GD[someOtherStuff]
How can I match the correct pair of brackets? These patterns are scattered in a large ...
76
votes
12
answers
23k
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 ...
10
votes
1
answer
3k
views
How to translate Unicode escape sequences to the Unicode character?
I have a file with a lot of characters represented like this: \u05E2. (These are the actual characters in the file: backslash, lowercase u, and four hexadecimal digits.) Due to that, the file is ...
0
votes
1
answer
36
views
exim incorrect substitution count?
I'm having strange bevahiour with Vim 9.0
$ ex --version | head -3
VIM - Vi IMproved 9.0 (2022 Jun 28, compiled Sep 30 2022 03:09:54)
macOS version - x86_64
Included patches: 1-270
$ VIM_POSIX='...
0
votes
2
answers
753
views
Search and replace uppercase letters with lowercase letters
I have bunch of strings that starts with uppercase letters. I want to change uppercase letters with lowercase letters. Strings are not aligned so visual block mode is not an option. Is it possible to ...
1
vote
2
answers
178
views
Vim fill command line with currently highlighted word in substitution
I have incsearch on, so when I type :s/thingS it will highlight the thingS part of thingSoFar in the below text
see, this thing is the thingSoFar thing
When I am typing that command line with my ...
0
votes
1
answer
136
views
Replace inside matching parentheses
I want to replace all Box::new(x) with x, e.g. Box::new(A(B()) + C()) becomes A(B()) + C().
Does neovim (0.8.1) support that?
I expect that there must be some feature for such a likely developer-...
4
votes
1
answer
486
views
Set variable equal to search match subsection
Unnecessary Context:
I want to write a function that closes open HTML tags, because closetag.vim seems complicated, and I like to understand all the stuff I run in Vim.
My plan for this is to match ...
16
votes
2
answers
665
views
Multiple choice substitute?
Normally, a substitute with the c option gives me two options: (y)es or (n)o. Is it possible to have several numbered yes options to choose from?
Example
File
person: Alice
dog: Tobby
person: Bob
...
2
votes
3
answers
80
views
How to avoid highlighting when block commenting?
I'm running the command
:.,.5s/^/!&
to block comment a section of code, however, after running the command the editor highlights the first character in every line of the file. I guess this doesn'...
3
votes
5
answers
3k
views
Changing multiple instances of a local variable at the same time
Let us say we have the following for loop in Vim:
for(int i = 0; i < len; ++i);
and I want to change the variable i to j.
I have to do it manually for each i. Is there a way in Vim so that when ...
23
votes
1
answer
262
views
How does :g/^$/,/./-j (reduce multiple blank lines to a single blank) work in Vim?
In the article, Vim Regular Expressions, Oleg Raisky gives the following command to reduce multiple blank lines to a single blank:
:g/^$/,/./-j
Can someone please describe how this works?
I know :...
5
votes
2
answers
1k
views
How to change all numbers in file into float format?
I have a file containing nothing but integers and words, separated by arbitrary numbers of spaces, along the following lines:
1 alpha plural 1 0
6 1440
3 1 4 1 5 9 2 6 5 3 5 8 9
2 7 1 8 2 8 1 8 2 ...
4
votes
4
answers
687
views
How to get around this common multiple-cursors use case?
I have a lot of difficulty doing things like the following in Vim:
From
1 'apple'
2 'orange'
3 'pear'
4 $fruit1 =
5 $fruit2 =
6 $fruit3 =
To
1
2
3
4 $fruit1 = 'apple';
5 $fruit2 = 'orange';
6 $...
1
vote
2
answers
68
views
How to create a range command that substitutes characters with grouping and back references?
The use case is to copy citations from pdf files to markdown documents in vim. I'd create a dotted list of important copied text and then I'd like to replace the end of line hyphenation that appears ...
0
votes
3
answers
102
views
How can I select all non-lowercase multiline blocks which follow a keyword?
I'd like to copy these to a file, but in a speculative future case,
I might want to delete them. I might need to find a regex to substitute
intervening data with a single blank line.
The highlighting ...
2
votes
1
answer
179
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)/
...
3
votes
1
answer
859
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
1
answer
52
views
Replace all the backticks with tildas by using GUI
To replace
```
code blocks fenced with backticks
```
with
~~~
code blocks fenced with tildas
~~~
I can use :%s/```/\~\~\~/g and this works.
However, when I try to replace them with GUI (Edit > ...
2
votes
1
answer
406
views
Break line after the n-th comma
Suppose I have the next line
1,0,10,10,9,7,7,5,41,3,57,7,1,9
I want to split it into several lines, each containing n commands for example, for n = 4
1,0,10,10,
9,7,7,5,
41,3,57,7,
1,9
1
vote
1
answer
117
views
Vim: reformat CSS from one-line to multi-line rules
I wanted to reformat the W3.CSS file to make it more readable and study it.
I looked for an easy way to do this but couldn't find it (in vim-only way, obviously, the web are plenty of solutions and ...
2
votes
1
answer
780
views
How to disable the interactive preview for substitute in Neovim?
In Neovim, when I type :%s/foo then the current buffer changes to have all instances of foo removed, basically giving a preview of the change. Coming from standard Vim, I find this confusing and it's ...
1
vote
0
answers
32
views
After `:%s` substitution the syntax highlighting of my R code has changed
Preface: VIM beginner, and I suspect this question will evolve significantly as I understand more about it (and VIM). Documenting the issue here as I was unable to find any other references to "...
2
votes
2
answers
231
views
Replace characters in relative linespan
I know that I can replace characters in a linespan via something to the effect of :300,305s/foo/bar/g
But when I'm deep in the code, and I know that I just want to replace in the next five lines, I'm ...
0
votes
2
answers
141
views
How do I copy and paste the content inside quotes from one place to another?
Lets say I have a buffer with the following content:
<property name="sfgiusfgsnffgdsb" value="arbitraryvalue1"/>
<property name="sfsergggsnfgdfgs" value="...
4
votes
2
answers
1k
views
Keep Cursor In Current Position After Find-Replace
How does one keep the cursor in its place after a file-replace using :%s/find/replace/g ? I looked at restoring cursor position, but not quite what I was looking for, and I could jump back to previous ...
4
votes
2
answers
85
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[...
1
vote
3
answers
921
views
Netrw-R Renaming multiple Files with vim
After going through the renaming guides from the doc folder in vim I found a way to replace text with the input :%s/frompattern/topattern/g.
Reaching the renaming files with the file browser tutorial/...
2
votes
1
answer
250
views
Keep specific parts of a :s command in nvim
What I'm trying to do is convert between Textile and Markdown links, so it should be able to do something like :s/".*"(.*)/[.*](.*)/, which is to say, keep the stuff that is matched by the .*...
1
vote
2
answers
153
views
Vim find and replace with filename as variable
Is it possible to use vim find and replace to replace a variable with the current filename? for example, fancyFileName.txt contains
this is the VARIABLE to replace in this fancyFileName.txt
and I am ...