PHPファイルを新規で書く時に、いちいちhtml
を打つのがめんどくさかったので.vimrc
を編集して、autocmd
を使ってhtml
を自動で読み込むようにしました。
目次
やり方
まずはテンプレートファイルを設定しましょう
例えば~/.vim/skelton/php.txt
に以下のように設定します
<?php?><!DOCTYPE html><htmllang="ja"><head><metacharset="utf-8"><title></title></head><body></body></html>
その後にユーザー設定ファイル~/.vimrc
もしくはグローバル設定ファイル/etc/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
という文字列が入らないようにしているのはlaravel
のview
ファイルはcakephp
と違って
拡張子が.blade.php
となっているからです
laravel
ファイルでは@extends('layouts.app')
みたいに読み込むのでhtml
を自動で読み込ませた場合は消す必要があるのでかえって面倒です。
laravel
を使用しない場合は*.php
に読み替えて記述してください!
もちろんこれは複数設定できるので同じようにしてpython
やgo
などでも分けることができます
ファイルパターン
記号 | 説明 |
---|---|
* | あらゆる文字の列にマッチ。注意: パス区切り文字も含まれる。 |
? | あらゆる1文字にマッチ |
\? | '?' にマッチ |
. | '.' にマッチ |
~ | '~' にマッチ |
, | パターンを分割する |
\, | ',' にマッチ |
{ } | pattern の ( ) と同様 |
, | ('{' '}' の内側では) pattern の \ |
} | リテラルの } |
{ | リテラルの { |
\{n,m} | pattern の {n,m} と同様 |
\ | pattern で使われるものと同様の特別な意味を持つ |
[ch] | 'c' または 'h' にマッチ |
[^ch] | 'c' と 'h' 以外の文字にマッチ |
おすすめのautocmd
autocmd
を使えば
特定のファイルのタブスペースを変更させたり、特定のファイルを開いた時に関数にカーソルを持って行ったりできるので、是非マスターしてください
便利だなと思うのは以前開いていた位置にカーソルを戻してくれる設定
です
これも同様にvim設定ファイルに記述してください
function!s:RestoreCursorPosition()if line("'\"")<= line("$")
normal!g`"
return1endifendfunction" ファイルを開いた時に、以前のカーソル位置を復元する
augroup vimrc_restore_cursor_position
autocmd!
autocmd BufWinEnter * calls: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