3
1

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 5 years have passed since last update.

vimでautocmdを使ってテンプレートを自動で読み込ませる

Posted at

PHPファイルを新規で書く時に、いちいちhtmlを打つのがめんどくさかったので
.vimrcを編集して、autocmdを使ってhtmlを自動で読み込むようにしました。

目次

やり方
解説
ファイルパターン
おすすめのautocmd

やり方

まずはテンプレートファイルを設定しましょう
例えば~/.vim/skelton/php.txtに以下のように設定します

~/.vim/skelton/php.txt
<?php
?>
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="utf-8">
<title>
</title>
</head>
<body>
</body>
</html>

その後にユーザー設定ファイル~/.vimrcもしくはグローバル設定ファイル/etc/vimrc
このように記述してください

~/.vimrc
autocmd BufNewFile [{blade}].php 0r $HOME/.vim/skelton/php.txt

このようにすることでvimを使えば
phpを記述したい場合はoを打てば改行して入力モードに入るし
bodyを記述したい場合は9jで9行下がってoだし
titleを設定したい場合は、6jで6行下がって、
oで入力し、ctr+cで入力モードを抜けて、Jでタイトルタグを横並びにすれば良い
これで煩わしい典型文を書かなくて済むし、何より時短になりますね

解説

軽く解説をすると、BufNewFileで新しいファイルを読み込んだ時って意味です
0r filepathでファイルパスのスケルトンファイルを読み込むようになってます

ファイルパスを適切に設定することでbladeという文字列が入らないphpファイルには
先ほどのテンプレートが読み込まれることになります

ここでbladeという文字列が入らないようにしているのはlaravelviewファイルはcakephpと違って
拡張子が.blade.phpとなっているからです

laravelファイルでは@extends('layouts.app')みたいに読み込むので
htmlを自動で読み込ませた場合は消す必要があるのでかえって面倒です。

laravelを使用しない場合は*.phpに読み替えて記述してください!

もちろんこれは複数設定できるので同じようにしてpythongoなどでも分けることができます

ファイルパターン

記号 説明
* あらゆる文字の列にマッチ。注意: パス区切り文字も含まれる。
? あらゆる1文字にマッチ
? '?' にマッチ
. '.' にマッチ
~ '~' にマッチ
, パターンを分割する
, ',' にマッチ
{ } pattern の ( ) と同様
, ('{' '}' の内側では) pattern の | と同様
} リテラルの }
{ リテラルの {
\{n,m} pattern の {n,m} と同様
\ pattern で使われるものと同様の特別な意味を持つ
[ch] 'c' または 'h' にマッチ
[^ch] 'c' と 'h' 以外の文字にマッチ

おすすめのautocmd

autocmdを使えば
特定のファイルのタブスペースを変更させたり、特定のファイルを開いた時に関数にカーソルを持って行ったりできるので、是非マスターしてください

便利だなと思うのは**以前開いていた位置にカーソルを戻してくれる設定**です
これも同様にvim設定ファイルに記述してください

~/.vimrc
function! s:RestoreCursorPosition()
  if line("'\"") <= line("$")
    normal! g`"
    return 1
  endif
endfunction
" ファイルを開いた時に、以前のカーソル位置を復元する
augroup vimrc_restore_cursor_position
  autocmd!
  autocmd BufWinEnter * call s:RestoreCursorPostion()
augroup END

公式ドキュメント
https://vim-jp.org/vimdoc-ja/autocmd.html
https://vim-jp.org/vimdoc-en/autocmd.html
参考
http://vim.wikia.com/wiki/Restore_cursor_to_file_position_in_previous_editing_session

3
1
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
3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?