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

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

$
0
0

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

目次

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

やり方

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

~/.vim/skelton/php.txt
<?php?><!DOCTYPE html><htmllang="ja"><head><metacharset="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`"
    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


Viewing all articles
Browse latest Browse all 5697

Trending Articles



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