2010-02-24 4 views
6

Ich habe zwei Suchen-/ersetzenbefehle, die ich mich häufig in vim aufführe, um HTML-Code aufzuräumen, also kann ich es online kopieren/einfügen. Die Befehle sind:VIM: Wie man Suchbefehl zu vimrc hinzufügt und zu einer Abkürzung mappt

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

ich einen Weg, wollte ich diese beiden Befehle abbilden könnte zusammen laufen werden ... Ich habe für einige Benutzer, wie die :map Befehle in vimrc verwenden, jedoch kann ich nicht sehen, wie man die zwei Zeilen zu einem einzigen Befehl kombiniert, der mit einem einzigen Tastendruck (oder einer einzelnen Sequenz von Strichen) ausgeführt wird.

Danke!

Antwort

10

Sie die Befehle in einer einzigen Zeile mit einer Bar getrennt setzen kann.

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

Aber Sie werden es in der map Befehl entkommen müssen

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

zu setzen Das ist fast richtig. In Vim wird der zweite Befehl nicht ausgeführt, wenn der erste Befehlsfehler auftritt (was passieren wird, wenn der erste Befehl keine Übereinstimmung findet). Um dieses Verhalten zu unterdrücken, fügen Sie ein "e" -Flag wie folgt hinzu: ': map :% s! ! \ >! Ge ' – pjb

0

Ich habe es nicht versucht, aber können Sie sie nicht auf der gleichen Linie getrennt von "<CR>" setzen?

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

natürlich ersetzt werden kann, was auch immer Schlüssel, den Sie wünschen

+0

Dies funktionierte nicht, wenn ich ein paar hintereinander hatte ... zum Beispiel: '>>>' es würde nur die erste ersetzen und dann zur nächsten Zeile weitergehen. – thornomad

+1

Das liegt nur daran, dass der Modifikator 'g' fehlt. – nickd

+0

Ah Entschuldigung, ich bin einfach zu gewöhnt, 'gdefault' in meinem .vimrc –

3
 
:TOhtml 

einen neuen Puffer, der Ihren bisherigen Puffer HTML-ized, einschließlich Einheit entweichende erstellen (und Syntaxhervorhebung, wenn man das aktiviert war). Weitere Informationen finden Sie unter :h TOhtml.