Vim中根据正则对选中文本对齐(比如ini文件的=号对齐)
生活随笔
收集整理的這篇文章主要介紹了
Vim中根据正则对选中文本对齐(比如ini文件的=号对齐)
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
vimrc增加如下內(nèi)容即可:
vnoremap <M-=> :call Duiqi('\v(^\s*\S+)\s+(.*)')<CR> "reg匹配的第2段文字對(duì)齊 function! Duiqi(reg) let l0 = line("'<") let l1 = line("'>") "獲取第1個(gè)單詞及前面空格的最大長(zhǎng)度 let max = 0 let arr = {} let l = l0 while l <= l1 let arr[l] = matchlist(getline(l), a:reg) "把字符串分成2段 let len = strlen(arr[l][1]) let max = (len > max ? len : max) let l += 1 endwhile let max += 1 "最長(zhǎng)的后面要放一個(gè)空格 "設(shè)置strSpace let strSpace = CreateSpaces(max) "開始對(duì)齊 let l = l0 while l <= l1 call setline(l, arr[l][1].strpart(strSpace, 0, max-strlen(arr[l][1])). arr[l][2]) let l += 1 endwhile endfunction "生成n個(gè)空格的字符串 function! CreateSpaces(n) let s = '' for i in range(a:n) let s .= ' ' endfor return s endfunction
函數(shù)參數(shù)用的正則表達(dá)式,例子中的正則是根據(jù)每行的第2個(gè)單詞對(duì)齊,
主要就是兩個(gè)()內(nèi)匹配的內(nèi)容。
使用方法:要先選中要對(duì)齊的行,再按Alt+=對(duì)齊,效果如下:
如果前面有空格,則效果如下:
如果想去除最前面的空格,修改參數(shù)為
'\v^\s*(\S+)\s+(.*)'效果如下:
想修改對(duì)齊規(guī)則,則要自己設(shè)置正則了。
轉(zhuǎn)載于:https://www.cnblogs.com/hyaray/p/6663508.html
總結(jié)
以上是生活随笔為你收集整理的Vim中根据正则对选中文本对齐(比如ini文件的=号对齐)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 图像转灰度图
- 下一篇: 躬身入境DIY - 《传奇动物园》北京沙