VimScriptでHashTableを実装する

 | 

2008-09-10

.vimrcを晒す

23:48

!!gitでconfig/.vimrcとして置いた。下は古い情報。

githubとやらを使って常に最新情報を複数のPCで共有したいのだけど、とりあえずここにかもしておく。Vim Scriptを勉強してもっと変態的にしたい。

Windows XP (on Let'sNote R7), GVIM

"----------------------------------------------
"My Settings
" Alignを日本語環境で使用するための設定
"let g:Align_xstrlen = 3
" 実際には、この設定は完璧には機能していないようなので、
" 現段階では設定を追加しなくても良いと思います。 -> コメントアウト

" 文字コードの自動認識{{{ 
if &encoding !=# 'utf-8'
  set encoding=japan
  set fileencoding=japan
endif
if has('iconv')
  let s:enc_euc = 'euc-jp'
  let s:enc_jis = 'iso-2022-jp'
  " iconvがeucJP-msに対応しているかをチェック
  if iconv("\x87\x64\x87\x6a", 'cp932', 'eucjp-ms') ==# "\xad\xc5\xad\xcb"
    let s:enc_euc = 'eucjp-ms'
    let s:enc_jis = 'iso-2022-jp-3'
  " iconvがJISX0213に対応しているかをチェック
  elseif iconv("\x87\x64\x87\x6a", 'cp932', 'euc-jisx0213') ==# "\xad\xc5\xad\xcb"
    let s:enc_euc = 'euc-jisx0213'
    let s:enc_jis = 'iso-2022-jp-3'
  endif
  " fileencodingsを構築
  if &encoding ==# 'utf-8'
    let s:fileencodings_default = &fileencodings
    let &fileencodings = s:enc_jis .','. s:enc_euc .',cp932'
    let &fileencodings = &fileencodings .','. s:fileencodings_default
    unlet s:fileencodings_default
  else
    let &fileencodings = &fileencodings .','. s:enc_jis
    set fileencodings+=utf-8,ucs-2le,ucs-2
    if &encoding =~# '^\(euc-jp\|euc-jisx0213\|eucjp-ms\)$'
      set fileencodings+=cp932
      set fileencodings-=euc-jp
      set fileencodings-=euc-jisx0213
      set fileencodings-=eucjp-ms
      let &encoding = s:enc_euc
      let &fileencoding = s:enc_euc
    else
      let &fileencodings = &fileencodings .','. s:enc_euc
    endif
  endif
  " 定数を処分
  unlet s:enc_euc
  unlet s:enc_jis
endif
" 日本語を含まない場合は fileencoding に encoding を使うようにする
if has('autocmd')
  function! AU_ReCheck_FENC()
    if &fileencoding =~# 'iso-2022-jp' && search("[^\x01-\x7e]", 'n') == 0
      let &fileencoding=&encoding
    endif
  endfunction
  autocmd BufReadPost * call AU_ReCheck_FENC()
endif
" 改行コードの自動認識
set fileformats=unix,dos,mac
" □とか○の文字があってもカーソル位置がずれないようにする
if exists('&ambiwidth')
  set ambiwidth=double
endif

" フォント設定 from http://memo.xight.org/2007-11-01-2
if has("gui_win32")
    " set guifont=MS_ゴシック:h9:cSHIFTJIS
    set guifont=meiryo:h16:cSHIFTJIS
    " set guifont=メイリオ:h9:cSHIFTJIS
    set printfont=MS_ゴシック:h10:cSHIFTJIS
    " set printfont=メイリオ:h10:cSHIFTJIS
    autocmd GUIEnter * winpos 200 100
    autocmd GUIEnter * winsize 100 50
endif

"}}}


"""""""""""""""""""""""plugin settings""""""""""""""""""""""""""""
" vim-latex
" REQUIRED. This makes vim invoke latex-suite when you open a tex file.
filetype plugin on

" IMPORTANT: win32 users will need to have 'shellslash' set so that latex
" can be called correctly.
" \ -> /
set shellslash

" IMPORTANT: grep will sometimes skip displaying the file name if you
" search in a singe file. This will confuse latex-suite. Set your grep
" program to alway generate a file-name.
set grepprg=grep\ -nH\ $*

" OPTIONAL: This enables automatic indentation as you type.
filetype indent on



" set my options
set dictionary=$VIM/dict/java14.dict
set cursorline
set tabstop=4
set shiftwidth=4
set autoindent
"set backupdir=$VIM/tmp
set noswapfile
set incsearch
set nowrapscan




" autocomplete (, [, {, ", '
" たまに邪魔. 
inoremap () ()<LEFT>
inoremap <> <><LEFT>
inoremap {} {}<LEFT>
inoremap [] []<LEFT>
inoremap '' ''<LEFT>
inoremap "" ""<LEFT>

" hjkl move in insert mode
" inoremap <C-j> <DOWN>
" inoremap <C-k> <UP>
" inoremap <C-l> <RIGHT>
" inoremap <C-h> <LEFT>


" When searching, always move the cursor to center of window
nnoremap n nzz
nnoremap N Nzz
nnoremap * *zz
nnoremap # #zz
nnoremap g* g*zz
nnoremap g# g#zz


" <Esc>
inoremap <C-@> <Esc>
vnoremap <C-@> <Esc>
cnoremap <C-@> <Esc>

nnoremap <C-Space> <Esc>
inoremap <C-Space> <Esc>
vnoremap <C-Space> <Esc>
cnoremap <C-Space> <Esc>


" window間の移動、拡大縮小
nnoremap <space>j <C-W>j
nnoremap <space>k <C-W>k
nnoremap <space>h <C-W>h
nnoremap <space>l <C-W>l
nnoremap <space>+ <C-W>5+
nnoremap <space>- <C-W>5-
nnoremap <space>> <C-W>3>
nnoremap <space>< <C-W>3<

"Ruby
nnoremap <space>r :<C-u>!ruby %<CR>


" 矢印キーでバッファ操作
"nnoremap <DOWN>  :<C-u>bdelete<CR>
nnoremap <UP>    :<C-u>ls<CR>
nnoremap <RIGHT> :<C-u>bnext<CR>
nnoremap <LEFT>  :<C-u>bprevious<CR>


" Tab。C-tの避難:戻る挙動はC-[に割り当てる(↑)
nnoremap <C-t> :tabedit
nnoremap <C-Tab> :tabNext<CR>
nnoremap <C-S-Tab> :tabPrevious<CR>
nnoremap <C-[> <C-t>

" ujihisa流、保存と終了
nnoremap <space>w :<C-u>write<CR>
nnoremap <space>q :<C-u>quit<CR>

" 検索ハイライトを消す
nnoremap <ESC><ESC> :^Unohlsearch<CR>
" 空白行を追加する操作を1ストロークでやりたい
nnoremap <C-o> o<ESC>k

" 移動は常に表示ラインでの移動。
noremap j gj
noremap k gk
noremap 0 g0
noremap $ g$

" kana1さんの設定から
let mapleader=','
inoremap <Leader>df <C-R>=strftime('%Y-%m-%dT%H:%M:%S+09:00')<CR>
inoremap <Leader>dd <C-R>=strftime('%Y-%m-%d')<CR>
inoremap <Leader>dt <C-R>=strftime('%H:%M:%S')<CR>
" Copy/Paste via clipboard
vnoremap <Leader>cc "+y
vnoremap <Leader>cx "+y<Esc>gvd
nnoremap <Leader>cp "+p


" 文字数カウント
" vnoremap <F1> :s/./&/g<CR> " うまくいかない



" 自動補完 from 
" Vimの自動補完を大文字と数字にも対応させる - Hatena::Diary::Ubuntu 
" <http://d.hatena.ne.jp/Ubuntu/20080124/1201139267>
set completeopt=menuone,preview
function! CompleteWithoutInsert()
	return "\<C-n>\<C-r>=pumvisible() ? \"\\<C-P>\\<C-N>\\<C-P>\": \"\"\<CR>"
endfunction
inoremap <expr> <C-n> pumvisible() ? "\<C-n>" : CompleteWithoutInsert()
let letter = "a"
while letter <=# "z"
	execute 'inoremap <expr> ' letter ' "' . letter . '" . (pumvisible() ? "" : CompleteWithoutInsert())'
	let letter = nr2char(char2nr(letter) + 1)
endwhile
let letter = "A"
while letter <=# "Z"
	execute 'inoremap <expr> ' letter ' "' . letter . '" . (pumvisible() ? "" : CompleteWithoutInsert())'
	let letter = nr2char(char2nr(letter) + 1)
endwhile
let letter = "0"
while letter <=# "9"
	execute 'inoremap <expr> ' letter ' "' . letter . '" . (pumvisible() ? "" : CompleteWithoutInsert())'
	let letter = nr2char(char2nr(letter) + 1)
endwhile
inoremap <expr> <CR> pumvisible() ? "\<C-Y>\<CR>" : "\<CR>"
set lazyredraw

AundreAundre 2011/07/11 01:45 This aritcle went ahead and made my day.

leyvoknleyvokn 2011/07/11 17:45 N7jf6Y <a href="http://munjisvihtnl.com/">munjisvihtnl</a>

jybycmeljybycmel 2011/07/11 22:20 UhVLc6 , [url=http://povinqmpovbw.com/]povinqmpovbw[/url], [link=http://fskujbsukiex.com/]fskujbsukiex[/link], http://luonedkfzbkz.com/

sxjhvehaososxjhvehaoso 2011/07/13 18:09 D9SnpC <a href="http://ghktmkrasfpx.com/">ghktmkrasfpx</a>

queqflpmqueqflpm 2011/07/14 00:08 QAjKa2 , [url=http://tjgyqhqfport.com/]tjgyqhqfport[/url], [link=http://mcipduubqxeq.com/]mcipduubqxeq[/link], http://rqqeuxlanftn.com/

TaimiTaimi 2016/04/30 08:01 That's a crcjekrcaak answer to an interesting question

LynellLynell 2016/05/03 13:19 I like the valuable info you supply in your articles. <a href="http://kigbhhhrym.com">I&271#8;ll</a> bookmark your weblog and test again here regularly. I am quite sure I will be told a lot of new stuff right right here! Best of luck for the following!

ゲスト



トラックバック - http://vim.g.hatena.ne.jp/Hash/20080910
 |