推 akria: %s/\<\@<!.\>\@!/_/gc 02/21 23:44
推 fjm31714: 搞不太懂為什麼 ^\@<!.$\@! 這樣後面 match 不到 02/22 00:40
推 akria: 因為 $ 要代表行尾,必須滿足其中一個條件: 02/22 01:56
→ akria: 1. 在 pattern 最後 02/22 01:56
→ akria: 2. 在 \| 之前 02/22 01:57
→ akria: 3. 在 \) 之前 02/22 01:57
→ akria: 4. 在 \n 之前 02/22 01:57
→ akria: 否則,會被解釋成 $ 符號。 02/22 01:58
→ akria: 因此,你可以將 $ 換成 \_$ 或者是 \n 就可以了 02/22 01:58
→ fjm31714: 感謝解釋 02/23 01:22
→ javafang: 哇,太神奇了,感謝akria大大的神助,我研究一下怎麼解 02/25 11:37
→ javafang: 釋這段語法~ 02/25 11:37
推 curist: 因為實在看不懂akria大的解法 另外google了兩個解法 03/08 15:06
→ curist: :%s/^.\zs.*\ze.$/\=repeat('_',len(submatch(0)))/g 03/08 15:06
→ curist: :%g/^.\zs.*\ze.$/norm gnr_ 03/08 15:07
推 akria: 第二個解法,碰到一行裡面只有兩個字母時候,會出錯。 03/11 23:25
→ akria: 改成 :%g/^.\zs.\+\ze.$/norm gnr_ 比較好 03/11 23:26
→ akria: 我的作法是用到 \@<! 零寬度反向否匹配 03/11 23:29
→ akria: 以及 \@! 零寬度否匹配 03/11 23:29
→ akria: 結構很簡單,搜尋 .,但是前面不能有 \< ,後面不能有 \> 03/11 23:31
推 curist: 學到了 感謝 03/14 10:44
→ javafang: 感謝指導~~ 06/04 13:36
※ 編輯: javafang (203.213.93.179), 06/05/2017 07:14:28
※ 編輯: javafang (203.213.93.179), 06/05/2017 10:21:33