在Vim,整行上下移动

在Vim,整行上下移动


将下列内容放到你的. vimrc 来完成作业


noremap <c-s-up> :call feedkeys( line('.')==1? '' : 'ddkP' )<CR>
noremap <c-s-down> ddp


线条消失看起来像一个 Vim Bug 。 我放置了一个 hack 来避免它。 可能还有更精确的解决方案。

更新

使用Vim组合有很多无法解释的困难。 这些是直线缺失和额外的跨线。

下面是可以放在. vimrc 或者 ~/.vim/plugin/swap_lines.vim 中的脚本解决方案


function! s:swap_lines(n1, n2)
 let line1 = getline(a:n1)
 let line2 = getline(a:n2)
 call setline(a:n1, line2)
 call setline(a:n2, line1)
endfunction

function! s:swap_up()
 let n = line('.')
 if n == 1
 return
 endif

 call s:swap_lines(n, n - 1)
 exec n - 1
endfunction

function! s:swap_down()
 let n = line('.')
 if n == line('$')
 return
 endif

 call s:swap_lines(n, n + 1)
 exec n + 1
endfunction

noremap <silent> <c-s-up> :call <SID>swap_up()<CR>
noremap <silent> <c-s-down> :call <SID>swap_down()<CR>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值