vimrc

注意

この記事はobsoleteです。あたらしいvimrcが僕がMacBookで必ず使う43のソフトウェア達にありますのでそちらをご参照ください。

なんだか最近vimrcとか、環境をさらすのがはやってるらしいね。というわけで公開いたします。検索から来た人の役に少しでも立ってくれれば、と。
かなり特殊なところが多い・・・ですが、とてもおもしろい部分も多いと思うので是非見てやってください。あ、でも変なこともしてるので理解せずそのまま使うのはあんまりおすすめできない・・・かも。
あ、あとDebianでしか試してないんで、Fedoraだとここはこうだよ、的なことがあったら是非教えてください。

vimrc(このエントリ)・zshrcscreenrc

スクリーンショット

vimrc

.vimrc

 


” .vimrc


” kcrt <kcrt kcrt.net>



scriptencoding

 utf

8


setnocompatible” 拡張機能を有効にする


” —– 最初から入ってる奴 ———————–


if

 &t_Co

>2||has(“gui_running”)” カラーディスプレイ


syntaxon


endif


filetypepluginindenton


augroup

 vimrcEx

autocmdFileType

 text

setlocaltextwidth

=78

autocmdBufReadPost

 *

¥if

 line(

“‘¥””

)

>0&&

 line(

“‘¥””

)

<=

 line(

“$”

) |

¥

   exe

“normal g`¥””

 |

¥endif


augroup

 END

" ===== ユーザーインターフェース関係 =============

” —– 設定 ————————————-


setbackspace

=2

” <BS>の動作設定


sethistory

=50

” :コマンドの履歴数


setshowcmd” コマンド表示


setlaststatus

=2

” 最下部情報行の行数


setstatusline

=%h%w%f¥ %m%#RO#%r%#StatusLine#%y%{'['.(&fenc!=''?&fenc

:

&enc).']['.&ff.']'}%=%4v¥ %l/%L¥ (%p%%)

sethlsearch” 検索時ハイライト有効


” —– マウス ———————————–


if

 &term

==“screen”


setmouse

=a

” マウス有効


setttymouse

=xterm2

endif


” —– タブインターフェース(またはバッファ) —–


map

 Q gq

” C-Tabでタブが使えるときはタブを切り替え


” 使えない場合はバッファの切り替えを行う


if(

exists

(“:tab”))


nmap<C-Tab>

       :tabn

<CR>


nmap<C-S-Tab>

     :tabprev

<CR>


else


nmap<C-Tab>

       :bn

<CR>


nmap<C-S-Tab>

     :bp

<CR>


endif


“C-→とC-←をC-Tab, C-S-Tabと同様の操作にする


nmap^[

[C

<C-Tab>


nmap^[

[D

<C-S-Tab>


” タブラインの表記


settabline

=%!MyTabLine()

“後述


” —– コマンド略記——————————


ca

 man

help


” —– 補完 ————————————-


setcomplete

 =.

,

w

,

k

,

b

,

u

,

t

,

i

if(

exists

(‘*pumvisible’)&&

 has

(“gui”))


inoremap<expr><CR>

 pumvisible() ? "

¥<c-y>

" : "

¥<c-g>

u

¥<cr>

"

inoremap<expr><Esc>

 pumvisible() ? "

¥<C-E>

":"

¥<Esc>

"

” inoremap <expr> <c-n> pumvisible() ? “¥<lt>c-n>” : “¥<c-n>¥<c-r>=pumvisible() ? ¥”¥¥<lt>down>¥” : ¥”¥”¥<lt>cr>”


endif


if(

exists

(‘&omnifunc’))


imap<C-Space><C-X><C-O>


else


imap<C-Space><C-N>


endif


” —– その他のキー設定 ————————-


map<F1>

 K

nnoremap<UP>

 gk

nnoremap<DOWN>

 gj

" ===== 編集に関連する設定 =======================

” —– 文字エンコードの設定 ———————


setfileencodings

=utf-8

,

shift_jis

,

euc-jp

setfileencoding

=utf-8

” デフォルトのファイルエンコーディング


setambiwidth

=double

” 幅未定義MBSCの幅


” —– 親切設定 ———————————


setshowmatch” 対応する括弧を強調表示


setdisplay

=lastline

” @@@表示


” —– 検索 ————————————-


setincsearch” インクリメンタルサーチ


setignorecase” 検索時大文字・小文字無効


setsmartcase” 検索時大文字・小文字自動判別


” 見つかったアイテムを自動的に中央に


nmap

 n nzz

nmap

 N Nzz

” —– タブとインデント ————————-


settabstop

=4

” <Tab>に対応する空白数


setshiftwidth

=4

” インデントに使われる空白数


setsofttabstop

=4

” タブとして使われる空白数


setautoindent” 自動インデント


setsmartindent” スマートインデント


" ===== 動作設定 =================================

” —– バックアップ —————————–


setbackup” バックアップ有効


 TODO

:フォルダがあるかどうか調べる


ifhas(“win32”)


setbackupdir

=d

:

/kt/Backup

else


setbackupdir

=~/.backup

endif


” —– クリップボード —————————


nmap<C-R>

*

<C-O>

"*p

nmap

 "*yy   V"*y

ifhas(“win32unix”)” cygwinの事です


nnoremap

 "*p :r!getclip

<CR>


vnoremap

 "*y :!putclip

<CR>

u:echo 'copyed'

<CR>


elseifhas(“unix”)


if$TERM==“screen”


nnoremap

 "*p  i

<C-O>

:!screen -X paste .

<CR>


vnoremap

 "*y  :w! ~/tmp/vim-clipboard

<CR>

:!screen -X readbuf ~/tmp/vim-clipboard

<CR>

:echo 'copyed'

<CR>


else


nnoremap

 "*p  :r ~/tmp/vim-clipboard

<CR>


vnoremap

 "*y  :w! ~/tmp/vim-clipboard

<CR>

:echo copyed'

<CR>


endif


endif


” —– screen関係の設定 ————————-


if

 &term

=~“screen”


augroup

 IsTerminal

autocmdVimLeave

 *

silent

! exe

‘!echo -n “^[k’.

  &

shell.‘^[¥¥”‘


autocmdBufEnter

 *

silent

! exe

‘!echo -n “^[k’.“vim:%”.‘^[¥¥”‘


augroup

 END

endif


" ===== 印刷設定 =================================

” set printfont=”ヒラギノ” -> gvimrc


" ===== ファイル関連設定 =========================

” —– テンプレート —————————–


augroup

 LoadTemplate

autocmdBufNewFile

 *.pl

0

r ~/etc/template/template

.

pl

autocmdBufNewFile

 *.php

0

r ~/etc/template/template

.

php

autocmdBufNewFile

 *.cpp

0

r ~/etc/template/template

.

cpp

autocmdBufNewFile

 *.h

0

r ~/etc/template/template

.h


augroup

 END

” —– ファイル別設定 —————————


augroup

 filetypedetect

autocmdBufNewFile

,

BufRead

 *.txt :

setf

 txt

autocmdBufNewFile

,

BufReadPre

 *.howm :

setfileformats

=dos

,

unix

autocmdBufNewFile

,

BufReadPost

 *.pl :

setfiletype

=perl

autocmdBufNewFile

,

BufReadPost

 *.pm :

setfiletype

=perl

autocmdBufNewFile

,

BufRead

 *.pl :map

<F5>

 :!perl

%:p

<CR>

autocmdBufNewFile

,

BufRead

 *.pm :map

<F5>

 :!perl

%:p

<CR>

autocmdBufNewFile

,

BufRead

 *.php :map

<F5>

 :!php

%:p

<CR>

autocmdBufNewFile

,

BufRead

 *.tex :map

<F5>

 :

call

 PreviewTeX()

<CR>


augroup

 END

let

 php_baselib

=1


let

 php_htmlInString

=1


let

 php_folding

=1


" ===== プラグイン設定 ===========================

” —– howm ————————————-


ifhas(“win32”)


let

 g:howm_dir

=“d:/kt/howm/”


else


let

 g:howm_dir

=“~/howm/”


endif


let

 g:howm_filename

=“%Y-%m.howm”


let

 g:howm_fileencoding

=“utf-8”


let

 g:howm_removeEmpty

=1


let

 g:howm_instantpreview

=1


” —– PHPManual ——————————–


auBufNewFile

,

BufRead

 *.php

map

 K ¥P

” —– その他のプラグイン ———————–


runtime

 ftplugin/man

.vim


let

 keisen_type

=2


" ===== 色設定 ===================================

sett_Co

=16

ifhas(“gui”)

gui

endif


colorscheme

 torte

” —– 色の宣言(上書き) ————————-


hi

 StatusLine

guibg

=

#4242ffguifg

=white

gui

=

bold


hi

 Title

guibg

=lightblue

guifg

=white

ctermbg

=lightblue

ctermfg

=white

gui

=

bold


hi

 Comment

ctermfg

=darkgreen

guifg

=lightgreen

hi

 Statement

guifg

=lightyellow

hi

 Type

ctermfg

=blue

guifg

=lightcyan

hi

 Label

guifg

=

#eeee55guibg

=

#333300ctermbg

=darkyellow

ctermfg

=white

hi

 Pmenu

ctermbg

=darkgray

ctermfg

=white

guibg

=darkgray

guifg

=white

hi

 PmenuSel

ctermbg

=lightblue

ctermfg

=white

guibg

=lightblue

guifg

=white

hi

 PmenuSbar

ctermbg

=darkgray

ctermfg

=lightgray

guibg

=darkgray

guifg

=lightgray

hi

 PmenuThumb

ctermbg

=darkgray

ctermfg

=lightgray

guibg

=darkgray

guifg

=lightgray

hi

 TabLine

ctermbg

=black

ctermfg

=darkgray

gui

=

bold


hi

 TabLineFill

ctermbg

=darkgray

ctermfg

=black

gui

=

underline


hi

 TabLineSel

ctermbg

=blue

ctermfg

=white

” —– 色の宣言(オリジナル) ———————


hi

 Label2

guifg

=

#e0b611ctermfg

=yellow

hi

 Label3

guifg

=

#b08d33ctermfg

=darkyellow

hi

 Bold

gui

=

bold


hi

 Italic

gui

=

italic


hi

 Striken

guifg

=

#ddddddctermfg

=gray

hi

 HR

guifg

=gray

ctermfg

=darkgray

hi

 SuperHR

guifg

=lightgray

guibg

=darkcyan

gui

=

italicctermfg

=lightgray

ctermbg

=blue

hi

 Citation

guibg

=

#222200guifg

=lightyellow

ctermbg

=darkyellow

ctermfg

=black

hi

 TabCloseBox

ctermbg

=darkred

ctermfg

=white

hi

 RO

ctermbg

=red

ctermfg

=white

guifg

=white

guibg

=magenta

” —– 文法定義(見出し) ————————-


auSyntax

 *

syntaxmatch

 Label

display“^¥* .*”


auSyntax

 *

syntaxmatch

 Label2

display“¥t¥* .*”


auSyntax

 *

syntaxmatch

 Label3

display“¥t¥t¥* .*”


auSyntax

 *

syntaxmatch

 Label2

display“^[¥t  ]*[・□■○●][^・].*”


auSyntax

 *

syntaxmatch

 Label

display“^[・□■○●][^・].*”


auSyntax

 *

syntaxmatch

 Label2

display“^[¥t  ]*¥*¥* .*”


auSyntax

 *

syntaxmatch

 Label3

display“^[¥t  ]*¥*¥*¥* .*”


” au Syntax * syntax match HR display “.*—–.*”


auSyntax

 * syntax match SuperHR display ".*=====.*"

” —– 文法定義(ハイライト) ———————


auSyntax

 *

syntaxmatch

 Bold

display“¥*¥*.*¥*¥*”


auSyntax

 *

syntaxmatch

 Bold

display<b>.*<¥/b>”


auSyntax

 *

syntaxmatch

 Italic

display“__.*__”


auSyntax

 *

syntaxmatch

 Italic

display<i>.*<¥/i>”


auSyntax

 *

syntaxmatch

 Striken

display<s>.*<¥/s>”


auSyntax

 * syntax region Citation display start=".*>>>" end="<<<"

" ===== 以下、関数 ===============================

” —– タブライン ——————————-


function

 MyTabLine

()


let

 s

=


let

 tabname

=


for

 i

inrange(

tabpagenr

(‘$’))


let

 tabname

=(

i

+1).‘:’.bufname(

tabpagebuflist

(

i

+1)

[tabpagewinnr

(

i

+1)1

]

)


let

 s

.=‘%’.(

i

+1).‘T’“マウスクリック用


if

 i

+1==tabpagenr()


let

 s

.=‘%#TabLineSel#/ ‘.

 tabname

.‘ %#TabCloseBox#%999X[X]%X%#TabLineSel# ¥’


else


let

 s

.=‘%#TabLine#/ ‘.

 tabname

.‘ %’.(

i

+1).‘X[X]%X ¥’


endif


endfor


let

 s

.=‘%#TabLineFill#%T%=vim 7.0’


return

 s

endfunction


function

 PreviewTeX

()


exec“!platex -kanji=utf8 -output-directory=”.

 &backupdir

.” “.

 expand

(“%:p”)


exec“silent ! start “.

 &backupdir

.“/”.

 expand

(“%:t:r”).“.dvi”


endfunction



					

コメントを残す