Questions tagged [global-command]

Questions about the usage of the global command `:g` which executes an Ex command (default ":p") on the lines within a range a where a pattern matches.

Filter by
Sorted by
Tagged with
14
votes
6answers
3k views

Delete all consecutive duplicates

I have a file that looks like this. Move to 230.00 Hold Hold Hold Hold Hold Hold Move to 00.00 Hold Hold Hold Hold Hold FooBar Hold Spam Hold I would like it to look like this: Move to 230.00 ...
12
votes
2answers
8k views

How to join all lines together which matching pattern?

I would like to join lines together only for lines which have certain pattern (such as ;), however when using g/;/j it doesn't work as expected unless called couple of times. For example the ...
10
votes
5answers
4k views

How to replace content between two patterns from the file?

I've the following format of the file: <common> fitnes=0 genetic=1 method=0 </common> <inputs> foo=bar bar=foo </inputs> <limits> balance=200.00 </limits> and I ...
9
votes
2answers
4k views

Append lines of text after pattern using global command

I'm reworking a section of logic in some C code to avoid a memory leak that looks like this: switch (result) { case CASE_1: return report(...); case CASE_2: return report(...); /* * More ...
8
votes
4answers
274 views

Use pattern of global ex command found on a line to substitute in another line

In my fortran code I have a lot of blocks like the following subroutine name(arg1,arg2,arg3,...) : end subroutine and I want them to become subroutine name(arg1,arg2,arg3,...) : end subroutine name ...
8
votes
1answer
138 views

How can I use consecutive numbers in an Ex-style substitute command?

For example, let's say I want to put a number before every line that starts with the word "Do". The command would look something like :%s/^(Do )/1. \1/, but what can I do so it will apply numbers ...
6
votes
3answers
4k views

How to execute command on every matching pattern, not just lines?

I know in vim I can use :global to execute commands on the matching lines. But I'm wondering if it's possible to execute those commands on every matching pattern, not just lines, consider following ...
6
votes
2answers
246 views

Deleting lines matching a pattern and put them into the buffer

I am trying to do this: deleting lines matching a pattern and then copy these lines into some other place in the file. :g/PATTERN/d does delete the lines but when I use p or P, only the last line is ...
5
votes
1answer
715 views

How to write each line into separate file?

I'd like to write content of the file into separate files each for each line. For example: Lorem ipsum dolor sit amet consectetur adipiscing elit I'd like to write 1st line into line1.txt, 2nd ...
4
votes
1answer
3k views

How to use :g to insert?

Let's say I have these lines: a # c b ## d and i want to insert # on a line starting with a # so that I get this: a ## c b ### d I was not able to find anything in the vim help, but I was able to ...
4
votes
2answers
3k 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 ...
4
votes
1answer
217 views

indent command does not indent matched lines

I have file where I would like to indent all the lines between curly braces: html { margin: 0; padding: 0; border: 0; font-size: 100%; font: inherit; vertical-align: baseline; } body { line-height: 1....
4
votes
1answer
250 views

How to simulate Return and Escape for global command without using Control-V?

I've the following sample content which I want to edit: <table> <tr><td title="Title 1">col1</td><td>col2</td><td>col3</td></tr> <tr><td ...
4
votes
3answers
731 views

Run a function once on every paragraph

I'm trying to write a plugin that highlights overused words. After much effort I managed to write a function (and a command, :Ditto) that will highlight the most used word in the file or in a ...
4
votes
1answer
582 views

Substitute all except the last asterisk in groups of two or more asterisks

How can I substitute all except the last asterisk in groups of two or more asterisks with two spaces? E.g. * Micro topic 1 ** Microbes are small ** You can't see them! *** Isn't that something? ...
4
votes
1answer
289 views

Indenting lines in each paragraph except the first one using global command

I want to indent lines in each paragraph except the first one. By paragraph, I mean a group of lines that are separated from other groups of lines by at least one blank line. For example, here we ...
3
votes
2answers
1k views

Using global command on Quickfix entries [duplicate]

I find and replace a pattern in all the files in my project (which is a big one). After the search is done, quickfix window is opened with the matches. The matches are in different files in different ...
3
votes
4answers
390 views

How to run a python command based on a matched group of a pattern?

Let say I want to run a command that uses a matched group of a pattern for each line matching the pattern. The natural choice is :g. With the command :s, there is no problem. If i would do :g/aaa\(....
3
votes
1answer
94 views

How to surround all headlines with empty new lines in a markdown file?

I have the markdown file that uses # for headlines, like this one. #H1 Text one one ##h2 more Text #more H1s Even more text No I have the problem that some interpreters of markdown don't accept a ...
3
votes
2answers
562 views

Delete blank lines within range

Suppose I have the file: begin asdf asdf end begin asdf end begin asdfasdf end How can I use something like the global command to delete every empty line in between 'begin' and 'end'? :/begin/,...
3
votes
3answers
227 views

Using :g to yank in quotes across multiple lines

I was reading through the vim wiki about the power of g https://vim.fandom.com/wiki/Power_of_g and would like to do something similar to :g/pattern/y A but a little bit different. I have an html file ...
3
votes
1answer
103 views

replace or operate within regex match

underlying question: Is there a way to operate on text within a regex match? I.e. is there an analog to the 'g' command that operates on match substrings instead of lines usecases: One example of ...
3
votes
1answer
208 views

Join multiple lines based on pattern

I have text bounded by quotes as follows "This is an example of some text" I want to join these into one line. e.g. "This is an example of some text" I have tried commands like ...
3
votes
1answer
1k 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 ...
3
votes
1answer
679 views

Run global with range from within function

I have a function somewhat like this: function! MyFunction() g/\v.(\n\n|\n*%$)/execute "normal! v{:call AnotherFunction()\<cr>" endfunction Now I want to be able to pass a range to that ...
3
votes
2answers
39 views

Syntax clarification on a global sort command

I was looking at a global command that I saved from long time ago. I did not understand how it was a valid syntax, but apparently the syntax was valid because the command worked. The command: :g/\v\{/...
3
votes
1answer
140 views

Unmapping the global mappings on a per-buffer basis

I have the following mapping in tnoremap <Esc> <C-\><C-n> init.conf to exit insert mode while in the terminal. In certain terminal buffers I would like to not have that global ...
2
votes
3answers
4k views

How to delete searched line and next

I have a file containing special comments in the following forms: // SPECIAL // Some stuff // Some other stuff // Last line of other stuff So I need to be able to delete the line containing SPECIAL ...
2
votes
3answers
48 views

How to delete a range of lines not up to N lines under a lines matching a pattern?

Say I have a document cat dog xxx 1 2 3 cow xxx a b c horse I would like to be able to run a command that will end up with xxx 1 2 3 xxx a b c whereby the transformation is defined by matching all ...
2
votes
1answer
863 views

How to truncate all lines at a certain length?

Much like this question, I've failed to put this together successfully on my own. I want to truncate lines in my file so that no line is over 100 characters in length. I can go to position 100 on ...
2
votes
2answers
191 views

How to remove lines which have lower numbers than before, and keep only the sequential?

In order to parse certain log file and make a plot of sequential numbers, I need to filter out the lines with numbers which appearing lower than in the previous lines. For example, given the list of ...
2
votes
3answers
252 views

Replace current line with filtered lines

For example, to replace current line with all lines starting with '# ' , I use :.! grep '^\# ' % I know about the :g command that can filter lines to perform operations like :g/call/d :g/cat/ s/...
2
votes
3answers
98 views

Why aren't :g/X/d changes saved in Ex?

I've the following file (which is a simplification of the hosts file): 126.0.0.1 127.0.0.1 128.0.0.1 and I'm trying to invoke the following command: ex +g/127/d -cwq file which is supposed to ...
2
votes
1answer
79 views

Insert text including capture group from search using global command

I would like to search for a pattern in a range of lines and append additional text on another line that would include part of the search pattern. Something like this: [range]g/\(foo \)\(\w\{-}\)/...
2
votes
1answer
3k views

Differences between local & global

From :h 'ar': ...If this option has a local value, use this command to switch back to using the global value: :set autoread< What do local & global value exactly mean? I ...
2
votes
1answer
650 views

Run a command on every match of a search (not on the line)

I am trying to run a command on every occurrence of a search match. So, If i have some thing like this where a search match matches only these two anchor tags, .................. <a src="****" &...
2
votes
1answer
213 views

How do I append to the unnamed register?

In particular, I'd like to append to the unnamed register with the :global command.
2
votes
2answers
145 views

Is it possible to use a reverse range in global search

I have an error report where often the known errors are in the top few thousand lines, formatting issue rather than quantity unfortunately. I want to run :g/pattern/ from the end of the file. I know ...
2
votes
2answers
268 views

Substitute text on one line with capture group from previous line?

Suppose I've copied a bunch of lines of boilerplate code that I need to copy multiple times over, and then change in two separate places, in the same way: it 'includes sessions#new' do expect(...
2
votes
1answer
56 views

:global, how to use matched pattern in the cmd of :g/pat/cmd?

Give a buffer each line contain a filename. how to use r! cmd on the filename, within a :g command? eg, BEFORE PROCESSING: file1.txt file2.txt AFTER PROCESSING (with wc -l): file1.txt 12 ...
2
votes
2answers
1k views

How to filter text matched by global command?

I have a log file full of arbitrary lines, interspersed with some lines which are a proper xml sequence, with all the tags on a single line (for each sequence). I want to simply process this so that ...
2
votes
0answers
196 views

neovim hlsearch not working

I'm testing neovim and for many thing it is working way faster than vim (I use many plugins ~80, and I can really tell the difference with neovim). All the same config files worked out of the box, but ...
1
vote
2answers
164 views

Joining consecutive commas using ex-mode

I have a large list of scores that looks likes this: Michelle ,46419 ,32413 Frank ,46412 ,33810 Steve ,28333 ,17830 ,37 Joe ,136 ,93 Alicia ,121300 ,84146 How can I move my list in Vim so it is re-...
1
vote
2answers
189 views

g/pattern/d but check first

I'd like to use Ex mode :g/pattern/d to delete most (but not all) of the rows containing pattern, but I want to see each one first and confirm before deleting, similar to :s/pattern/foo/gc. Is there a ...
1
vote
3answers
613 views

Reducing multiple blank lines into single blank line. Exceptional case

I want to join multiple consecutive blank lines into single blank line. To do this, I use the following global command: g/^\s*$/,/./-j But this doesn't work in some exceptional cases. For example ...
1
vote
2answers
49 views

Why is my global command coupled with a range command matching more lines than expected?

I have this file over here. <ul class="social-icons"> <li><a href=""><span class="social_linkedin_square"></span></a></...
1
vote
1answer
164 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/ | ...
1
vote
1answer
116 views

How do I delete matching lines in multiple files at once?

I want to delete lines containing a search term from multiple files. I used bufdo or argdo for similar tasks such performing a replacement with s over multiple files. However, bufdo g/SearchString/d | ...
1
vote
1answer
315 views

How to remove all words which doesn't match the pattern?

I've the following content: a1a foo bar buzz foo b2b bar buzz foo bar c3c buzz foo bar buzz d4d where I can match all words consisting only alpha characters by the following pattern: /\<[a-zA-Z]*...
1
vote
1answer
60 views

Converting from A to B using mapped key

I've posted a number of times to try and get closer to what I'm trying to do. My problem is I have got the commands I need to make the conversion happen, however I cannot successfully map it to a key. ...