" load external file " if filereadable(expand('~/.dotfiles/vimrc')) " source ~/.dotfiles/vimrc " endif if !isdirectory(expand('~/.vim')) call mkdir(expand('~/.vim')) endif """"""""""""""""""""""""""""""""""" set compatible " vi compatible " directory to put backup file if !isdirectory(expand('~/.vim/backup')) call mkdir(expand('~/.vim/backup')) endif set backup " enable backup set backupdir=$HOME/.vim/backup set swapfile " directory for swap file set directory=$HOME/.vim/backup set viminfo+=n~/.vim/viminfo " viminfo "set whichwrap=b,s,h,l,<,>,[,] " wrap when moving cursor set wildmode=longest,list,full set hidden " can switch to another buffer even when editting a file "set backspace=indent,eol,start " backspace can erase these things "set autochdir " automatically change current dir according to current file. cant use with mac set mouse=h " do not use mouse set clipboard+=unnamed " use x clipboard, seems not to work set browsedir=buffer " default dir for Explorer " encoding set encoding=utf-8 set fileencodings=utf-8,shift-jis,euc-jp,latin1 " display set showmode set title " display editting file on titlebar set list " display spcial letters such as newline or whitespace set listchars=tab:>-,extends:<,trail:-,eol:$ " set letters for displaying special letter set ruler " display current line and column set nonumber " do not show line number at left side "set laststatus=2 " always show status line set scrolloff=2 " scroll offset set showcmd set visualbell " dont beep syntax enable " enable syntax highlight " searching "set incsearch set wrapscan " wrap search set showmatch " highlight matching paren set ignorecase set smartcase " case sensitive only when capital letter is used set incsearch " tab and indent set tabstop=4 " tab width for displaying set softtabstop=4 set shiftwidth=4 " width of indent set expandtab " expand tab to space set autoindent set smartindent set cindent filetype plugin indent on let g:netrw_liststyle = 1 let g:netrw_list_hide = '\(^\|\s\s\)\zs\.\S\+' " i dont use gvimrc if has('gui_running') " hide toolbar and scroll bar set guioptions-=T set guioptions-=r set lines=45 set columns=110 set guifont=DejaVu\ Sans\ Mono\ 9 endif if has('win32') " prefs for Windows endif """"""""""""""""""""""""""""""""""""""" " マップ " imap <c-j> <esc> でC-Jをescにできる。? " nmap " vmap " map でそれぞれのモードでマップを指定 " キーマッピングには大きく分けて map と noremap の 2 つの種類があります。 " * map はキーシーケンスを展開したあと、さらに別のマップを適用しようとします。 " * noremap は一度だけ展開します。 " →マップを再帰的に展開するときはmap、決め打ちはnoremap(キーの入れ替えなど) " 割と保存 inoremap <ESC> <ESC>:<C-u>w<CR> inoremap <C-c> <ESC>:<C-u>w<CR> noremap <C-c> <ESC>:<C-u>w<CR> " highlight current line " set cursorline " show cursor line only in current window augroup cch autocmd! cch autocmd WinLeave * set nocursorline autocmd WinEnter,BufRead * set cursorline augroup END hi clear CursorLine highlight CursorLine term=underline cterm=underline gui=underline " change status line color when in insert mode augroup InsertHook autocmd! autocmd InsertEnter * highlight StatusLine guifg=#ccdc90 guibg=#2E4340 autocmd InsertLeave * highlight StatusLine guifg=#2E4340 guibg=#ccdc90 augroup END " save window position and size if has('gui_running') let g:save_window_file = expand('~/.vimwinpos') augroup SaveWindow autocmd! autocmd VimLeavePre * call s:save_window() function! s:save_window() let options = [ \ 'set columns=' . &columns, \ 'set lines=' . &lines, \ 'winpos ' . getwinposx() . ' ' . getwinposy(), \ ] call writefile(options, g:save_window_file) endfunction augroup END if filereadable(g:save_window_file) execute 'source' g:save_window_file endif endif