[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: 用 VIM 编程时自动扩展小括号和大括号的方法



添加了跳转到下一个编辑位置的功能,例如输入 if<空格> 后,代码自动扩展为:
    if (<光标>) {
        // XXX
    }
当光标位置的表达式处理完成之后,可以通过快捷键自动跳转至 // XXX 位置。

修改后的 If() 函数:
function! If()
    iunmap if<SPACE>
    if (getline('.') =~ '^\s*$')
        exec "normal ddO
                    \if () {\r// XXX\r}
                    \\e7h2dw2k3la"
    elseif (getline('.') =~ '^\s*}\s*\<else\>\s*$')
        exec "normal a
                    \if () {\r// XXX\r}
                    \\e7h2dw2k10la"
    elseif (getline('.') =~ '^\s*}\s*\<else\>.*{\s*$')
        exec "normal a
                    \if () {\r// XXX\r} else 
                    \\e13h2dw2k10la"
    else
        exec "normal a
                    \if "
    endif
    inoremap if<SPACE> <ESC>:call If()<CR>a
endfunction

添加快捷键:
imap <C-J> <ESC>:call search('// XXX$', 'W')<CR>d$a
vmap <C-J> <ESC>:call search('// XXX$', 'W')<CR>d$a

-- 
Vern
2007-12-10

Attachment: signature.asc
Description: Digital signature


Reply to: