As of May 31, 2023, we have updated our Code of Conduct.

Questions tagged [macro]

A macro is a recording of typed commands that can be executed later. Macros are stored in registers; recording a macro can be done with q, and you can run them with @.

Filter by
Sorted by
Tagged with
0 votes
0 answers
22 views

How to search for yanked text in a macro?

How do I search for yanked text in a macro properly? I tried the following: qq (start a macro) yi" (yank text inbetween ", let's say the yanked text is foo) / press ctrl + r " (I ...
Sebastian Nielsen's user avatar
2 votes
3 answers
58 views

How to get floating result in expression register?

I want to write a macro to set line height in fraction. font-size: 18px; line-height: 22px; The problem is with expression register. I set 2 variables @f = font-size @h = line-height And =@h/@f - ...
serii 's user avatar
  • 59
0 votes
1 answer
33 views

How to use a variable from register in command mode?

I have a list of cities London Madrid Paris Brasil I want to write a macro, that will add a ul tag and wrap each city in to an li. I think, i need to create a variable like: let i = 4 Than to write ...
serii 's user avatar
  • 59
0 votes
1 answer
32 views

How to prevent an extra newline from being appended to macros ending with a newline? [duplicate]

If I save a macro by typing: :let @s='/{<C-v><C-m>'<Enter> which looks like: :let @s='/{^M' the macro that is actually saved is /{^M^M, with an extra linebreak (that I did not type)...
ban_javascript's user avatar
1 vote
0 answers
17 views

Update the display when :normal is busy

The [n]vim manual on :normal says "The display is not updated while ":normal" is busy". Is there a way to have it do so? If not, is there a plugin that defines its own version of :...
typecasto's user avatar
1 vote
1 answer
84 views

individual macros function but combined macros do not

I am trying to bruteforce the caesar shift cipher in vim. I have recorded three macros f, a, and d where f copies the line and a applies a caesar shift to all elements on the line by calling macro d ...
Progamer's user avatar
1 vote
2 answers
289 views

What is @q doing?

I accidentally typed @q instead of :q and the file closed. I checked if I have a macro defined by using :reg q. It shows a long string of jibberish. Is it possible to find out exactly what function @q ...
neverdimed's user avatar
3 votes
2 answers
42 views

is there something like `%` but for matching double quotes

I'm working on some HTML files that are formatted weirdly. Each individual class is on a separate line which makes the file (imo) difficult to read. Something like: <div class=" classA ...
Enermis's user avatar
  • 161
2 votes
1 answer
280 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
juaninf's user avatar
  • 143
2 votes
1 answer
46 views

How do you repeat the last ex command in a macro?

If I do qq:diffthis<CR><C-w><C-w>@:q, the macro @q does not work as expected, since the command line history is not updated when ex commands are performed in macros, and ...
Andy Wang's user avatar
1 vote
1 answer
38 views

How does recording a macro differ from defining a macro directly?

In my Vim configuration, I have mapped the <C-j> key to <cmd>bn<CR>, but because the C-j key corresponds to the null character in Vim, this causes some strange issues when defining ...
Andy Wang's user avatar
0 votes
1 answer
73 views

How to join multiple lines which doesn't include space at the end

I'm working on a subtitle document (.srt) which has thousand of lines. But this issue is not about the subtitle documents, I going to export as plain text to read after. To see the dialogs line by ...
Pascowl's user avatar
4 votes
0 answers
56 views

How to Make Macros Stop with Custom Motion?

I am writing a custom Vim motion. The problem is that when used in a macro (especially at the end of a macro), the macro does not automatically stop when the motion no longer applies. For example, if ...
Jesse's user avatar
  • 41
0 votes
0 answers
110 views

How to split view all buffers in vim with equal distribution vertical horizontal

How can I split view all buffers in vim with a distribution between vertical and horizontal? Is there a plugin? I know how to make all buffers appear in either horizontal or vertical splits: :ball :...
Polo's user avatar
  • 11
0 votes
2 answers
27 views

How do I create a macro (q<letter>) which goes to the end of a line and deletes one or two characters?

I'm refactoring the logger code in my software. The old log message ends with either ); or just ; at the end of a line and I want to remove those characters and add a new line with some additional ...
Alexis Wilke's user avatar
0 votes
1 answer
48 views

Run macro on visual selection only. [Evaluate an Iterator to consecutive numbers]

How can we run the macro on only the visual selection? The macro that we want to run is / id: 1,^Mf1s^R=i^M<C-c>:let i += 1^M (where (as given in this SO answer) ^M happens to be the way vim ...
HarshvardhanSharma's user avatar
3 votes
1 answer
114 views

How to save a macro (for quickly printing a variable)?

I'm trying to create a macro for an action that I very frequently use in Python: printing a variable in a bright color so it can easily be found in the traces while debugging. So lets say there's ...
Opifex's user avatar
  • 147
3 votes
1 answer
89 views

Inserting the content of a register where a macro is recorded results in control characters becoming unicode characters

If I hit Ctrl+V and then Escape while in insert or ex mode, I get ^[ as a single character. If I hit qqEscapeq and then go see :registers, I see that q contains ^[<80><fd>a, which are ...
Enlico's user avatar
  • 2,054
1 vote
0 answers
67 views

Macro doesn't run properly when executed with :bufdo or :argdo

I have a macro that looks like: :reg a Type Name Content c "a /^where^MkV%yGo^M-- Some typing...:^[pVG:!/tmp/t.sh^M It works fine from any starting position in the file when I replay it ...
jberryman's user avatar
  • 133
4 votes
1 answer
223 views

How to reference a register in an ex command

I'm trying to write what I thought would be a simple macro to take some values that have been yanked into some registers (a & b) and use bc to do some addition with those values. Here is the ...
cewood's user avatar
  • 143
0 votes
0 answers
287 views

Macro not working as expected

I have a list such as follows apple banana cherry I am trying to write a macro that will get it in this format (I am writing a .yaml file) - "apple" - "banana" - "...
Saul Alarcon's user avatar
0 votes
0 answers
30 views

Trouble running Ex commands after normal mode commands in a macro

I have the following macro: ggdG"+p :try|%s/\V${NodeName}/${N=SwisEntity;M=DisplayName}/|catch||endtry :try|%s/\V${IP}/${N=SwisEntity;M=IP_Address}/|catch||endtry :try|%s/\V${IP_Address}/${N=...
Justus Grunow's user avatar
0 votes
0 answers
86 views

Is there a way to disable plugins during macro recording and execution?

Is there a way I can disable specific (or all) plugins when recording a macro and then when playing back the macro? I've had an issue where a plugin that automatches ( with ) that stops a macro that ...
triplej's user avatar
  • 103
0 votes
1 answer
110 views

Problem with vim macros. Limitation to letters In the alphabet

Hello I like vim but their seems to be a limited macro system from what I understand. The documentation I have says to specify a letter to define the macro. Does this mean that I a restricted to the ...
M.R.P.'s user avatar
  • 1
0 votes
1 answer
54 views

Macro inserts wrong and weird text

I have a data that looks like :stuff #object[java.time.Instant 0x4ddb2473 "2016-03-04T00:00:00Z"], :stuff2 #object[java.time.Instant 0x62bc763e "2046-04-01T00:00:00Z"], I want to ...
triplej's user avatar
  • 103
0 votes
1 answer
96 views

How to execute a macro until we encounter a character

How can I repeat the execution of a macro until a character is encountered? For example (just an example, it's not the original problem I want you to solve) I want to convert a CAPITAL_CAMEL_CASE to ...
CodeTalker's user avatar
0 votes
0 answers
145 views

Function call in macro

I have a function (from here) that requires an argument enclosed in quotes. if !exists('*Preserve') function! Preserve(command) try " Preparation: save last search, and ...
Tom's user avatar
  • 21
3 votes
1 answer
495 views

Can macros be edited? [duplicate]

I want to end up in insert mode after a macro. Is there a way to do that? A real life example: Given "foo", I'm wanting to convert it into "$123" where the number is something I ...
4amvim's user avatar
  • 43
2 votes
2 answers
429 views

Vim - Yanking a set/number/block of lines, and inserting/appending them before/after another set/number/block of lines?

If I have two 'sets' of lines, each consisting of X number of lines (but the lines differing in their individual lengths), can I yank one set and insert (or append) it to the other? To illustrate, can ...
Chris's user avatar
  • 243
1 vote
1 answer
185 views

Escaping ' (apostrophe) in \\' (leader leader apostrophe) in a @let statement inside .vimrc

I have mapping \\' (leader leader apostrophe) within my .vimrc. The mapping works just fine. I have recorded a macro to key e using this mapping. qe ... steps ... q The macro works just fine. then I ...
Kes's user avatar
  • 571
3 votes
1 answer
199 views

Escape key adds extra bytes into the register when recording a macro [duplicate]

When I try to record a macro that involves hitting Esc the following bytes are added to the register <80><fd>a for example if I type qq<Esc>q when I :echo @q I get back ^[<80>&...
Kasper-34's user avatar
0 votes
1 answer
246 views

Increment number for every 10 lines

The file consists of 2 columns (code and percentage). We need to add 2 more columns with increasing number for 4th column (Xcols) and increment 3rd column (Ycols) only for every 10 lines with reset of ...
canabady web's user avatar
1 vote
2 answers
84 views

Replace " ... " strings of various length with strings that all end at same column but start at different columns for each row

I have the following text Plan based ................................. 32 Iron based in Compound .............................. 34 Gallium Arsnide based III-V ............ 36 ... Indium ...
Kes's user avatar
  • 571
0 votes
1 answer
111 views

Regex macro to remove only lines NOT containing specific content

Given a word list, I would like to delete all lines that do not have a specific content. For illustration, In the following list, I would like to delete all lines that do not end in s. bird chairs ...
BrianWilson's user avatar
1 vote
2 answers
535 views

How to copy a Vim macro to another Vim instance without clipboard support (i.e., no `+` register)?

Cross-posting from Stackoverflow because I keep forgetting about this site... Have a macro where a visually selected text will be made a markdown link and once the macro executes it leaves Vim in ...
toraritte's user avatar
  • 368
1 vote
2 answers
119 views

Is it possible to generate a list of increasing numbers from a list of fixed numbers on vim?

Let's say I have a file that contains a specific number that is always the same, something like the following: 1 1000 10 1000 100 1000 1000 1000 10000 1000 100000 1000 1000000 1000 10000000 1000 ...
raylight's user avatar
  • 475
3 votes
2 answers
210 views

Is there any way of copying a macro inside a register to a different register?

I've discovered I can execute vim macros from the command line using the following command: vim myfile -c "argdo norm @aZZ" This command executed from the command line will execute a macro ...
raylight's user avatar
  • 475
0 votes
2 answers
465 views

Append a line after matched multiline pattern

i want to run this global command : /3)\(.*\n\?.*\)\{1,10\};;/ which matches multlines. I want to append a line after the matched block(of lines) across multiple buffers. I don't know where to begin ...
Just Khaithang's user avatar
4 votes
1 answer
77 views

How to save a macro which does not shift cursor position

I have to do </^< a whole lot. So I created a macro: let @w = '</^<Enter' (where Enter is entered via Ctrl+V M). But when I run it with @w it shifts the cursor down one line - which is NO ...
user9645's user avatar
  • 143
1 vote
0 answers
38 views

Terminal window interprets quick initial q as macro record

I have a function that opens a terminal window running some program. The program is quit by pressing q. But when I press q in the terminal window shortly after (within 1-2 seconds) of it being opened, ...
rlms's user avatar
  • 305
1 vote
2 answers
92 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: ... ... ...
piotao's user avatar
  • 143
3 votes
1 answer
70 views

Does ":norm! @q" use mapped keys inside the macro?

The documentation for :norm[al][!] states that "mappings will not be used" when the ! is written. Consider the following setup commands: :nnoremap \c Chello<esc> :let @q = '\cIthis is ...
shadowtalker's user avatar
2 votes
1 answer
59 views

Finding where one word is close to another word: parametrized command in vimrc

I asked this question, about how to find where one word is close to another word, and Quasimodo gave the very fine answer: /\vaid(\W+\w+){,3}\W+country Now I want to parametrize this command into ...
Adrian Keister's user avatar
0 votes
1 answer
237 views

Use normal command output as variable

I want to be able to use some normal commands I tend to use in the day to day as an input for another function, for example 4X, I would like 4X to be expanded to XXXX and then use it in a function as :...
Hassek's user avatar
  • 103
2 votes
1 answer
260 views

Undo <count> macro instances

Often I would record a macro and run it till end of file like 200@q. However, there may be a few lines/instances at the bottom I don't want to run the macro on (like 5 lines). Pressing u would undo ...
ChocolateOverflow's user avatar
1 vote
1 answer
424 views

How to paste/merge 2 blocks of text in vim

I search a way to paste/merge 2 block of text block A apple pear banana block B tomato beans potato to this apple tomato pear beans banana potato I'm looking for an easy way to do this using macros....
Matheus Campos's user avatar
0 votes
3 answers
828 views

Conditional search and replace using repeated macro or commands

I want to search for a keyword, and replace a word in the line that is not a search word. I thought macros may be a good way to do it, but I am open to any methods. I have something like, blah blah ...
M.O. Kitzka's user avatar
1 vote
1 answer
37 views

How do I, in a macro, yank a word which might be just one letter long?

I am writing a macro a part of which is supposed to extract verse numbers from a string such as 11.1, standing for "verse one in canto eleven". I search /11\.\zs. The cursor now is in the right place. ...
muk.li's user avatar
  • 429
1 vote
3 answers
114 views

How to use macros or any other way to add @Column and turn the below code into snake_case from camelCase?

Say that I have a java class with these fields(included only few fields, but the idea is that there could many more fields). public class Entity { private String firstName; private String ...
theprogrammer's user avatar
4 votes
5 answers
644 views

How do I get my signature with a date inserted in my changelog?

Whenever I make an update to the changelog of a Debian package, I have to update the signature with the correct date (well, it's not mandatory, but it's really nice to have). The signature looks like ...
Alexis Wilke's user avatar