Vim一键智能垂直选择下方N行内容

简单的一个小功能,效果如图,列选中一项,然后 <leader>vv 即可

我的两个函数是写到vim的autoload文件夹下的,自行修改即可 !

 选择内容后,后续我往往是添加序号,见 Vim中修改列模式的文字为ABCD或1234的递增序号

noremap <leader>vv :<C-u>call hy_map#vmap#VBelow()<cr>
"列模式选中下方n行 function! hy_map#vmap#VBelow() abort let n = v:count ? v:count : hy_map#vmap#linesColBelow() execute "normal! <C-q>" . n . 'j' endfunction "获取当前光标下有/无值的行数(不含当前行,列选中模式选中用) "当前为空,则往下找空,当前有值,则往下找有值 " NOTE tab 中间的符号 char2nr = 20837 function! hy_map#vmap#linesColBelow(...) abort let l = a:0 ? a:1 : line('.') let c = a:0>1 ? a:2 : col('.') let n = 0 "NOTE 根据当前光标的字符定义 reg let reg = strcharpart(strpart(getline('.'),c-1),0,1) =~ 'S' ? 'S' : 's' for i in range(l+1, line('$')) if strcharpart(strpart(getline(i),c-1),0,1) =~ reg let n += 1 else " echom reg .' '. n return n endif endfor return n endfunction
原文地址:https://www.cnblogs.com/hyaray/p/15157077.html