Vim Surround:新しいタグを作成しますが、インデント/新規回線はありません
質問
Textmates Ctrl + Alt + Wを模倣したい。
vimサラウンドでは、編集モードでCtrl + STを使用していますが、タグを設定した後に常にインデントして新しい行を作成して、このようになります(*=カーソル位置):
<p>
*
</p>
.
これを達成する方法はありますか?:
<p>*</p>
. 解決
あなたの問題は、選択された領域が「回線的な」であることを示します。たとえば、V
を使用していくつかの命を選択してタグを囲む場合、タグは上の1行に配置され、1つは選択された行が配置されます。
あなたはおそらくそれを囲む前にv
を使って「文字賢い」選択を作成したいと思うでしょう。
とにかく作成したマップを投稿してくださいので、これをデバッグするのに役立ちます。
更新
コメントのいくつかの説明の後、サラウンドプラグインが最良の選択肢ではないことをあなたに言うでしょう。その名前が説明するにつれて、囲まれたコンテンツに対処するために作成されました。それであなたはサラウンドのコンテンツを必要とするかもしれません。
あなたの場合は、 HTML Autoclosetag を探すことをお勧めします。 。 >
を入力すると、このプラグインはHTMLタグを閉じます。それは確かに適切であり、サラウンドよりも少ないキーストロークを使用します。
<p <--- Now when you type ">", if becomes:
<p>|</p> <--- Where "|" is the cursor.
.
明らかに、あなたはすべてのタグへのこの動作を得るでしょう。しかし、それが好きなら、それは便利かもしれません。
他のヒント
通常モードから、vstp>
と入力してビジュアルモードに入り、現在のカーソル位置で同じラインに開き、<p>
タグを出力します。現在のインデントレベルを維持するために資本Sを使用してください。
これは、説明するようにタグの間にカーソルを置くことはありませんが、TextMateの CTRL ショートカットも行いません(Ctrl + Shift + Wを意味すると思います。後者がダイヤモンド記号を出力するだけで、CTRL + ALT + Wではなく。)
私の答えはおそらく遅くなっていますが、私は助けようとします。 私はVimSurroundプラグインに似ていました。Ctrl + Vを使用して文(1行)を選択して、これを取得してください。
{
var myVar
}
.
これの代わりに:
{ var myVar } // what I wanted
.
私は簡単な解決策を見つけました:通常モードから Vis コマンドを持つ線を選び、そして私はCapital C(私のVimサラウンドマッピング)を入力し、囲まにブラケットを選択します。囲まれた
質問のタイトルは、作者が実際に探していたものに基づいて技術的に誤って見られていますが、私は実際にタイトルで尋ねられた質問に対する答えを探していたので、私はそれにも答えを提供するべきです。
ブロック単位選択を使用するときにVIMサラウンドが使用されていない要素を囲む新しいタグを作成する(つまり、 vyss )、代わりに次のようなものをすることができます。
^ ys $
このコマンドは、行の最初の空白の文字にカーソルを移動し、それらを利用するコマンドを囲み、行の終わりに移動します。その後、単にタグに入るだけです。
結果はこれです:
<input type="email" name="email">
.
このようなものになることができます:
<li><input type="email" name="email"></li>
.
コマンドは、と同様に繰り返し可能です。とすべての通常の他のVimの良さ。
この質問につまずいたので、私はこれも疑問に思っていたので、これを行う最も簡単な方法は単なる:
yss<p>
.
(yss
はインデントなしで何かを囲みます - ここに見てください - href="http://www.catonmat.net/blog/vim-plugins-surround-vim/" rel="nofollow"> http://www.catonmat.net/blog/vim-plugins-surround-vim/ )