Tech Racho エンジニアの「?」を「!」に。
  • インフラ

vimでちょっとしたワードを調べる時に使うアレ5つ

目次

1. スペルチェック

スペルチェックは便利ですが、カラースキーマによっては見えなくなることもあります
vimrcにこんな感じに設定しておくとF9キーでスペルチェックをON/OFFできます

nnoremap <F9> :call SpellToggle()<CR>
function! SpellToggle()
    setlocal spell!
    if exists("g:syntax_on")
        syntax off
    else
        syntax on
    endif
endfunction

spellcheck

2. Kコマンドによるマニュアル参照

ノーマルモードでK(Shift+k)でファイルタイプに応じたマニュアルを参照できます
使用するにはファイルタイプの検出をONにしておくと良いです

filetype plugin on

perlだとperl-doc
perl-doc

rubyだとruby-doc
ruby-doc

デフォルトだとman
man

3. Google サジェストによる補完

こんな感じに設定しておくとCtrl-X,Ctrl-UでGoogleサジェストによる補完が効きます
mattnさんのGoogleサジェストから補完候補を作るVimスクリプト書いた。を参考にしています。
curlが入っていれば動くはず

set completefunc=GoogleComplete
function! GoogleComplete(findstart, base)
    if a:findstart
        let line = getline('.')
        let start = col('.') - 1
        while start > 0 && line[start - 1] =~ '\S'
            let start -= 1
        endwhile
        return start
    else
        let ret = system('curl -s -G --data-urlencode "q='
                    \ . a:base . '" "http://suggestqueries.google.com/complete/search?&client=firefox&hl=ja&ie=utf8&oe=utf8"')
        let res = split(substitute(ret,'\[\|\]\|"',"","g"),",")
        return res
    endif
endfunction

google

4. 英語辞書を引く

これはあまりVimに関係ないのですが、カーソル下の単語をcwordで拾い
外部サービスに投げることで辞書を引いたりすると便利です。
単語の上にカーソルを置いて:Eiwaもしくは:Eiwa searchword のように使います
perl,nkf,curlが必要です

command! -nargs=? Eiwa call Goo("ej",<f-args>)
command! -nargs=? Ruigo call Goo("thsrs",<f-args>)
command! -nargs=? Kokugo call Goo("jn",<f-args>)
command! -nargs=? Waei call Goo("je",<f-args>)
function! Goo(jisyo,...)
    if has('win32') || has('gui_running')
        let l:cmd = "!"
    else
        let l:cmd = "!clear && "
    endif
    if a:0 == 0
        let l:search_word = expand("<cword>")
    else
        let l:search_word = a:1
    endif
    if a:jisyo == "ej"
        let l:search_tag = " | perl -nle 'print if /alllist/i../<\\/dl>/ or /prog_meaning/'"
    elseif a:jisyo == "je"
        let l:search_tag = " | perl -nle 'print if /alllist/i../<\\/dl>/ or /prog_meaning|prog_example/'"
    elseif a:jisyo == "jn"
        let l:search_tag = " | perl -nle 'print if /alllist/i../<\\/dl>/ or /meaning/'"
    elseif a:jisyo == "thsrs"
        let l:search_tag = " | perl -nle 'print if /--wordDefinition/i../--\\/wordDefinition/i'"
    endif
    execute l:cmd . "curl -s -L " .
                \ "http://dictionary.goo.ne.jp/srch/" . a:jisyo . "/" .
                \ "$(echo " . l:search_word . " | nkf -wMQ | tr = \\%)" .
                \ "/m1u/ " .
                \ l:search_tag .
                \ " | perl -ple 's/<.+?>//g'"
                \ " | head -50"
endfunction

eiwa

5. スニペット

プログラムの文法を思い出すのにはスニペットが便利です。
お勧めは以下のプラグインです

NeoBundle 'Shougo/neosnippet'
NeoBundle 'Shougo/neosnippet-snippets'
NeoBundle 'Shougo/unite.vim'
    let g:unite_enable_start_insert=1
    let g:unite_source_file_mru_limit = 200

ansible
bash


CONTACT

TechRachoでは、パートナーシップをご検討いただける方からの
ご連絡をお待ちしております。ぜひお気軽にご意見・ご相談ください。