亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

學習vi編輯器6

系統 1792 0

第六章 全局替換

全局替換真正使用的是ex的兩個命令: :g (全局)和 :s (替換),替換命令的語法如下:

:s/old/new/

將把當前行中模式old第一次出現修改為new./(斜杠)是命令不同部分間的分隔符(當斜杠為該行的最后一個字符時,它是可選的)

:/s/old/new/g

把當前行old的每次出現改為new,而不只是該行的第一個old.:s命令允許替換串后面帶有選項.g就代表全局(g選項影響一行中的每個模式,跟:g命令是不同的)

通過在:s命令前加上地址前綴,可以把它的范圍擴展到多行,例如

:50,100s/old/new/g

:1,$s/old/new/g

:%s/old/new/g

確認替換

輸入 u 來取消任何搜索替換命令

在進行全局替換前使用 :w 保存文件,這樣可以 不保存編輯重開文件 或者輸入 :e!

在替換前看到搜索結果和確認每個替換,則可以在替換命令的尾部加上c選項(用于確認)

:1,30s/his/the/gc

vi的 n(重復上次搜索) 點(.)(重復上次命令) 命令的結合也是一種極為有用的方法

/which ????????????搜索which

cwthat ESC ????????修改為that

n ????????????????重復搜索,跳過一次修改

n ????????????????重復修改

. ????????????????重復修改(如果正確)

上下文相關替換

:%s/editer/editor/g ????????把文件中editer的每次出現替換為editor

:g/patern/s/old/new/g

第一個g是在文件的所有行上執行的命令,模式pattern識別要發生替換的行.在那些包含模式pattern的行上,ex將把old替換(s)為new.最后的g表示在該行上進行全部替換

如果用來進行搜索的模式與想要修改的模式相同,就不用重復它

:g/string/s//new/g

將搜索包含string的行并對string進行替換

模式匹配規則

元字符在搜索模式中的使用

[]中需要\轉義的是\ - 和 ]

\<????\>????\(????\) ????比較特殊

POSIX的方括號表達式

方括號內的字符組稱為"括號表達式" .在括號表達式中,除了像a !等那樣的字面字符以外,還可以有其他的組成部分,他們是

字符類 ????????由[:和:]包圍的關鍵字組成,[[:alpha:]!]匹配任何一個單字母或感嘆號

整理符號 ????被看做單一單元的多字符序列,由[.和.]所包圍的字符組成,[[.ch.]]匹配ch

等價類 ????????[[=e=]]在法語中可以匹配ēéěèe

POSIX字符類

匹配字符

[:alnum:]

字母數字字符

[:alpha:]

字母字符

[:blank:]

空格和制表符

[:cntrl:]

控制字符

[:digit:]

數字字符

[:graph:]

可打印和可見 ( 非空格 ) 字符

[:lower:]

小寫字符

[:print:]

可打印字符 ( 包括空白 )

[:punct:]

標點字符

[:space:]

空白字符

[:upper:]

大寫字符

[:xdigit:]

十六進制數字

元字符在替換串中的作用

當進行全局替換時,正則表達式只有在命令的搜索部分(第一部分)時才具有特殊含義,例如:

:%s/1\. Start/2. Next, start with $100/

后面的替換串按照 字面意思處理字符.和$ ,而不對它們進行轉義

在替換串中具有特殊含義的元字符

\ n ???? 前向引用括號包圍的模式匹配串

\ ????把其后的字符轉義,\\輸出自己

& ????代表與搜索模式相匹配的整個文本???? :%s/abcdefg/&hij/ ????替換文本將是 abcdefghij

\u \l

把替換串中的下一個字符分別變為大寫或小寫.例如 :%s/\(Thant\) or \(this\)/\u\2 or \l\1/

\U或\L和\e或\E

從它們后面開始到替換串結束或到\e或\E出現為止的 所有字符都 轉換為大些或小寫,例如要把Fortran變成大寫,可以輸入 :%s/Fortran/\UFortran/ 或: %s/Fortran/\U&/

輸入 :set ic 或者 :set ignorecase 忽略大小寫

更多的替換技巧

  1. :s :s//~/ 相同 , 即重復上次替換
  2. & 表示一次替換 , 比如 :%&g 在各處重復上次替換
  3. & 鍵也可以作為 vi 命令來執行 :& RETURN 命令比 :s RETURN 輸入更快
  4. :~ 命令和 :& 命令相似 , :~ 使用的搜索模式是上次 任何命令 所使用的正則表達式 , 而不局限于上次替換命令使用的正則表達式例如

    :s/red/blue/

    /green

    :~

    等價于 :s/green/blue/

  5. / , 可以使用除 \ " | 之外的任何非字母表、非空白字符作為分隔符 , 例如

    :%s;/user1/tim;/home/tim;g

學習vi編輯器6


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 深夜成人在线 | 久久精品99香蕉国产 | 一级片在线免费看 | 夜色私人影院永久地址入口 | 久久亚洲国产成人影院 | 久久成人国产 | 国产成人a毛片在线 | 久久中文字幕日韩精品 | 国产精品亚洲一区二区在线观看 | 精品国产乱码一区二区三区麻豆 | 久久久精品免费国产四虎 | 中文字幕一区二区三区视频在线 | 日本久久伊人 | 欧美成人国产一区二区 | 国产女人综合久久精品视 | 国产精品福利一区二区久久 | 4huh34四虎最新 | 国产精品热久久 | 中文精品久久久久国产不卡 | 日日干夜夜骑 | 成年女人色毛片 | 午夜视频欧美 | 亚洲一区二区三区日本久久九 | 国产三级精品三级男人的天堂 | 色啦啦影院 | 天天操天天操天天 | 亚洲va国产va欧美va综合 | 四虎影院4hu | 毛片不卡一区二区三区 | 久久久夜间小视频 | 五月婷婷狠狠 | 特一级男女性色大片 | 国产色网址 | 激情九月天 | 全部免费特黄特色大片视频 | 一本色道久久爱88av俺来也 | 久久经典免费视频 | 欧美最猛性xxxx69交 | 亚洲综合视频一区 | 成人网在线视频 | 日韩欧美亚洲一区精选 |