Quantcast
Channel: Vimタグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 5608

neosnippetで使い捨てのsnippetを登録する

$
0
0

私は昔はemacsを使っていて今はvimを使うことが多いのですが、emacsで重宝していた機能の一つに
yasnippetを使ったoneshot-snippetがありました。
これはsnippetの機能を使って使い捨てのsnippetを作成し、さっと使えるようにしたものです。
登録するほどの汎用性はないけど、ファイル編集の際に何回か同じパターンを入力しなきゃならないときが
結構あるので、この関数が好きで大分お世話になりました。

しかし、vimではneosnippetという同じようなスクリプトはあるものの、oneshot snippetのようなものは見つけられなかったので
Vim script勉強して何とか作らなきゃなぁ、と思っていたのですが、今日改めてneosnippetのコードを見ていたら
neosnippet_register_oneshot_snippetという関数を発見したのでメモしておきます。
試したところ、これを使えば使い捨てのsnippetを作れたので、使い方を残しておきます。

使い方

前提: neosnippetは既に使える状態であるとします。

.vimrcに以下のコードを追記します。(キーバインドは自分の好きなものに変えてください)

vmap <C-u><Plug>(neosnippet_register_oneshot_snippet)

後は、編集ファイル内でsnippetの元を作り、visual modeでsnippetを範囲選択した状態で
ctrl-uを押すことでneosnippet_register_oneshot_snippetが起動され、使い捨てのsnippetを登録できます。
登録の際にトリガーを聞かれるので、好きなトリガーを登録すれば、そのファイル内でのみ使えるsnippetを起動できるようになります。

output.gif

foo.pyファイル内で以下のようなsnippetを書きます。

self.${1} = $1

で、visual modeで上の行を選択しctrl-uを押すことでoneshot snippetを登録できます。

登録時に、snippet呼び出しのキーワードを指定します (デフォルトだと"oneshot"。ちょっと長い気がしますが。)。

後はinsert modeでoneshotと入力をしてctrl kなどでsnippetを起動すればいつも通りのsnippetが簡単に使えるようになります!


Viewing all articles
Browse latest Browse all 5608

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>