Vimでカーソル位置などの設定保存 と .vimrc
vimrcを見なおしたら結構おかしいとこがありました…
あと、Vimを開いたり閉じたりしまくりますが
そのために毎回移動しなおしたり折りたたみを開いたり閉じたりは面倒です
そこで以下のように設定しました。
2012/10/30追記
パターンマッチが修正前だと:helpなどにも反応してしまうので修正
Vimにはセッションとビューというものがあります。
セッションが全ウィンドウとグローバル設定などで、ビューがウィンドウ毎のローカル設定らしいです。
簡単に言うとビュー∈セッションだろうか?
上記設定では、バッファがウィンドウから非表示になる時に発生するBufWinLeaveイベントでmkviewを使いビューを保存します。
同様に、バッファがウィンドウに表示される時に発生するBufWinEnterイベントでloadviewを使いビューを復元します。
viewはファイルごとに作成、保存され標準だと~/.vim/viewに書きだされます。
viewoptiosを設定することで保存と復元をする設定を選べます。
以下、.vimrc
いろんなとこを参考にしました。
あと、Vimを開いたり閉じたりしまくりますが
そのために毎回移動しなおしたり折りたたみを開いたり閉じたりは面倒です
そこで以下のように設定しました。
" 設定の保存と復元 autocmd BufWinLeave * silent mkview autocmd BufWinEnter * silent loadview " 2012/10/30 修正 autocmd BufWinLeave ?* silent mkview autocmd BufWinEnter ?* silent loadview
2012/10/30追記
パターンマッチが修正前だと:helpなどにも反応してしまうので修正
Vimにはセッションとビューというものがあります。
セッションが全ウィンドウとグローバル設定などで、ビューがウィンドウ毎のローカル設定らしいです。
簡単に言うとビュー∈セッションだろうか?
上記設定では、バッファがウィンドウから非表示になる時に発生するBufWinLeaveイベントでmkviewを使いビューを保存します。
同様に、バッファがウィンドウに表示される時に発生するBufWinEnterイベントでloadviewを使いビューを復元します。
viewはファイルごとに作成、保存され標準だと~/.vim/viewに書きだされます。
viewoptiosを設定することで保存と復元をする設定を選べます。
以下、.vimrc
いろんなとこを参考にしました。
"-------------------------------------------------------------------------------" " Vim Option By mopp "-------------------------------------------------------------------------------" " viとの互換をオフ set nocompatible " バックアップ作成 set backup set backupdir=$HOME/\.vim_backup set writebackup " 上書き前にバックアップ作成 " スワップファイルを作成する set swapfile set directory=$HOME/\.vim_backup " インデント設定 set cindent set shiftwidth=4 " 自動インデントの空白の数 set noexpandtab " Tabをスペースにしない set smarttab " 行頭にTabでshiftwidth分インデントする set tabstop=4 " 画面上のTab幅 " エンコーディング関連 set encoding=utf-8 " vim内部で通常使用する文字エンコーディングを設定 set charconvert=utf-8 " 文字エンコーディングに使われるexpressionを定める set fileencoding=utf-8 " バッファのファイルエンコーディングを指定 set fileencodings=utf-8,euc-jp,sjis " 既存ファイルを開く際の文字コード自動判別 " 検索設定 set hlsearch " 検索結果強調-:nohで解除 set incsearch " インクリメンタルサーチを有効 " 特殊文字表示設定 set list set listchars=eol:$,tab:>\ ,trail:\|,extends:<,precedes:< set backspace=2 " Backspaceの動作 set whichwrap=b,s,h,l,<,>,[,] " カーソルを行頭、行末で止まらないようにする set wildmenu " コマンドの補完候補を表示 set helplang=ja,en " ヘルプ検索で日本語を優先 set viewoptions=cursor,folds " :mkviewで保存する設定 " 折りたたみ関連 set foldenable set foldmethod=indent set foldopen=all " fold内に移動すれば自動で開く " set foldclose=all " fold外に移動しfoldlevelより深ければ閉じる set foldlevel=0 " 折りたたみの具合 set foldnestmax=2 " 最大折りたたみ深度$ set foldcolumn=2 " 左側に折りたたみガイド表示$ " 見た目関連の設定 set ambiwidth=double " マルチバイト文字や記号でずれないようにする set cmdheight=2 " コマンドラインの行数 set laststatus=2 " ステータスラインを表示する時 set cursorline " 現在行に下線を引く set number " 行番号表示 set showtabline=2 " タブバーを常に表示 set ruler " カーソルの現在地表示 set showmatch " 括弧強調 set nowrap " はみ出しの折り返し設定 syntax on " 強調表示有効 colorscheme desert highlight Folded cterm=bold,underline ctermfg=4 " ステータス行の表示内容を設定 PowerLineで置き換え " set statusline=%<%F\ %m%r%h%w%y%{'['.(&fenc!=''?&fenc:&enc).']['.&fileformat.']'}%=%l/%L,%c%V%8P "-------------------------------------------------------------------------------" " Mapping "-------------------------------------------------------------------------------" " コマンド ノーマルモード 挿入モード コマンドラインモード ビジュアルモード " map /noremap @ - - @ " nmap / nnoremap @ - - - " imap / inoremap - @ - - " cmap / cnoremap - - @ - " vmap / vnoremap - - - @ " map! / noremap! - @ @ - "-------------------------------------------------------------------------------" " 自動で括弧内に移動 inoremap {} {}inoremap [] [] inoremap () () inoremap “” “” inoremap ” ” inoremap <> <> inoremap “ “ " tab nnoremap to :tabnew nnoremap tn :tabnext nnoremap tp :tabprevious " 画面分割 noremap :split noremap :vsplit " 短縮形の設定 マップを展開しない noreabbrev #b /**************************************** noreabbrev #e ****************************************/ " コマンドラインコマンド設定 command Vimrc :tabnew ~/.vimrc "-------------------------------------------------------------------------------" " autocmd "-------------------------------------------------------------------------------" " ファイル全般に設定 augroup General autocmd! " 設定の保存と復元 autocmd BufWinLeave * silent mkview autocmd BufWinEnter * silent loadview augroup END " Lisp設定 augroup Lisp autocmd! function! s:setLispConfig() noremap .li :!sbcl --script % iunmap () inoremap ( () set nocindent set nosmartindent let lisp_rainbow = 1 let lisp_instring = 1 set lispwords=define endfunction autocmd BufRead *.lisp call s:setLispConfig() augroup END " C/C++設定 augroup C_Cpp function! s:setC_Cpp() nnoremap .gcc :!gcc % set cindent endfunction autocmd BufRead *.c,*.cpp call s:setC_Cpp() augroup END "-------------------------------------------------------------------------------" " Plugin "-------------------------------------------------------------------------------" filetype off filetype plugin indent off if has('vim_starting') set runtimepath+=~/.vim/bundle/neobundle.vim/ endif call neobundle#rc(expand('~/.vim/bundle/')) NeoBundle 'QuickBuf' NeoBundle 'git://github.com/Shougo/neobundle.vim.git' NeoBundle 'git://github.com/Shougo/neocomplcache.git' NeoBundle 'git://github.com/Shougo/vimfiler.git' NeoBundle 'git://github.com/Shougo/unite.vim.git' NeoBundle 'git://github.com/vim-jp/vimdoc-ja.git' NeoBundle 'git://github.com/h1mesuke/vim-alignta.git' NeoBundle 'git://github.com/t9md/vim-textmanip.git' NeoBundle 'git://github.com/scrooloose/nerdcommenter.git' NeoBundle 'git://github.com/Lokaltog/vim-powerline.git' NeoBundle 'git://github.com/tpope/vim-surround.git' filetype plugin indent on " Neocomplcache " 起動時に有効化 let g:neocomplcache_enable_at_startup = 1 " textmanip " 選択したテキストの移動 xmap (textmanip-move-down) xmap (textmanip-move-up) xmap (textmanip-move-left) xmap (textmanip-move-right) " 行の複製 xmap d (textmanip-duplicate-down) xmap D (textmanip-duplicate-up) " vim-powerline let g:Powerline_symbols = 'unicode' let g:Powerline_stl_path_style = 'short' " nerdcommenter let NERDSpaceDelims = 1 nmap ,, NERDCommenterToggle vmap ,, NERDCommenterToggle
コメント
コメントを投稿