読者です 読者をやめる 読者になる 読者になる

Studio3104::BLOG.new

uninitialized constant Studio3104 (NameError)

ぼくの.vimrcをさらしてみる


とはいっても全然特別なことはやってません。
他人のvimrcを見てみたいなーと思うことがあったので、まずはオノレのソレをさらすことにします。
NeoBundleはほぼコレの通りなので割愛します。あとperltidyも割愛で。

ファイルの種類毎に、作成時にテンプレートを読み込む

こういう設定をしておくと、

autocmd BufNewFile *.pl 0r ${HOME}/.vim/.pl
autocmd BufNewFile *.sh 0r ${HOME}/.vim/.sh
autocmd BufNewFile *.rb 0r ${HOME}/.vim/.rb

例えば、.plなファイルを新規作成したときにこの状態から書き始められる!便利!!

satoshi@studio3104:~$ vim test.pl
#!/usr/bin/env perl

use strict;
use warnings;
use Data::Dumper;

テンプレートはこんな感じで、設定例だと ~/.vim/に置いてあります。

satoshi@studio3104:~/.vim$ cat .pl 
#!/usr/bin/env perl

use strict;
use warnings;
use Data::Dumper;
satoshi@studio3104:~/.vim$ cat .rb
#!/usr/bin/env ruby
satoshi@studio3104:~/.vim$ cat .sh
#!/bin/sh

編集画面のまま書いているコード自身を実行する

vim-quickrun

【2013/02/21追記】
thinca/vim-quickrun · GitHub
@さんに教えて頂きました。ありがとうございます!
入れてみたら便利すぎた・・・

F*キーにマッピング

こういう設定をしておくと、

map <F4>  :w !perl<CR>
map <F6>  :w !ruby<CR>
map <F7>  :w !rspec %<CR>

コード編集中に編集画面から抜けることなく、Perlの場合だとF4キーを押すと実行して動作を確認することが出来ます。
設定例だと、F6でRuby、F7でRspecを実行するようになります。

#!/usr/bin/env perl

use strict;
use warnings;
use Data::Dumper;

print Dumper [1,2,3];

F4押下

:w !perl
$VAR1 = [
          1,
          2,
          3
        ];

続けるにはENTERを押すかコマンドを入力してください

shebang付きのファイルに自動的に実行権限を付与する

autocmd BufWritePost * :call AddExecmod()
function AddExecmod()
  let line = getline(1)
  if strpart(line, 0, 2) == "#!"
    call system("chmod +x ". expand("%"))
  endif
endfunction

omni補完をTABで行えるようにする

function InsertTabWrapper()
    if pumvisible()
        return "\<c-n>"
    endif
    let col = col('.') - 1
    if !col || getline('.')[col - 1] !~ '\k\|<\|/'
        return "\<tab>"
    elseif exists('&omnifunc') && &omnifunc == ''
        return "\<c-n>"
    else
        return "\<c-x>\<c-o>"
    endif
endfunction
inoremap <tab> <c-r>=InsertTabWrapper()<cr>

その他大勢

" シンタックスハイライトを有効にする
syntax on

" TAB幅をスペース二つ分にする
set tabstop=2

" タブ文字を\tじゃなくスペースにする
set expandtab

" 自動インデントとインデント時の幅
set cindent
set shiftwidth=2

" 行番号を表示する
set nu

" ウィンドウタイトルを編集中のファイル名にする
set title

" 検索時に大文字を含んでいたら大/小を区別
set smartcase

" 小文字の検索で大文字も見つかるようにする
set ignorecase

" 検索文字を打ち込むと即検索する
set incsearch

" 検索結果をハイライトする
set hlsearch

" 見えない文字を可視化
set list