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


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


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

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

現実→
hello world13

回答の条件
  • 1人1回まで
  • 13歳以上
  • 登録:2015/09/10 23:46:07
  • 終了:2015/09/17 23:50:03

回答(1件)

id:a-kuma3 No.1

a-kuma3回答回数4624ベストアンサー獲得回数19592015/09/11 00:41:07

使ったことはないんですけれど、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
他3件のコメントを見る
id:a-kuma3

あはは、ぼくの方が教えてもらってるみたいだ (^^;

ドキュメントを読んでて思ったのですが、バックスラッシュにエスケープの役割を与えているようなので、以下のように $1 の後にバックスラッシュを入れてみたらどうでしょう。

${1} world$1\3
2015/09/11 12:37:27
id:tetlis

実はソレも試してみたのですが、
hello worldhello\3
と\がそのまま表示されてしまいました。

その他
${1} world$1 3
とスペースを入れてみても、当然のように
hello worldhello 3
とスペースが現れてしまいました。

そういう経過も書くべきでした。

2015/09/11 12:44:45

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません