VIM TIPS2

autocmd BufWritePost * if &diff == 1 | diffupdate | endif


let mapleader = ','
"delete current line in insert mode
inoremap <c-d> <esc>ddi                  
"lower current word in insert mode
inoremap <c-u> <esc>viwuea
"upper current word in insert mode
inoremap <a-u> <esc>viwUea
"Capital current word in insert mode
inoremap <a-c> <esc>BvUlveuea
"Edit vimrc file in normal mode
nnoremap <leader>ev :vsplit $MYVIMRC<cr>
"Source vimrc file in mormal mode
nnoremap <leader>sv :source $MYVIMRC<cr>
"Enclose current word with double quote in normal mode
nnoremap <leader>" ea"<esc>hbi"<esc>lel
"Enclose current word with single quote in normal mode
nnoremap <leader>' ea'<esc>hbi'<esc>lel
"Enclose current word with angle brackets in normal mode
nnoremap <leader>< ea><esc>hbi<<esc>lel


"Align the character 
function! AlignLines(alignChar)
    let [ firstLine , firstColumn ] = getpos("'<")[1:2]
    let [ lastLine  , lastColumn  ] = getpos("'>")[1:2]
    let lineContent = getline( firstLine , lastLine )
    let maxColumn = 0 
    for singleLine in lineContent
        let currentColumn = stridx(singleLine , a:alignChar)
        if currentColumn > maxColumn 
            let maxColumn = currentColumn
        endif
    endfor
    let loop = firstLine 
    while loop <= lastLine
        let currentColumn = stridx(getline(loop), a:alignChar)
        "skip the blank line 
        if currentColumn != -1
            let padString = repeat(" ",maxColumn - currentColumn )
            execute "silent " . loop . 's/' . a:alignChar . '/' . padString . a:alignChar . '/'
        endif
        let loop = loop + 1
    endwhile
endfunction


vnoremap <leader>a :<c-u>call AlignLines("")<Left><Left>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值