人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

VIMのプラグインneosnippet.vim(https://github.com/Shougo/neosnippet.vim)で自分でスニペットを作っています。

synchronized placeholderに数字が続いている場合はどのようにスニペットを作れば良いでしょうか?


スニペット→
${1} world$13.

1にhelloと入れた場合
理想→
hello worldhello3.

現実→
hello world13

●質問者: tetlis
●カテゴリ:コンピュータ ウェブ制作
○ 状態 :キャンセル
└ 回答数 : 1/1件

▽最新の回答へ

1 ● a-kuma3

使ったことはないんですけれど、unix のシェル変数の展開に似てるので、中括弧で数値をかこってあげればいけるんじゃないでしょうか。

${1} world${1}3



追記です。

最初の${1}の入力が終わった後、後ろの${1}は別の物として入力待ち受け状態になりました。

${0} でいけそうな気がします。

${1} world${0}3

ドキュメント読みました。522行目辺り。

- $number
- ${0}

This is a synchronized placeholder. Sometimes it is required to repeat
a value in several positions inside a snippet. If you set the number
of this placeholder to the same number as one of the other
placeholders in the snippet, it will repeat its content. $1 is
synchronized to ${1} and so on. ${0} will be the final jump
placeholder
.

neosnippet.vim/neosnippet.txt at master ? Shougo/neosnippet.vim ? GitHub

tetlisさんのコメント
だめでした。 前の${1}で入力したのと同じ内容が、後ろの$1へ自動的に転記して欲しいのですが、最初の${1}の入力が終わった後、後ろの${1}は別の物として入力待ち受け状態になりました。

a-kuma3さんのコメント
回答に追記しました。

tetlisさんのコメント
いつもありがとうございます。 残念ながらこれも違いました。${0}はスニペット中の${1},${2},${3}…と埋めていって、最後にカーソルを${0}の場所へ持ってくるという役割です。 ${1}に入力した内容は$1に転載されるのですが、$13等のように、$1数字となっていると転載が行われないというのが現在の問題です。

a-kuma3さんのコメント
あはは、ぼくの方が教えてもらってるみたいだ <tt>(^^;</tt> ドキュメントを読んでて思ったのですが、バックスラッシュにエスケープの役割を与えているようなので、以下のように $1 の後にバックスラッシュを入れてみたらどうでしょう。 >|| ${1} world$1\3 ||<

tetlisさんのコメント
実はソレも試してみたのですが、 hello worldhello\3 と\がそのまま表示されてしまいました。 その他 ${1} world$1 3 とスペースを入れてみても、当然のように hello worldhello 3 とスペースが現れてしまいました。 そういう経過も書くべきでした。
関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ