VIM: how to add search/replace command to vimrc an

2019-04-25 00:08发布

问题:

I have two search/replace commands that I find myself running in vim fairly often to clean up html code so I can copy/paste it online. The commands are:

:%s!<!\&lt;!g
:%s!>!\&gt;!g

I wanted a way I could map both of these commands to be run together ... I did some searching for how to use the :map commands in vimrc, however, I can't see how to combine the two lines into a single command that is run with a single keystroke (or a single sequence of strokes).

Thanks!

回答1:

You can put the commands on a single line separated with a bar.

:%s!<!\&lt;!g|%s!>!\&gt;!g

But you'll have to escape it in the map command

:map <F3> :%s!<!\&lt;!g\|:%s!>!\&gt;!g<CR>


回答2:

:TOhtml

will create a new buffer containing your previous buffer HTML-ized, including entity escaping (and syntax highlighting, if you had that enabled). See :h TOhtml for more information.



回答3:

If you are using this search/replace pattern to HTML encode entities, you might want to check out the unimpaired plugin. Amongst other things, this provides shortcuts for encoding and decoding XML, URL and C strings.



回答4:

:map <F3> :%s!<!\&lt;!<cr>:%s!>!\&gt;!<cr>    

of course can be replaced with whatever key you wish



回答5:

I've not tried it, but can you not put them on the same line separated by "<CR>"?