ちょこちょこ変わるかも
Vim設定ファイル
色々なサイトで見た内容を反映して自分用に使いやすいようにした。
行番号表示は意外と使わないことに気づいたのでコメントアウト。
.vimrc
setnocompatible" viとの互換性無効 タブ補完などが使えるようになる" マッピング Y を、行末までのヤンクにする設定nnoremap Y y$
syntaxon" コードの色分けをONsetencoding=utf-8" vimの文字コードsetfileformats=unix,dos " ファイルフォーマット"sethistory=50" 履歴保存件数(コマンド、検索パターンを50まで保存)sethlsearch" 検索結果をハイライトするsetincsearch" インクリメンタルサーチ(検索中に文字を打つと自動で検索していく)setshowmatch" 括弧にカーソルを合わせた時、対応した括弧を表示するsetmatchtime=1" カーソルが飛ぶ時間を0.1秒で飛ぶようにするsetttyfast" ターミナル接続を高速にするsetdisplay=lastline " 一行の内容を行末の最後まで表示するsetwhichwrap=b,s,h,l,<,>,[,] " 行をまたいで左右のカーソル移動できるようにする" deleteキーが^?になる人用(行頭の動作がおかしいのであまりお勧めしない) " ターミナル上で自分で入力しなくてはならない「^?」はDeleteキーを押す、「^[」は「Ctrl+v Ctrl+[」と入力"noremap! ^? ^[lxisetbackspace=start,eol,indent " バックスペースで消せるようにする"set number " 行番号の表示"set autoindent " 自動インデントsettabstop=4" タブ幅をスペース4つ分にするsetexpandtab" タブを半角スペースに置き換えるsetshiftwidth=4" 自動インデントの幅setlaststatus=2" ステータスバーを表示する位置setupdatetime=0" Swapを作るまでの時間m秒setnostartofline" 括弧を閉じたとき対応する括弧に一時的に移動setnotitle" titleを変更しないsettitle" ウインドウタイトルを設定するsetnowrapscan" 検索がファイル末尾まで進んだらそこで先頭に戻らず止まる"set list " タブ文字を CTRL-I で表示し、行末に $ で表示する。(有効:list/無効:nolist)" ステータスバー関連 自動文字数カウント
augroup WordCount
autocmd!autocmdBufWinEnter,InsertLeave,CursorHold * call WordCount('char')
augroup END
lets:WordCountStr =''lets:WordCountDict = {'word': 2,'char': 3,'byte': 4}
function! WordCount(...)ifa:0==0returns:WordCountStr
endiflet cidx =3silent!let cidx =s:WordCountDict[a:1]
lets:WordCountStr =''lets:saved_status =v:statusmsg
exec "silent normal! g\<c-g>"ifv:statusmsg !~'^--'let str =''silent!let str = split(v:statusmsg,';')[cidx]
let cur = str2nr(matchstr(str,'\d\+'))letend= str2nr(matchstr(str,'\d\+\s*$'))ifa:1=='char' " ここで(改行コード数*改行コードサイズ)を'g<C-g>'の文字数から引くletcr=&ff=='dos' ? 2 : 1let cur -=cr * (line('.')-1)letend-=cr * line('$')endiflets:WordCountStr = printf('%d/%d', cur,end)endifletv:statusmsg =s:saved_status
returns:WordCountStr
endfunctionsetstatusline=%F " [ステータスバー]ファイル名表示setstatusline+=%m" [ステータスバー]変更のチェック表示setstatusline+=%r" [ステータスバー]読み込み専用かどうか表示setstatusline+=%h" [ステータスバー]ヘルプページなら[HELP]と表示setstatusline+=%w\ " [ステータスバー]レビューウインドウなら[Prevew]と表示setstatusline+=%=" [ステータスバー]ここからツールバー右側setstatusline+=[FORMAT=%{&ff}]\ " [ステータスバー]ファイルフォーマット表示setstatusline+=[%{has('multi_byte')&&\&fileencoding!=''?&fileencoding:&encoding}] " [ステータスバー]文字コードの表示setstatusline+=[%l行,%v桁] " [ステータスバー]列位置、行位置の表示setstatusline+=[%p%%] " [ステータスバー]現在行が全体行の何%目か表示setstatusline+=[WC=%{exists('*WordCount')?WordCount():[]}] " [ステータスバー]現在のファイルの文字数をカウント"-------エンコード------"エンコード設定if has('unix')setfileformat=unix
setfileformats=unix,dos,mac
setfileencoding=utf-8setfileencodings=utf-8,iso-2022-jp,cp932,euc-jp
settermencoding=elseif has('win32')setfileformat=dos
setfileformats=dos,unix,mac
setfileencoding=utf-8setfileencodings=iso-2022-jp,utf-8,euc-jp,cp932
settermencoding=endif"コマンドモード時にカーソル移動するのに便利
cnoremap <C-A><Home>
cnoremap <C-B><Left>
cnoremap <C-D><Delete>
cnoremap <C-E><End>
cnoremap <C-F><Right>
cnoremap <C-N><Down>
cnoremap <C-P><Up>" 最後に編集した行への移動
augroup vimrcEx
auBufRead * if line("'\"")>0&& line("'\"")<= line("$")|
\ exe "normal g`\""|endif
augroup END
"-------MENU-------"SSHを通してファイルオープン
menu User.Open.SCP.NonSprit :e! scp:///<LEFT>
menu User.Open.SCP.VSprit :vsp<CR>:wincmdw<CR>:e! scp:///<LEFT>
menu User.Open.SCP.Sprit :sp<CR>:wincmdw<CR>:e! scp:///<LEFT>"分割してファイルブラウザを起動
menu User.Open.Explolr.NonSprit :vsp<CR>:wincmdw<CR>:e! ./<CR>
menu User.Open.Explolr.VSprit :vsp<CR>:wincmdw<CR>:e! ./<CR>
menu User.Open.Explolr.Sprit :sp<CR>:wincmdw<CR>:e! ./<CR>"各種VIMの記録情報を表示する
menu User.Buffur.RegisterList :dis<CR>
menu User.Buffur.BuffurList :ls<CR>
menu User.Buffur.HistoryList :his<CR>
menu User.Buffur.MarkList :marks<CR>
menu User.Buffur.JumpList :jumps<CR>"エンコードを指定して再読み込み
menu User.Encode.reload.SJIS :e++enc=cp932<CR>
menu User.Encode.reload.EUC :e++enc=euc-jp<CR>
menu User.Encode.reload.ISO :e++enc=iso-2022-jp<CR>
menu User.Encode.reload.UTF :e++enc=utf-8<CR>"保存エンコードを指定
menu User.Encode.convert.SJIS :setfenc=cp932<CR>
menu User.Encode.convert.EUC :setfenc=euc-jp<CR>
menu User.Encode.convert.ISO :setfenc=iso-2022-jp<CR>
menu User.Encode.convert.UTF :setfenc=utf-8<CR>"フォーマットを指定して再読み込み
menu User.Format.Unix :e++ff=unix<CR>
menu User.Format.Dos :e++ff=dos<CR>
menu User.Format.Mac :e++ff=mac<CR>"行番号をファイルに挿入
menu User.Global.No :%!awk '{print NR, $0}'<CR>"TABをSPACEに変換する
menu User.Global.Space :setexpandtab<CR>:retab<CR>"空白行を削除する
menu User.Global.Delete :g/^$/d<CR>"カーソル上の単語を全体から検索し、別ウインドウで表示
menu User.Cursor.Serch.Show [I
menu User.Cursor.Serch.Top [i
menu User.Cursor.Serch.Junp [<tab>"カーソル上のファイルのオープン
menu User.Cursor.FileOpen gf
"コピー、ペーストモード
menu User.Cursor.Paste :call Indent()<CR>"全体置き換えモード
menu User.Cursor.Replace :%s/
"C-C,C-Rと同様
menu User.Cursor.Delete yw:%v:<C-R>0"CUI時にメニューをA-lで表示するsetwildcharm=<TAB>if has('gui')
nmap <M-l> :emenu<TAB>else
nmap <ESC>l :emenu<TAB>endif"-------GUI--------"ワイルドメニューを使うsetwildmenusetwildmode=longest,list,full