最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

oeasy教您玩轉(zhuǎn)vim - 55 - # 參數(shù)替換

2021-10-19 09:09 作者:oeasy  | 我要投稿

[Github地址] (https://github.com/overmind1980/oeasyvim)
[Gitee地址] (https://gitee.com/overmind1980/oeasyvim)
[藍(lán)橋?qū)嶒?yàn)樓 邀請碼FJWYIMGB] (https://www.lanqiao.cn/courses/2840)

查找細(xì)節(jié)

回憶上節(jié)課內(nèi)容??

  • 進(jìn)行了模式匹配批量替換的的操作

  • 替換單詞

    • :%s/\<a.*d\>/oeasy/g

  • 轉(zhuǎn)義字符

    • %s/^\/\/.*$/d

  • 刪除空行

    • :g/^\s*$//d

  • 還有替換還有一些什么玩法嗎???

markdown變html

  • 要把 markdown 文件中的 *斜體*

  • 變成 html 中的 <em>斜體</em>

  • 先寫框架

    • s///gc

    • 修改基本框架

    • s/\*.*\*//gc

    • 匹配模式

    • 先試一下,是否有高亮匹配

    • 如果沒有就:se hls

原子化

  • s/\*\(.*\)\*//gc

    • 將其明確

    • 將其原子化

    • 給待替換部分加上括號

    • 給括號轉(zhuǎn)義

    • 看是否能匹配

  • 仍然能夠查找到

  • 下面就是替換部分

  • s/\*(.*)\*/<em>\1</em>/gc

    • \1就是括號中的原子內(nèi)容

    • 把待替換模式放上去

  • s/\*(.*)\*/<em>\1<\/em>/gc

    • 將需要轉(zhuǎn)義的內(nèi)容轉(zhuǎn)義

  • 回車,替換成功!

使用參數(shù)

  • 還是把html文件轉(zhuǎn)化為md文件

  • 我需要把<h1>替換為 - 空格

    • 先搜索/<h1>,可以搜到,說明尖括號不用轉(zhuǎn)義

    • 再搜索/<h1>.*</h1>

    • 可以匹配

  • 開始寫

  • :%s///gc

    • 上框架

  • :%s/<h1>.*</h1>//gc

    • 基礎(chǔ)內(nèi)容

  • :%s/<h1>(.*)</h1>//gc

    • 加括號

  • :%s/<h1>\(.*\)<\/h1>//gc

    • 轉(zhuǎn)義

  • :%s/<h1>\(.*\)</h1>/- \1/gc

    • \1就是搜索中用轉(zhuǎn)義括號括起來的東西

  • 如果要把<h2>替換為 ? ? ? ?- 怎么辦?

  • 如何修改

  • :%s/<h2>\(.*\)</h2>/ ? ? ? ?- \1/g

多個(gè)參數(shù)

  • 原來的列表

    • Joe,John

    • oeasy,oyeah

  • 需要的列表

    • John Joe

    • oyeah oeasy

  • 需要前后對調(diào),還要去掉逗號

  • %s///gc

    • :%s 在所有的范圍內(nèi)

  • %s/.*,.*//gc

    • 中間有逗號分開

  • %s/(.*),(.*)//gc

    • 用括弧原子化

  • %s/([^,]*),([^,]*)//gc

    • 括弧里的原子中不能有逗號

  • %s/\([^,]*\),\([^,]*\)//gc

    • ([^,]*\) 前面的第一個(gè)原子,內(nèi)容為除了逗號之外的字符

    • , 分隔符逗號

    • ([^,]*\) 前面的第二個(gè)原子,內(nèi)容為除了逗號之外的字符

    • 轉(zhuǎn)義

    • \([^,]*\),\([^,]*\)原來的列表

  • 高亮顯示匹配的話

  • :%s/\([^,]*\),\([^,]*\)/\2 \1/gc

    • 把原來的兩個(gè)原子前后對調(diào)

    • 中間加上空格

    • \2 \1

  • 完成對調(diào)

如果是a標(biāo)簽?zāi)兀?/h1>
  • <a href="http://oeasy.org">o</a>變成[o](http://oeasy.org)

  • 這里面需要兩個(gè)參數(shù)

    • 鏈接網(wǎng)址http://oeasy.org

    • 鏈接文本o

  • 嘗試搜索

    • /<a href=.*>.*</a>可以搜素到

    • /<a href=".*">.*</a>不可以搜素到,說明"需要轉(zhuǎn)義

    • /<a href="(.*)">(.*)</a>把括號、斜杠、引號前面加上轉(zhuǎn)義字符\

    • /<a href=\"\(.*\)\">\(.*\)<\/a>

  • 然后寫批量替換

  • :%s///gc

    • 框架

  • %s/<a href=\".*\">//gc

  • %s/<a href=\".*\">.*<\/a>//gc

    • 有高亮匹配,證明模式ok

  • %s/<a href=\"(.*)\">(.*)<\/a>//gc

    • 參數(shù)原子化

  • %s/<a href=\"\(.*\)\">\(.*\)<\/a>//gc

    • 轉(zhuǎn)義

  • %s/<a href=\"\(.*\)\">\(.*\)<\/a>/[\2]\1/gc

    • \1對應(yīng)第1個(gè)字符里面匹配的東西

    • \2對應(yīng)第2個(gè)字符里面匹配的東西

    • 然后就可以進(jìn)行批量替換了

問題

  • <a href="http://oeasy.org">o</a>asdf<a href="http://oeasy.org">o</a>

    • 這句話有兩個(gè)超鏈接

    • 但是替換之后

    • 卻變成了一個(gè)超鏈接

    • 這怎么辦?

  • 貪婪匹配與非貪婪匹配

    • .*對應(yīng)的是貪婪匹配 greedy

    • .{-}對應(yīng)的是非貪婪匹配 non-greedy

    • 會匹配第一個(gè)符合條件的

  • 什么是貪婪匹配?

貪婪匹配

  • md 中的**重點(diǎn)文字**和**重點(diǎn)**

  • 變成 html 中的 <strong>重點(diǎn)文字</strong>

  • 注意他把這兩個(gè)分開了

  • \*\*.\{-}\*\*

    • \*\* 代表前兩個(gè)星號

    • . 的數(shù)量是\{-}

    • \*\*代表后兩個(gè)星號

  • . 的數(shù)量是\{-}

  • 根據(jù)這個(gè)我們來寫替換語句

  • :s///gc

  • :s/**(.*)**//gc

    • 給需要轉(zhuǎn)義的字符轉(zhuǎn)義

  • :s/\*\*\(.*\)\*\*//gc

    • 思路就是把.*變成.\{-}

    • 把貪婪變成非貪婪

  • :s/\*\*\(.\{-}\)\*\*//gc

    • 把替換的元素放上

  • :s/\*\*(.\{-})\*\*/<strong>\1<\/strong>/gc

  • 嘗試一下

  • 根據(jù)這個(gè),是否能解決一行中有多個(gè)<a>元素的問題

匹配模式

  • :%s///g

  • :%s/<a href=\".*\">.*<\/a>//g

  • :%s/<a href=\"(.*)\">(.*)<\/a>//g

  • :%s/<a href=\"\(.*\)\">\(.*\)<\/a>//g

  • :%s/<a href=\"\(.\{-}\)\">\(.\{-}\)<\/a>//g

    • 這步就是把.*變成.\{-}

  • :%s/<a href=\"\(.\{-\})\">\(.\{-\}\)<\/a>/[\2]\1/g

如果是<img>標(biāo)簽?zāi)?/h1>
  • 需要把<img src="http://oeasy.org/o.png" title="o" />

    • 替換為

  • 先嘗試匹配

  • /<img src=\"\(.*\)\" title=\"\(.*\)\" \/>

  • 也就是/<img src="(.*)" title=(.*)">給引號、括號、斜杠都加上轉(zhuǎn)義/

  • 匹配成功之后開始替換

  • :%s/<img src=\"\(.*\)\" title=\"\(.*\)\" \/>/[!\2]\1

  • 如果一行有多個(gè)img怎么辦?

  • 還得把貪婪的變成非貪婪的

總結(jié)

  • 我們學(xué)習(xí)了關(guān)于模式匹配中使用參數(shù)

    • 別著急

    • 先列框架

    • 在一步一步填充進(jìn)去皮肉

    • 注意轉(zhuǎn)義

    • 冷靜仔細(xì)

    • 不斷看著高亮的反饋

  • 單個(gè)參數(shù)

    • :%s/<h2>\(.*\)</h2>/ ? ? ? ?- \1/g

  • 多個(gè)參數(shù)

    • :%s/<img src=\"\(.*\)\" title=\"\(.*\)\" \/>/[!\2]\1

  • 非貪婪匹配

    • :%s/<a href=\"\(.\{-\})\">\(.\{-\}\)<\/a>/[\2]\1/g

  • 我們介紹一種更神奇的模式,可視化編輯模式??

  • 下次再說 *


oeasy教您玩轉(zhuǎn)vim - 55 - # 參數(shù)替換的評論 (共 條)

分享到微博請遵守國家法律
平安县| 彝良县| 崇义县| 华亭县| 宁阳县| 宝鸡市| 镇原县| 申扎县| 河源市| 昌乐县| 九龙县| 醴陵市| 慈利县| 中超| 句容市| 会东县| 莱州市| 衡东县| 延边| 屏东县| 平凉市| 郓城县| 泗阳县| 定襄县| 万荣县| 鄂伦春自治旗| 苍梧县| 渭南市| 惠来县| 德钦县| 陆河县| 伊吾县| 长宁县| 兴安县| 水富县| 青岛市| 保定市| 治县。| 呼玛县| 丹棱县| 闻喜县|