0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

標準パッケージマネージャを使ってVimにSnipMateを入れる

Last updated at Posted at 2021-05-22

毎回忘れるので備忘録です。

環境

Arch Linuxでやりました。
Linuxなら同じだと思います。
Vimのバージョンは8.2です。

ダウンロード

gitからダウンロードします。表題の通り、サードパーティ製のパッケージマネージャは使わず、Vim8で使える標準のパッケージ機能を使います。(Vim 8.0 Advent Calendar 6 日目 パッケージを参考にしました。)

mkdir -p ~/.vim/pack/packs/start
cd ~/.vim/pack/packs/start
git clone https://github.com/tomtom/tlib_vim.git
git clone https://github.com/MarcWeber/vim-addon-mw-utils.git
git clone https://github.com/garbas/vim-snipmate.git

スニペットファイル作成

スニペットファイルを作成します。拡張子.snippetsというファイルを作成すると、その拡張子に対応したスニペットを作成できます。C言語ならc.snippets、pythonならpy.snippetsといった感じです。

mkdir -p ~/.vim/snippets
cd ~/.vim/snippets
vim c.snippets

次に、c.snippetsの中身を書きます。スニペットファイルの書き方についてはSnipMateのドキュメントSnipMate.txtにいろいろ書いてあります。今回は以下のようにしてみました。空白ではなくタブ文字を用いるので注意してください。

c.snippets
snippet hello
	#include<stdio.h>
	
	int main(void){
		printf("Hello world!\n");
		return 0;
	}

snippet for
	for(int $1 = 0; $1 < $2; $1++){
		$0
	}

上記のファイルでは、helloと入力した後にTabキーを押すとHello world!と表示するプログラムを挿入し、forと入力した後にTabキーを押すとfor文を挿入するように設定しています。タブストップやミラーを設定することもでき、forのスニペット挿入後にTabキーを押すと、$1、$2の順で入力することができます。入力後のカーソル位置は$0の場所となります。

パーサ変更

デフォルトだと古いSnipMateパーサを使うので、以下をvimrcに追記して新しいバージョンのパーサを使うようにします。

let g:snipMate = { 'snippet_version' : 1 }

完了

私の環境では以上で動きました。スニペット系の他のプラグインは使ったことないんですが、何を使うのが普通なんですかね。私はSnipMateで満足しているので、しばらくは使わせてもらおうと思っています。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?