Vim 「_gvimrc」公開
Vimを使ってない人はスルー推奨です。
端的に言うと、Vimというエディタの設定ファイル公開なので〜。
http://dendening.blog106.fc2.com/blog-entry-33.html
ということで、Vimに関する↑のページを見てたら無性に「.vimrc」を公開したくなったので、公開しちゃいます。(たまに検索語「vimrc」で飛んでくる方もいるようなので)
ちなみに、Windows環境でさらにエセプログラマーなのでGUI環境以外で使うことはないだろうってことで、「.vimrc」でなく「_gvimrc」を使ってます。
とりあえず、先に言っておきたいのは、上でも書いたようにWindows環境な上にプログラムは普段は打たない人間なので、一般のVim使いの人とは使い方がかなり違うと言うことです。(基本は日本語打つのに使ってますし)
一番テキストエディタのしての効果を発揮するのは……スクリプト打ちの時かな?
ちなみに、このスクリプトと言うのもPerlやRubyなどのスクリプトでなく、ゲーム企画者が触るようなシナリオ(当然2バイト文字)メインのスクリプトです。
唯一プログラマーっぽいことするのも、最近ではVBAなので……Vimは使ってないです。(ホントはこっちでも使いたいんだけど)
ということで、そういう前提でおねがいしまーす!
set backupdir=C:\\BACKUP "フォント設定 set guifont=MS\ ゴシック:h10 "-------------------------------- "色設定 "-------------------------------- colorscheme evening "構文強調ON(全体の色設定を適切なものに書き換えるため、個別の色設定はこれ以降でやらないと上書きされる) syntax enable "改行記号 hi NonText guibg=NONE guifg=DarkGreen "全角スペース hi ZenkakuSpace guibg=gray40 "match ZenkakuSpace / / ここにあると最初のタブにしか適応されないので、オートコマンドに移動。 "カーソル行下線(「set cursorline」がある場合に有効) hi CursorLine gui=underline guibg=NONE " 日本語入力ON時のカーソルの色を設定 if has('multi_byte_ime') || has('xim') highlight CursorIM guibg=Yellow guifg=NONE endif "-------------------------------- "表示設定 "-------------------------------- "行数表示 set number "改行文字・タブ・全角スペースを表示 set list set listchars=tab:>-,eol:< "スクロールマージンの設定 set scrolloff=12 "起動時のウィンドウサイズの設定 set lines=60 set columns=120 "カーソル行下線 色設定は「hi CursolLine 〜」部で行ってる。 set cursorline "-------------------------------- "動作設定 "-------------------------------- "Windowsとクリップボードを共有する。 set clipboard=unnamed "Ctrl+aとCtrl+xで、十進数扱いにする。 set nrformats-=octal "検索時、ファイルの末尾と先頭でループしない set nowrapscan "行連結の際にスペースを入れない "set nojoinspaces これをやってもスペース1個は入るので、JをgJでマッピングに変更。 "-------------------------------- "マッピング(ALL) "-------------------------------- "コメントアウト map:s/^/\/\// :noh map :s/^/\/\/--/ :noh map :s/^\/\/// :noh map :s/^\/\/--// :noh map :s/^/:/ :noh map :s/^/:--/ :noh map :s/^:// :noh map :s/^:--// :noh "-------------------------------- "マッピング(通常モード) "-------------------------------- "基本カーソル移動系 nmap j gj nmap k gk "内容変更系 nmap i "C-Mに割り当てるとEnterの挙動も変わる。EnterやTabなどの特殊キーは、直接Ctrl系の操作と結びついてるらしい。 "Enterの挙動が変わると、Quickfixでジャンプが出来なくなるので、やむなく変更。JがJoinなので、Split。 nmap gJ "vimgrep(ディレクトリ固定) nmap :vim // $grep_dir/**/*.txt "クリップボードの内容をvimgrep(ディレクトリ固定) nmap :vim / +/ $grep_dir/**/*.txt "タブ関連 nmap :tabnext nmap :tabNext nmap :tabnew nmap :tabclose "置換 nmap :%s///gc "-------------------------------- "マッピング(インサートモード) "-------------------------------- "インサートモードからCtrl+jで抜ける imap "挿入モードで貼り付け imap "*pa "-------------------------------- "マッピング(ビジュアルモード) "-------------------------------- vmap j gj vmap k gk "ビジュアルモードからCtrl+jで抜ける vmap "-------------------------------- "マッピング(コマンドモード) "-------------------------------- "カーソル移動 cnoremap cnoremap cnoremap cnoremap "-------------------------------- "オートコマンド "-------------------------------- "常に開いているファイルと同じディレクトリをカレントディレクトリにする au BufEnter * execute ":lcd " . expand("%:p:h") "grep後にQuickfixを自動的に開く。 au QuickfixCmdPost make,grep,grepadd,vimgrep copen au QuickfixCmdPost l* lopen "全角スペースを可視化 au BufNew,BufRead * match ZenkakuSpace / / "コメントアウトのマッピング " autocmd FileType txt,c,cpp,java,php " \ map ,c :s/^/\/\/ / :noh " \ | map ,u :s/^\/\/ // :noh " autocmd FileType vim " \ map ,c :s/^/" / :noh " \ | map ,u :s/^" // :noh " autocmd FileType perl,sh,ruby " \ map ,c :s/^/# / :noh " \ | map ,u :s/^# // :noh "ファイルを常に新しいタブで開く(結局上手くいかないからひとまずコメントアウト) "autocmd BufAdd,BufNewFile * nested tab sball ←誤作動起します。 "↓バッファにファイルがある場合は、新しいタブで開きません。(BufAdd指定だから) :tabnew時に誤作動……。 "autocmd VimEnter * tab all "autocmd BufAdd * exe 'tablast | tabe "' . expand( " ") .'"' "-------------------------------- "変数設定 "-------------------------------- "プロジェクトごとのスクリプトディレクトリを変数として設定(この使い方は正しくないかも……) "※公開用に変更してあります。実際には、プロジェクト名やディレクトリパスが入ります※ let $****_script_dir="D:\\Project\\〜" let $****_script_dir="D:\\Project\\〜" let $grep_dir=$****_script_dir
という感じです、いかがでしょうか?
多分、Windows操作から移行したときの名残で、Vim初心者っぽいマッピングが多いと思いますw
変わってるのは……スクロールマージンを多めに取ってるところや、Vimgrep系のマッピングくらいかなぁ……。
ファイルを常に新しいタブで開くのは、結局上手く実現できませんでした。どうしてもバグが出る……。
これは結局ファイラー側からVim呼び出し時に引数付けて解決したんだったかな?
まだVim使いとして日も浅く、未熟ですので、なにか変な指定とかしてたら教えていただけると嬉しいで〜す。