2016-05-10 6 views
0

Zum Beispiel möchte ich einen Befehl mit dem Namen Mycmd erstellen (der erste Buchstabe muss groß geschrieben werden).Erstellen Sie einen neuen Vim-Befehl, um mehrere integrierte Befehle auszuführen?

:set ts=2 
:set sw=2 
:set sws=2 
:set expandtab 

Ich fand command Syntax auf dem richtigen Weg zu sein scheint, zum Beispiel:: Molken I im normalen Modus und Typ bin :Mycmd, ich hoffe, die folgende Befehl Serie kann getan werden [StackOverflow], aber ich konnte nicht mach es mit mehr als zwei Befehlen (dh: setze eine Sache dann: setze eine andere Sache).

Ich weiß nicht wirklich nmap betrachten, da ich meinen Befehl zu einem Hotkey statt Mapping erstellen möchten, obwohl nmap Befehle gleichzeitig ausführen können (zB nmap <F7> :set ts=2<enter>:set sw=2<enter>)

+0

Einfach nur neugierig: Warum Sie es brauchen Speichern dieser Einstellungen in .vimrc-Datei ist nicht genug für Sie? – mrek

+0

Gute Frage, weil ich an einem anderen Projekt arbeite, das einen separaten Einzugsstil verwendet, der nicht möglich ist, basierend auf Dateinamen zu trennen. Aus diesem Grund dachte ich daran, einen Befehl zu erstellen, damit ich zu anderen Einzugseinstellungen wechseln kann. – TimeString

+0

P.S., es scheint eine Lösung zu sein, dass ich ein Makro mache und den neuen Befehl an dieses Makro anschließe, aber immer noch nach einer besseren Lösung suche. – TimeString

Antwort

2

Just do:

command Mycmd set ts=2 | set sw=2 | set sws=2 | set expandtab 

| verwendet wird, Befehle in jedem Vim-Skript zu trennen.

Oder noch einfacher:

command Mycmd set ts=2 sw=2 sws=2 expandtab 

die Einstellungen zu ändern, zeigen Sie die Änderungen:

command Mycmd set ts=2 sw=2 sws=2 expandtab ts? sw? sws? et? 

es zuzuordnen:

nnoremap <silent> _I :Mycmd<cr> 
2

Was Sie wollen, ist:

command! Mycmd setlocal ts=2 sw=2 sws=2 expandtab 

Was Sie (und alle) brauchen, ist Editorconfig.

Verwandte Themen