同事報案,修改程式後用 git status 指令卻怎麼也看不到異動項目。幫忙看了一下,發現同事卡在下圖的指令 [1] 陷入鬼打牆,而我輸入指令 [2] 則順利查到異動內容:

看到這裡,再配上標題,老鳥們應該都知道是怎麼一回事了。

詢問同事,指令來自某份 .txt 備忘錄,而進一步溯源,.txt 內容來自 Outlook。這是個常見問題,中文版 Word/Outlook/PowerShell 有個雞婆貼心功能,在輸入 -- 時自動幫你轉成一長橫「–」(破折號)、輸入雙引號時會自動轉成「“」跟「”」。如下圖:


(註:嚴格來說,應該是 --short 或 -s 才對,猜想原作者輸入 -- 本想接 short,被換成 – 後改變主意寫了 -s)

我在很多場合遇過類似狀況,從 Word 或投影片上 Copy 程式碼、CLI 指令範例甚至 URL,貼上後執行出錯(如下圖),或是跑出非預期結果。出錯比較簡單,像是這次案例,–s 被當成檔名,不會報錯而是找不到,要破案得靠細心跟經驗。

不過,身為老司機,只要是複製貼上的內容有問題,來源又是 Word/Outlook/PowerPoint 就會優先朝這方向調查。(但像這次案例是轉貼到 .txt 被帶進文字檔,所以連 .txt 也不可掉以輕心。)

另一方面,如果你在 Word/Outlook/PowerPoint 裡撰寫程式碼、指令範例或 URL 時,若不想害你的讀者踩坑,也要提高警覺,發現符號被置換時,要按 Ctrl-Z 將其復原。

而我個人偏好做法是,若常寫技術文件,就關掉智慧引號[1]跟連字變破折[2]這兩個雞婆功能吧!


Comments

# by Ming

所以我愛用純文字檔案(例如 latex、markdown)寫文件,不然那天怎麼死的都不知道。應該立法要求資訊技術人員禁止使用MS office XD

# by Jeffrey

to Ming, Word 我算是都改用 Markdown 寫,但 Email 跟投影片還沒辦法,有好建議?

Post a comment