- 论坛徽章:
- 26
|
本帖最后由 Third-Edition 于 2014-09-10 14:36 编辑
回复 7# Third-Edition
- function Wc()
- let lines=0
- let bytes=0
- let words=0
- for line in getbufline(bufname("%"),1,"$")
- let lines = lines +1
- let lst = split(line)
- let words = words + len(lst)
- endfor
- let bytes = line2byte(line("$")+1) - 1
- let wc = bytes . " " . words . " " . lines
- call append(line("$"),wc)
- endfunction
复制代码 我已经完美解决了, 看上面代码. line("$")+1表示 "最后一行+1的行" line2byte是获取当前行之前的所有字节数包括换行符. 所以line2byte(line("$")+1)计算出的缓冲区大小会多出一个字节需要减去1.
call append(line("$"),wc) append在指定行位置后面追加若干行. line("$")是最后一行. 所以就是在最后一行追加一行 行的内容是:"字节数 单词数 行数"
现在只需要:call Wc()即可
或者将这个代码放入.vimrc中, 然后做映射 nmap gG :call Wc()^M 这样在nomal模式下输入gG就会在文件末尾追加了. |
|