【ネタ】_vimrcを書き出すバッチファイル

#_vimrcファイルを書き出すbatファイル
ついでにNeoBundleもインストールさせてみるテスト

結論から言うと「こんなもの書かずにgitで管理しろ」って言うのが正解。

##動作
実行すると%userprofile%（たぶん7だとC:\Users\ユーザー名）に_vimrcファイルを作成
追加でNeoBundleをインストール可能（要git）
もともと_vimrcがあった場合は消さずに一番下に追加していく対応
動作対象はWin7
Mac?知らない

生成される_vimrcはこんな感じ
NeoBundleもインストールするとその下にNeoBundleの設定も追加する。

追加で書いてあるスクリプトは

- 全角スペースの可視化
- 日付の挿入
- 時刻の挿入

になってます


```vim:_vimrc
"Generate VimSetup.Bat @KORYUOH 
"Generate By 2014/10/18 

"スワップファイルはいらない 
set noswapfile 
"バックアップファイルもいらない 
set nobackup 
"undoファイルも作らない 
"set noundofile 
 
"表示タブ幅 
set tabstop=4 
"挿入タブ幅 
set shiftwidth=4 
"タブをスペースに展開しない 
set noexpandtab 
"行番号表示 
set number 
"長い行の折り返しをしない 
set nowrap 
"指定文字数を超えた場合、空白の跡で折り返さない 
set textwidth=0 
"カーソル行の色を変える 
set cursorline 
 
"ウィンドウの上下端でカーソル先の視界をいくつ確保するか 
set scrolloff=8 
"ウィンドウの左右端でカーソル先の司会をいくつ確保するか 
set sidescrolloff=16 
"左右端でスクロールが発生したときに何文字スクロールさせるか 
set sidescroll=1 

"インクリメント/デクリメントを0埋めされてても10進数として増減させる 
set nf= 
 
"日付の挿入 
nmap <F5> <ESC>a<C-R>=strftime("%Y/%m/%d")<CR><ESC> 
 
"時間の挿入 
nmap <F6> <ESC>a<C-R>=strftime("%H:%M")<CR><ESC> 
 
"全角スペースの表示 
function! WideSpace() 
	highlight WideSpace cterm=underline ctermfg=lightblue guibg=darkgray 
endfunction 
 
if has('syntax') 
	augroup WideSpace 
		autocmd! 
		autocmd ColorScheme * call WideSpace() 
		"autocmd VimEnter,WinEnter,BufRead * let w:m1=matchadd('WideSpace' , '　') 
		autocmd VimEnter,WinEnter,BufRead * match WideSpace /　/ 
	augroup END 
	call WideSpace() 
endif 
```

```vim:NeoBundle追加分
 
"=============================================================================== 
"NEOBUNDLEの設定 
"=============================================================================== 
" vim起動時のみruntimepathにneobundle.vimを追加 
if has('vim_starting') 
set nocompatible 
set runtimepath+=~/.vim/neobundle/neobundle.vim 
endif 
 
" neobundle.vimの初期化 
call neobundle#begin(expand('~/.vim/neobundle')) 
" NeoBundleを更新するための設定 
NeoBundleFetch 'Shougo/neobundle.vim' 
" neobundle.vimの初期化終了 
call neobundle#end() 
 
" 読み込むプラグインを記載 
NeoBundle 'Shougo/unite.vim' 
NeoBundle 'itchyny/lightline.vim' 
NeoBundle 'ujihisa/unite-colorscheme' 
NeoBundle 'mattn/flappyvird-vim' 
 
" 読み込んだプラグインも含め、ファイルタイプの検出、ファイルタイプ別プラグイン/インデントを有効化する 
filetype plugin indent on 
 
" インストールのチェック 
NeoBundleCheck 
```

##実装
それでは中身

```vim:VimSetUp.bat
@echo off
rem _/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
rem @brief	vimrcファイルを作成してついでにNeoBundleもインストールするbat
rem @author	KORYUOH
rem @Create 2014/10/18
rem @Update 2014/10/18
rem @Version 1.00
rem _/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
title VimSetup

echo _vimrcを生成します。
echo 追加でNEOBUNDLE をインストールしますか？(y/n)
set /p pushKey=""

cd %userprofile%

if exist _vimrc (goto APPEND) else goto INITIALIZE

:INITIALIZE

type nul > _vimrc

:APPEND
echo ^"Generate VimSetup.Bat @KORYUOH >>_vimrc
echo ^"Generate By %DATE% >>_vimrc
echo.>>_vimrc
echo ^"スワップファイルはいらない >>_vimrc
echo set noswapfile >>_vimrc
echo ^"バックアップファイルもいらない >>_vimrc
echo set nobackup >>_vimrc
echo ^"undoファイルも作らない >>_vimrc
echo ^"set noundofile >>_vimrc
echo. >>_vimrc
echo ^"表示タブ幅 >>_vimrc
echo set tabstop=4 >>_vimrc
echo ^"挿入タブ幅 >>_vimrc
echo set shiftwidth=4 >>_vimrc
echo ^"タブをスペースに展開しない >>_vimrc
echo set noexpandtab >>_vimrc
echo ^"行番号表示 >>_vimrc
echo set number >>_vimrc
echo ^"長い行の折り返しをしない >>_vimrc
echo set nowrap >>_vimrc
echo ^"指定文字数を超えた場合、空白の跡で折り返さない >>_vimrc
echo set textwidth=0 >>_vimrc
echo ^"カーソル行の色を変える >>_vimrc
echo set cursorline >>_vimrc
echo. >>_vimrc
echo ^"ウィンドウの上下端でカーソル先の視界をいくつ確保するか >>_vimrc
echo set scrolloff=8 >>_vimrc
echo ^"ウィンドウの左右端でカーソル先の司会をいくつ確保するか >>_vimrc
echo set sidescrolloff=16 >>_vimrc
echo ^"左右端でスクロールが発生したときに何文字スクロールさせるか >>_vimrc
echo set sidescroll=1 >>_vimrc
echo.>>_vimrc
echo ^"インクリメント/デクリメントを0埋めされてても10進数として増減させる >>_vimrc
echo set nf= >>_vimrc
echo. >>_vimrc

echo ^"日付の挿入 >>_vimrc
echo nmap ^<F5^> ^<ESC^>a^<C-R^>=strftime(^"%%Y/%%m^/%%d^")^<CR^>^<ESC^> >>_vimrc
echo. >>_vimrc
echo ^"時間の挿入 >>_vimrc
echo nmap ^<F6^> ^<ESC^>a^<C-R^>=strftime(^"%%H:%%M^")^<CR^>^<ESC^> >>_vimrc
echo. >>_vimrc
echo ^"全角スペースの表示 >>_vimrc
echo function! WideSpace() >>_vimrc
echo 	highlight WideSpace cterm=underline ctermfg=lightblue guibg=darkgray >>_vimrc
echo endfunction >>_vimrc
echo. >>_vimrc
echo if has('syntax') >>_vimrc
echo 	augroup WideSpace >>_vimrc
echo 		autocmd! >>_vimrc
echo 		autocmd ColorScheme * call WideSpace() >>_vimrc
echo 		^"autocmd VimEnter,WinEnter,BufRead * let w:m1=matchadd('WideSpace' , '　') >>_vimrc
echo 		autocmd VimEnter,WinEnter,BufRead * match WideSpace /　/ >>_vimrc
echo 	augroup END >>_vimrc
echo 	call WideSpace() >>_vimrc
echo endif >>_vimrc
echo. >>_vimrc

if "%pushkey%" == "y" goto NEOBUNDLE
if "%pushkey%" == "Y" goto NEOBUNDLE
if "%pushkey%" == "yes" goto NEOBUNDLE
if "%pushkey%" == "YES" goto NEOBUNDLE

goto EOF

:NEOBUNDLE

mkdir ".vim/neobundle"
cd ".vim/neobundle"

git clone git://github.com/Shougo/neobundle.vim 

cd ../..


echo ^"=============================================================================== >>_vimrc
echo ^"NEOBUNDLEの設定 >>_vimrc
echo ^"=============================================================================== >>_vimrc
echo ^" vim起動時のみruntimepathにneobundle.vimを追加 >>_vimrc
echo if has('vim_starting') >>_vimrc
echo set nocompatible >>_vimrc
echo set runtimepath+=~/.vim/neobundle/neobundle.vim >>_vimrc
echo endif >>_vimrc
echo. >>_vimrc
echo ^" neobundle.vimの初期化 >>_vimrc
echo call neobundle#begin(expand('~/.vim/neobundle')) >>_vimrc
echo ^" NeoBundleを更新するための設定 >>_vimrc
echo NeoBundleFetch 'Shougo/neobundle.vim' >>_vimrc
echo ^" neobundle.vimの初期化終了 >>_vimrc
echo call neobundle#end() >>_vimrc
echo. >>_vimrc
echo ^" 読み込むプラグインを記載 >>_vimrc
echo NeoBundle 'Shougo/unite.vim' >>_vimrc
echo NeoBundle 'itchyny/lightline.vim' >>_vimrc
echo NeoBundle 'ujihisa/unite-colorscheme' >>_vimrc
echo NeoBundle 'mattn/flappyvird-vim' >>_vimrc
echo. >>_vimrc
echo ^" 読み込んだプラグインも含め、ファイルタイプの検出、ファイルタイプ別プラグイン/インデントを有効化する >>_vimrc
echo filetype plugin indent on >>_vimrc
echo. >>_vimrc
echo ^" インストールのチェック >>_vimrc
echo NeoBundleCheck >>_vimrc





goto EOF

:EOF
```