vi/vim使用技巧: 替換的巧妙使用(1)
;2、vi/vim使用技巧: 替換的巧妙使用(2)
」。最後效果:
...原始文字:
在正常模式下輸入:y481p,這樣就得到了如下內容:
...總共是482行。按「:」進入命令模式,輸入:%s/-\zs\([0-9]\)\ze/\=line(".") ,回車得到最終效果。命令解釋:
%s 正則替換
\zs 匹配任何位置,並將匹配起始處置於該處: 下乙個字元將是整個匹配的第乙個字元。「:help \zs」
\ze 匹配任何位置,並將匹配結尾處置於該處: 前乙個字元將是整個匹配的最後乙個字元。「:help \ze」
line(".") 游標所在的行號「:help line」
\= 執行後面的表示式「:help :\=」現在深入學習替換功能。比如在最終的效果前加入乙個行號,如:
1 2
3 ...480
481
482 最開始俺使用了如下的命令實現:
:%s/^/\=line('.').' '然後又想到了 let 函式:
:let n=1 | g/http/s/^/\=n.' '/ | let n+=1google了一下發現另外幾種方法「
鏈結:inserting line number into file」:
1 :g/^/exec "s/^/".strpart(line(".")." ", 0, 4)
2 :%s/^/\=strpart(line(".")." ", 0, 5)1的命令解釋「
鏈結」:
line(".")." " number of the current line plus four spaces
strpart("123 ", 0, 4) first four characters ("123 ")
"s/^/123 " substitute the beginning of the line with "123 "這裡俺有乙個地方不是很理解,即 "s/^/". —— 誰給解釋解釋?
from:
Excel 應用一則
那就開始做事吧 是想讓它完成這樣乙個功能 計算兩個日期之差.我一開始就在想是不是應該用它提供的函式來解決呢 後來發現沒有提供這個函式.並且這時我連怎麼取函式的引數位置都不清楚,慢慢來,看下別人做的.我先試了一下now 函式,哈哈.成功.太爽了,接下來就是找函式 發現這個函式 datedif star...
seq妙用一則
haoren im sj01 server01 gongsi seq f 201110 02g 1 26 20111001 20111002 20111003 20111004 20111005 20111006 20111007 20111008 20111009 20111010 2011101...
JPQL CASE WHEN 寫法一則
其實也沒什麼特別的,就是jpa2中,jpql的解析還是有硬傷啊,害得我摸索了好一陣子。請看 public static final string hql find transaction amount select new foo.bar.service.report.tax.transaction...