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

ファイルパスと拡張子で設定を変えるVim scriptを書いた

$
0
0

プロジェクト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

Viewing all articles
Browse latest Browse all 5608

Trending Articles