VIM - 字數統計


  1. 概述

    1. 使用 VIM 作簡單字數統計
  2. 背景

    1. 想做一個簡單的 字數統計
  3. 環境

    1. OS
      1. win10
    2. shell
      1. mintty-2.9.4

1. 需求

  1. 概述

    1. 需求
  2. 需求

    1. 統計文段內字符的數量
    2. 支持 自定義字符集

2. 方案1: vim 自帶統計

  1. 概述

    1. vim 自帶方案
  2. 操作

    1. 定位到 文段內某行

    2. vim 標准模式

    3. 輸入

      g
      ctrl + g
      
  3. 結果

    1. 在 vim 底部, 有 統計信息

      # 統計信息我后面講
      Col 16-15 of 39-31; Line 38 of 102; Word 72 of 189; Char 389 of 1232; Byte 565 of 1862
      
  4. 統計信息

    1. Col 16-15 of 39-31

      1. 列信息
        1. 注意
          1. 因為這一列 有中文, 所以會出現這種情況
          2. 沒有中文, 大概會是這樣 Col 16 of 39
            1. utf-8 中, 長度大於 1個字節 的字符
        2. 解釋: 不含中文 - Col 16 of 39
          1. 當前光標, 處在 16 列
          2. 當前行, 一共有 39 列
        3. 解釋: 包含中文 - Col 16-15 of 39-31
          1. 當前光標, 在 16 列, 第 15 個字符
          2. 當前行, 一共有 39 列, 但是只有 31 個字符
    2. Line 38 of 102

      1. 行信息
        1. 解釋
          1. 本文一共 102 行
          2. 當前光標處在, 38 行
    3. Word 72 of 189

      1. 單詞信息
        1. 解釋
          1. 本文一共 189 個單詞
          2. 當前光標, 處在第 72 個單詞
    4. Char 389 of 1232

      1. 字符信息

      2. 注意

        1. 如果文本都是 英文 或者 數字, 不會出現這個項
        2. 統計內容成謎
          1. utf-8 字符
          2. 字母
          3. 數字
          4. 換行
          5. 還有一個不知道的字符
            1. 總要占一個
            2. 但就是找不到
      3. 建議

        1. 除非是 比較粗 的統計, 不建議使用這個字段
          1. 字符集無法定義
          2. 全文內容
    5. Byte 565 of 1862

      1. 字節信息
  5. 問題

    1. 字符的數量, 可能會有 偏差
      1. 比如 中文之類 的問題
    2. 無法 自定義字符集

3. 方案2: 替換1

  1. 概述

    1. 嘗試用 ex 命令行下的 s 命令
  2. 操作

    1. vim 命令模式

    2. 輸入命令

      # 假設我只統計中文
      :% s/[\u4E00-\u9FCC]//n
      
    3. 執行

  3. 結果

    1. 結果

      96 matches on 96 lines
      
    2. 好像有些偏差

      1. ref 里可以顯示 匹配字符數
      2. 但是我這里 顯示不了
        1. 只有行數, 這個好像沒什么用啊

4. 方案3: 替換2

  1. 概述

    1. 繼續嘗試用 ex 命令行下的 s 命令
  2. 操作

    1. vim 命令模式

    2. 輸入命令

      # 假設我只統計中文
      :% s/[\u4E00-\u9FCC]/&/g
      
    3. 執行

  3. 結果

    1. 可以正常統計

      564 substitutions on 98 lines
      
  4. 后續

    1. 字符集

      1. 可以自己調整字符集

        # 漢字
        [\u4E00-\u9FCC]
        # 漢字 和 數字
        [\u4E00-\u9FCC0-9]
        # 漢字, 數字, 大小寫字母
        [\u4E00-\u9FCC0-9A-Za-z]
        
    2. 性能

      1. 這個我暫時沒有考慮過
        1. 總感覺會 慢上一些

ps

  1. ref
    1. 在 VIM 或者 Emacs 中,如何統計選中文本的字數(漢字)?
      1. 一個無名用戶的回答
    2. vim如何統計 字數
      1. 百度知道, 難得有用


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM