プロジェクトAのPHPはtab
プロジェクトBのPHPは半角空白4つ
という状況で交互に作業している時に一々切り替えるのが面倒くさかった
パスに応じて自動で切り替える設定やプラグインを探したが見つからないので書いた
※既存のものが絶対あるはずなので知ってたら教えてください
ZZZはファイル名は判別できるがパスの判別はできない
autocmd BufNewFile,BufRead ZZZ.txt XXXXXXX...
もし↓↓↓のような書き方ができるなら自分は今日は2時間無駄にした事となる
autocmd BufNewFile,BufRead project1/**/ZZZ.txt XXXXXXX...
GitHub
https://github.com/naoyuki1019/vim-lsoffep
設定ファイルを作る
"~/.vim/lsoffep_setting.vimrc
let g:lsoffep = {
\ 'ファイルのフルパスに含まれる文字列(部分一致・正規表現)':{
\ '拡張子に含まれる文字列(部分一致・正規表現)': 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX',
\},
\ 'projects/HelloWold':{
\ '^php': 'noexpandtab',
\ '^js$': 'expandtab tabstop=2 softtabstop=0 shiftwidth=2',
\ '^css$': 'expandtab tabstop=2 softtabstop=0 shiftwidth=2',
\},
\ 'projects/eccube3.0':{
\ 'php': 'expandtab tabstop=4 softtabstop=0 shiftwidth=4',
\ '^twig$': 'expandtab tabstop=2 softtabstop=0 shiftwidth=2',
\ 'css': 'expandtab tabstop=2 softtabstop=0 shiftwidth=2',
\},
\}
~/.vimrcに追記
"~/.vimrc
" 追加
let g:lsoffep_filepath = '~/.vim/lsoffep_setting.vimrc'
"let g:lsoffep_check = 1
" your default settings
augroup your_augroup
autocmd!
" 拡張子毎の共通設定
autocmd BufNewFile,BufRead *.txt setlocal XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
autocmd BufNewFile,BufRead *.js setlocal XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
autocmd BufNewFile,BufRead *.css setlocal XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
" 追加(拡張子毎の共通設定の後に追加)
autocmd BufNewFile,BufRead * call lsoffep#localsetting()
augroup END