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.
86
questions
1
vote
2
answers
39
views
Help understanding this :global command
I have this command to prune :verb map down to only my plugin mappings:
g!^\~/vimfiles/plugin/^-1d _
It also needs :$d to remove last line that has verbose comment "Last set [...]".
Can ...
1
vote
2
answers
32
views
Insert newline after each line with a search pattern depending on the line before it
Basically, how can I add log statements like this with Vim?
Initial document (pseudocode):
case VALUE_1:
doFunc1();
case VALUE_2:
doFunc2();
doAnotherFunc();
case ...
2
votes
2
answers
114
views
Can't stop the global command using subcommand :substitute (:s) with the check flag (c)
I'm trying to use the global command :g with :substitute to find and replace some string and also with check.
So the command like:
g/\d/s/.*//gc
but the check behavior is not same as in :s
I can't ...
4
votes
3
answers
188
views
Equivalent of backreferences in a g command?
I'm formatting a multiple-choice quiz to be imported into an LMS. The questions are currently formatted like this, with the asterisk indicating the correct solution:
1. Question text
a. First answer
*...
0
votes
1
answer
60
views
Deleting multiple pattern simultaneously
I would like to execute multiple deletions. The problem when a pattern is not found all deletions are cancelled. I used the e flag to tell vim the not founding a pattern is not an error, but it still ...
2
votes
2
answers
133
views
Just the first line is deleted
Given the following file:
Stand
a
b
c
d
e
f
Stand
a
b
c
I would like to remove the lines that match the following pattern Stand\(.*\n\)\{4}
To achieve that I executed the command :g/Stand\(....
1
vote
2
answers
91
views
Ex global command is silenced, why is execution still stopped on error (Neovim)?
I have a sample text:
123
456
If I delete the first line, why does
:silent! execute 'g/123/d' | execute 'g/456/d'
work while
:silent! g/123/d | g/456/d
doesn't work, unless I bring back the first ...
9
votes
4
answers
7k
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 ...
0
votes
1
answer
37
views
Is there a way to apply syntax highlighting to the results of :g?
I do a lot of work with log files, and I use a lot of hi def foo and syn match foo in my .vimrc. Is there a way to apply that syntax formatting to the results of a :g command?
0
votes
1
answer
75
views
Apply normal command to all regex matches on the same line
This comment convinced me that I don't need multiple cursors, however, it's missing one feature that multi-cursor can do, which is to perform actions on multiple regex matches on the same line.
:g is ...
0
votes
1
answer
56
views
Appending text to lines maintaining context
I'm trying to write some script (a function) which I can use to add some additions to a BASH script I'm modifying. This BASH script automates the building of a series of packages. The part of the ...
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 ...
5
votes
1
answer
861
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 ...
1
vote
1
answer
28
views
matching with single character > or lines that start with >\s
I want to delete any lines that either match ^>$ or >\s
I have something like this, but this doesn't work:nnoremap dq :.,$g/^>[\s$]/d<CR>
Here's a small sample where it should delete ...
0
votes
1
answer
41
views
using g to paste matching lines under cursor
I wanted to copy a series of lines to a specific place in a file, and these are the options I see, all with g, the first two from the power of g
clear register, copy matching lines to register, paste ...
0
votes
2
answers
23
views
How can I strip footnotes using :global?
I have a very large table covering many pages in a document. The same footnote appears under the table on every page and I want to strip the entire document of these lines so I'm left only with the ...
0
votes
1
answer
39
views
Show "hit-enter message" with Syntax Highlighting?
To get a view of all function definitions in a file I type :g/function/#
Vim displays each line with the word "function" in a small "message window". I'd like to have my defined ...
1
vote
2
answers
499
views
Something like :g/re/p - but only print the matches instead of whole lines?
Say we have the following code:
Lorem ipsum.
<input name="test1">
<input name="test2"> Lorem ipsum some long text possibly so long you lose your overview.
<input ...
1
vote
1
answer
108
views
:command to abort sequence?
To be honest upfront, I wanted to use global to find the first non-matching line, as in
v,/usr/lib/, abort
(having slashes in the search pattern is the reason for using g instead of / — I'm editing a ...
0
votes
4
answers
4k
views
How to "match until"?
I have a CSV filled with text messages, and I want to be able to easily filter by sender/receiver. The last field indicates "SMS", "iMessage" or "WhatsApp"; the previous ...
3
votes
1
answer
331
views
Understanding the use of ., in the global command
While doing some updates to my .vimrc file today, I stumbled across this for condensing blank lines (really empty lines) into a single empty line.
:map ;b GoZ<Esc>:g/^$/.,/./-j<CR>Gdd
...
1
vote
0
answers
38
views
What is the empty space in this document and how do I. get rid of them
Here is my document:
What is the thing that my cursor is on? It is definitely not a whitspace as all white space should be marked with ␣.
And more importantly, how do I get rid of it?
I have tried
:g/...
0
votes
2
answers
152
views
g[lobal] with a s[ubstitution]
I would like to add a dot after the first number in a line. I tried using the command below.
:g/\v^\d/exe "norm!:s/\v(\d)/\1\./^M"
The command above does not work. I recorded the macro @q=':...
3
votes
1
answer
979
views
Delete all lines not matching a multi-line selection
I'm aware that :g/<body/ .,/body>/d can be used to delete everything within the multi-line selection betweeh <body and body>.
I'm also aware that :g!/<pattern>/d can be used to ...
1
vote
0
answers
276
views
in vimscript how to write the code a CTRL-C to be executed
I run a sourced vimscript like this:
exec 'g#' . WE_var_searchmode . ' ' . WE_var_pattertosearch . '#exec " A | B | C | make_CTRL-C | ... | LAST " '
The outer execute '...' is needed to ...
8
votes
5
answers
821
views
Is there a simple equivalent of :g/PATTERN/m0 that doesn't reverse the matched lines?
Occasionally I want to move all lines in a file to the top of that file. :g/PATTERN/m0 almost does what I want, but because :g operates one line at a time in order, it will also reverse the affected ...
1
vote
1
answer
437
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/ | ...
0
votes
1
answer
228
views
How to execute multiple global commands in Vim not sequentially?
Using following test input:
***********
aaa
bbb
ccc
***********
ddd
eee
fff
-----------
ggg
hhh
iii
-----------
jjj
kkk
lll
-----------
***********
aaa
bbb
ccc
***********
ddd
eee
fff
-----------
...
2
votes
3
answers
74
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 ...
3
votes
2
answers
77
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\{/...
0
votes
2
answers
557
views
What's the simplest way of inlining a variable?
I've recently refactored vim-colors-solarized and I've stumbled on a code like this
let s:foo = s:bar " used in multiple places
" ... many lines
let s:goo = s:boo " used in multiple places
How can I ...
9
votes
2
answers
1k
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 ...
1
vote
2
answers
79
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
1
answer
45
views
Why does this pattern make :global work only on the first line of the highligted match?
\/\*.*\(\n\s\*.*\)*\n\s\*\/ is a pattern which I cooked up to match some multi-line C comments, i.e., in the format of:
/* Comment Text
* Comment Text
* Comment Text
*/
Searching for the pattern ...
4
votes
2
answers
4k
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
1
answer
764
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 | ...
3
votes
2
answers
1k
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 ...
15
votes
2
answers
12k
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 ...
2
votes
1
answer
663
views
How do I append to the unnamed register?
In particular, I'd like to append to the unnamed register with the :global command.
4
votes
2
answers
2k
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
3
answers
618
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 ...
2
votes
1
answer
2k
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
0
answers
531
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
1
answer
92
views
Substitute at begining and end of a pattern (not line by line)
Is there a way to make a substitution only at the beginning and end of a pattern and NOT line by line? E.g., searching for the pattern /^\*\{2,}.* in
* Micro topic 1
** Microbes are small
** You can'...
2
votes
2
answers
252
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 ...
4
votes
2
answers
2k
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 ...
0
votes
1
answer
383
views
function to search for a pattern
I just recently found a very nice command to search for a pattern in a document, and display all hits:
:g/pattern/z#.1
Since the command is a bit cumbersome to type, I would like to make a shortcut, ...
2
votes
2
answers
346
views
How can I delete lines fit a pattern to a register or a new file?
I can use the powerful :g command to delete lines that contain a certain pattern like this:
:g/^\va pattern/d
I thought I should paste the deleted content to a new place but I cannot find all ...
4
votes
1
answer
334
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
2
answers
355
views
How to ignore a failed :g (global) command in a macro?
Part of a macro I'm writing deletes any blank lines, and then does some more work (joining the expected two remaining lines and then appending to them). Simplified version:
let @m=':g/^$/d^MggJA ^['
...