2016-05-10 5 views
0

たとえば、Mycmdというコマンドを作成したいとします(最初の文字は大文字にする必要があります)。私は通常モードでだと:Mycmdを入力ホエイは、私は、次のコマンドシリーズが行われることを願って:複数の組み込みコマンドを実行するための新しいVimコマンドを作成しますか?

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

私はcommand構文は、たとえば、右のトラックにあると思われるが見つかりました: [StackOverflow]が、私はできませんでした3つ以上のコマンドで実行します(つまり、1つのものを設定し、別のものを設定します)。

私はホットキーにマッピングするのではなく、私のコマンドを作成したいので、nmapが同時にコマンドを実行することができますけれども、私は本当に、nmapを考慮していない(例えば、nmap <F7> :set ts=2<enter>:set sw=2<enter>

+0

興味があるだけ:なぜあなたはそれが必要なのですこれらの設定を.vimrcファイルに保存するだけでは不十分です。 – mrek

+0

良い質問です。別のインデントスタイルを使用する別のプロジェクトで作業しています。ファイル名に基づいて区切ることができないため、別のインデント設定に切り替えることができるようにコマンドを作成することを考えていたのです。 – TimeString

+0

P.S.、1つの解決策は私がマクロを作成し、このマクロに新しいコマンドを配線することですが、それでも解決策を探しているようです。 – TimeString

答えて

2

はジャストん:

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

|は、任意のVimスクリプト内のコマンドを分離するために使用されます。

それとももっと簡単:

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

変化を示し、その後、設定を変更するには:

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

それをマップするには:

nnoremap <silent> _I :Mycmd<cr> 
2

は何が欲しいのです。あなた(誰もが)Editorconfigで必要なもの

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

関連する問題