I found a tips on wikia, it can autocapitalize first character in sentence.
Bellowing is the code in my vimrc.
But I found that those mappings in "if" statement can not work.
Is there anyone know why ?
(The original code does not have the "if" statement. I add it by myself.)

    "Inputing '/' cancels capitalizing without delay
    function! CapNextKey(prev)
        redraw
        let input = nr2char(getchar())
        let input = (input == '/' ? "\e" : input)
        if input=~'[.?!\r[:blank:]]' "punctuations, return, spaces
            exe 'normal! i' . input . "\<Right>"
            return CapNextKey(input)
        elseif input=="\e"
            return "\<del>"
        elseif a:prev=~'[\r[:blank:]]'
            return toupper(input) . "\<del>"
        else 
            return input . "\<del>"
        endif
    endfunction

    function! InsertEnterCheck()
        let trunc = getline(".")[0:col(".")-2] 
        if col(".")==1
            return CapNextKey("\r")
        elseif trunc=~'[?!.]\s*$\|^\s*$'   "ie, 'text.[t]ext'
            return CapNextKey(trunc[-1:-1])
        else
            return "\<Del>"
        endif
    endfunction

    " FIXME those maps can not run in "if" statement.
    if &filetype == "markdown" || &filetype == "mail"
        inoremap <silent> . ._<Left><C-R>=CapNextKey(".")<CR>
        inoremap <silent> ? ?_<Left><C-R>=CapNextKey("?")<CR>
        inoremap <silent> ! !_<Left><C-R>=CapNextKey("!")<CR>
        inoremap <silent> <CR> <CR>_<Left><C-R>=CapNextKey("\r")<CR>
        nnoremap <silent> o o_<Left><C-R>=CapNextKey("\r")<CR>
        nnoremap <silent> O O_<Left><C-R>=CapNextKey("\r")<CR>
        nnoremap <silent> a a_<Left><C-R>=InsertEnterCheck()<CR>
        nnoremap <silent> A A_<Left><C-R>=InsertEnterCheck()<CR>
        nnoremap <silent> i i_<Left><C-R>=InsertEnterCheck()<CR>
        nnoremap <silent> I I_<Left><C-R>=InsertEnterCheck()<CR>
    endif

-- 
[stardiviner]           <fuck you, world!>      GPG key ID: 47C32433
IRC(freeenode): Evanescence                     Twitter:  @numbchild
Key fingerprint = 9BAA 92BC CDDD B9EF 3B36  CB99 B8C4 B8E5 47C3 2433
    http://stardiviner.dyndns-blog.com/author.html

Attachment: signature.asc
Description: Digital signature

Reply via email to