title: 【Neovim】テンプレートと作り方
uuid: 13f47701-b841-4a4e-9c74-37fc3a110657
author: 諏訪子
date: 2024-01-31 00:00:00
category: programming
----
[Zigの使い方第1部を投稿した後、この言語を辞めました。](/blog/zig-gengo-1.xhtml)\
理由は自由にフォーマット出来なかった事です。\
しかし、解決方法を見つけましたが、それが結構面倒くさいと思います:
```zig
// zig fmt: off
// vim: set ts=2 sts=2 sw=2 et:
```
各「.zig」ファイルで上記のコメントを自分で貼る事が必要為、「neovimは自動で追加されたら良いなぁ」と思ったら、やっぱりそれが可能です!
## ~/.config/nvim/init.lua
```lua
vim.api.nvim_exec([[
autocmd BufNewFile *.zig 0r ~/.config/nvim/template.zig
]], false)
```
## ~/.config/nvim/template.zig
```zig
// zig fmt: off
// vim: set ts=2 sts=2 sw=2 et:
const std = @import("std");
```
それで、毎回「`nvim ほげほげ.zig`」で使って新しい「.zig」ファイルを作ったら、自動で上記の行列を追加されます。\
これを好みでしたので、他の言語のテンプレートを作りました。
## ~/.config/nvim/init.lua
```lua
-- テンプレート
vim.api.nvim_exec([[
autocmd BufNewFile *.c 0r ~/.config/nvim/template.c
autocmd BufNewFile *.cc 0r ~/.config/nvim/template.cc
autocmd BufNewFile *.h 0r ~/.config/nvim/template.h
autocmd BufNewFile *.hh 0r ~/.config/nvim/template.hh
autocmd BufNewFile *.go 0r ~/.config/nvim/template.go
autocmd BufNewFile *.md 0r ~/.config/nvim/template.md
autocmd BufNewFile *.zig 0r ~/.config/nvim/template.zig
autocmd BufNewFile *.php 0r ~/.config/nvim/template.php
]], false)
```
### template.c
```c
#include <stdio.h>
```
### template.cc
```cpp
#include <iostream>
```
### template.h
```c
#ifndef _H
#define _H
#endif
```
### template.hh
```cpp
#ifndef _HH
#define _HH
class i {
public:
private:
};
#endif
```
### template.go
```go
package main
import (
)
```
### template.php
```php
<?php
?>
```
以上