Last call to make your voice heard! Our 2022 Developer Survey closes in less than a week. Take survey.

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.

Filter by
Sorted by
Tagged with
1 vote
2 answers
37 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 ...
user avatar
  • 147
0 votes
2 answers
55 views

How to avoid empty line and comment line when substitute string?

Want to convert //comment abc_def ... thank_you123 ... to //comment .abc_def ( abc_def ), .thank_you123 ( thank_you123 ), with single substitute command. Need to avoid both ...
user avatar
  • 900
2 votes
0 answers
52 views

How do I capitalize first character after a special character?

I want to convert "abc_def_ghi ( abc_def_ghi )" to "abc_def_ghi ( abcDefGhi )". Note: If I visually select the string within (), the below command changes whole line instead of the ...
user avatar
  • 900
0 votes
0 answers
13 views

autocommand variable is not substituded [duplicate]

let Dropbox = "/usr/Dropbox" ... autocmd BufNewFile *.php 0r Dropbox/vim/templates/php_start.txt The variable 'Dropbox' is not substituded by its value
user avatar
0 votes
1 answer
46 views

Use tilde ~ in substitution inside neovim?

In vim 8.1 (tiny), I can use ~ in a substitution, but it won't work when using neovim 0.6.0. For example, if I have a file with the text: one two three And I enter vim with "vim -u NONE -N",...
user avatar
0 votes
0 answers
35 views

combining multiple lines [duplicate]

I have a text file of X ips and X files that looks like: ip1 ip2 ip3 some_dir/file1 some_dir/file2 some_dir/file3 I'd like to combine the lines into a csv format, like: ip1,some_dir/file1 ip2,...
user avatar
2 votes
1 answer
60 views

Add incrementing numbers to lines

How do I numbers starting from 1 to a range of lines (thereby creating an ordered list)? For example, the following foo bar baz would turn into 1 foo 2 bar 3 baz I know to use the visual block to ...
user avatar
  • 179
1 vote
1 answer
73 views

Mapping repeat last command

Apologies I am probably expressing myself very badly, that's also why 1 hour searching hasn't yielded the result I wanted yet... Assume I want to replace true with false in a buffer. :s/true/false Now,...
user avatar
2 votes
2 answers
406 views

Why does vim replace with confirmation only replace the first occurrence in the each line?

For example, for a line X X X with the command :s/X/Y/c vim will only replace the first occurrence, namely the first 'X' to 'Y', is there a way to let vim go through all the 'X' and replace it ...
user avatar
2 votes
1 answer
52 views

Adding a new file:line format for gF for a given file type

I use gF a good amount when getting to the bottom of compilation errors in different tech stacks. With Dart/Flutter, I'm getting the error messages in the following format: lib/main.dart:58:34: Error: ...
user avatar
  • 121
2 votes
1 answer
30 views

Stop replacing occurrence in subsequent lines when occurrence is found in one line

I understood that :%s/foo/bar replaces the first occurrence of 'foo' with 'bar' in each line and repeats the process for all lines. My requirement is to stop skimming through lines after the replace ...
user avatar
1 vote
1 answer
38 views

Show more lines on substitute confirmation

Sometimes I use substitute with confirmation because I only want to replace some instances of a search, depending on the context. However, it's difficult to tell sometimes because as Vim is cycling ...
user avatar
  • 123
3 votes
2 answers
430 views

How do I replace single whitespaces without affecting multi-whitespace such as indentation in Vim?

I have textfiles with paths that have lost underscores between words inline in an OCR process. I want to keep the indentation and put back the underscores in the paths. I have a path like this: /...
user avatar
4 votes
1 answer
130 views

Can I replace two distinct old strings with two distinct new strings using a single :s command?

Suppose I have the following line of text in vim: hello, it will be sunny today and I want to change it to: goodbye, it will be sunny tomorrow I could put my cursor on the line and type :s/hello/...
user avatar
1 vote
1 answer
209 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/...
user avatar
0 votes
1 answer
41 views

How can I connect separated lines without highlighting in visual mode?

I would like to connect broken lines, like: This is a line that continues. but instead of highlighting them with visual mode and connecting with Shift-J, I would like to run some kind of global ...
user avatar
1 vote
1 answer
95 views

How do I enter N carriage returns during a substitution?

When using :s, how do I multiply the string being written by an integer, to write N copies of it? For example, :s/pattern/10*\r/ would write 10 carriage returns in each match.
user avatar
1 vote
1 answer
95 views

argdo vs bufdo for project-wide search and replace in specific folders

I have the following structure: myproject ----src file1.cpp, ..., file10.cpp ----include incl1.h, ..., incl10.h ----data data1.txt, ..., data10.txt I would like to ...
user avatar
  • 155
0 votes
1 answer
66 views

substitute() with ampersand in replacement

I’m doing something like this: let l:new = substitute(l:old, l:word, l:repl, ‘’) l:repl comes from an external source and often has an ampersand in it. Is there a way to prevent vim from interpreting ...
user avatar
  • 103
-3 votes
1 answer
59 views

How to replace *_Apple to Apple using VI?

I need to replace multiple lines using vi. For example, any numbers_Apple to Apple 0001_Apple 0010_Apple 1021_Apple … 8383_Apple to Apple
user avatar
1 vote
1 answer
237 views

Why does this vim command fail?

I'm trying to process large error logs and part of that is filtering out lines I don't need to see. Here's what I'm running in vim: :g/.*rsync: stat.*/d | %s/\(.*mkstemp "\)\(.* \/\)\(.*$\)/\2/ | ...
user avatar
  • 199
0 votes
1 answer
39 views

Replacement of characters gives ^@ when replaced with newline but not newline [duplicate]

Why does replacement of something by using :%s/,/\n/gc in vim gives me ^@ instead of giving me newline. Sed replacement works perfectly sed s/,/'\n'/g. Any idea how to do sed thingy in Vim and save ...
user avatar
  • 103
0 votes
0 answers
26 views

Custom indent minified file

At work I'm forced to work on custom mapping-files which map relations between objects of different systems. These mappings, which are basically Jinja templates, are unfortunately stored in single ...
user avatar
0 votes
1 answer
41 views

Substitution alternating a pattern

I have a transcription file that looks like this: [09:46] question [10:22] answer [10:25] question [10:26] answer [10:27] question and so on... Now I would like to add an identifier right after ...
user avatar
  • 3
2 votes
4 answers
616 views

How do I change the word under the cursor?

I've written a little function that changes a 'CamelCaseWord' to a space separated 'camel case word': " Convert a CamelCase word to space separated words. function! s:converFromCamelCase(arg1) ...
user avatar
  • 31
1 vote
1 answer
90 views

Insert and remove a marker at the start of the current line

So, I'm trying to set up a sort of bookmark/marker kind of workflow, and I came to notice I'm used to put characters such as # and such for different meaning inside my own notes, etc. Now, I already ...
user avatar
0 votes
3 answers
84 views

How can I perform a replacement a specified number of times per line?

Using vim, I know that I can replace all occurrences of a string across multiple lines by specifying a count or a range, as documented in :h subst. I have a markdown table which contains C function ...
user avatar
  • 197
0 votes
1 answer
31 views

Can't replace div using regex

I have the following code from lines 6-20 <div> 1 </div> <div> 2 </div> <div> ...
user avatar
2 votes
1 answer
67 views

Caret `^` and `\%V` compatibility in Vim regex

Can the caret ^ and the sequence \%V be used to match the beginning of a line in a visual selection? And if not, what is the rationale? The following example seems to indicate that ^ and \%V are not ...
user avatar
  • 255
1 vote
1 answer
78 views

Replace two space indentation with tabs

I'd like to replace all two-space indents with tabs I can't do :%s/ /^I/g bc this replaces within lines too. I can't do :%s/^ /^I/g bc this replaces only the first two spaces of each line, not each ...
user avatar
  • 1,689
1 vote
3 answers
199 views

Function That Substitutes Across Multiple Files

I'm trying to create a function that implements the functionality outlined here: Vim search replace all files in current (project) folder My current attempt: nnoremap <C-F> :call ...
user avatar
1 vote
2 answers
155 views

Copy to clipboard or save to file substitution command

I'm trying to answer a vim question in U&L, which involves a very complex and long regex substitution. I would like to copy to clipboard the command, or save it in a file, so I don't have to make ...
user avatar
1 vote
1 answer
55 views

Configure Vim 8 behavior regarding substitution in visual selection

When I select a section of text within a line, then indicate I want to substitute on that line with :s, the result is that the entire line is affected. In order to actually do what I intend, I have to ...
user avatar
  • 134
3 votes
2 answers
67 views

Why \%V is not added in visual mode during substitution by default?

\%V can be used to restrict match within the visual selection. However, I can't think of a situation when one would not want to do just that in visual mode.
user avatar
  • 371
1 vote
1 answer
278 views

How to escape pipe (|) in mapped substitution?

I wanted to define a mapping for flipping the texts on both sides of a pipe (|) character. For example, substitute dům|Haus with Hause|dům The substitution command :s/\([^|]\+\)|\([^|]\+\)/\2|\1/ ...
user avatar
0 votes
1 answer
182 views

Get count of string in vim

To get the count of a string I usually do something a bit hack-ish such as the following: Do a :%substitution on the string in question, such as: # how many times does the string "<Item "...
user avatar
  • 1,767
3 votes
1 answer
46 views

Replacing both upper case and lowercase findings [duplicate]

I often find myself running the following commands in sequence when wanting to replace both the lower case and title case instances of a given word, while retaining its original case. :'<,'>s/...
user avatar
1 vote
2 answers
38 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/...
user avatar
  • 1,689
0 votes
1 answer
222 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 ...
user avatar
  • 143
5 votes
3 answers
263 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 (...
user avatar
  • 2,143
1 vote
1 answer
34 views

How to replace [ with ( in vim

I have this markdown line, ![Home][screenshots/home.png] I want to replace it with, ![Home](screenshots/home.png) So, I tried this, :%s/[s/(s/g Vim(version 81) says pattern not found.
user avatar
  • 115
-1 votes
1 answer
1k 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'...
user avatar
  • 1,689
0 votes
2 answers
454 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-...
user avatar
1 vote
1 answer
57 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: ... ... ...
user avatar
  • 133
1 vote
1 answer
47 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[...
user avatar
  • 131
2 votes
1 answer
31 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 ...
user avatar
  • 746
0 votes
2 answers
98 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 ...
user avatar
3 votes
1 answer
195 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]\...
user avatar
  • 133
1 vote
2 answers
210 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 ### ...
user avatar
  • 1,237
3 votes
1 answer
1k 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 ...
user avatar
  • 187

1
2 3 4 5
7