日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

vi字符串替换

發布時間:2025/3/21 编程问答 53 豆豆
生活随笔 收集整理的這篇文章主要介紹了 vi字符串替换 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

在Vi里面實現字符串的批量替換。

a. 文件內全部替換:

%s#abc#def#g(用def替換文件中所有的abc)

例如把一個文本文件里面的“linuxidc.com”全部替換成“linuxidc.net”:

:%s#linuxidc.com#xwen.net#g (如文件內有#,可用/替換,比如:%s/linuxidc.com/xwen.net/g)

b. 文件內局部替換:

把10行到50行內的“abc”全部替換成“def”

:10,50s#abc#def#g(如文件內有#,可用/替換,:%s/abc/def/g)

以上命令如果在g后面再加上c,則會在替換之前顯示提示符給用戶確認(conform)是否需要替換。 比如

:%s#linuxidc.com#linuxidc.net#gc

Vim學習指南 http://www.linuxidc.com/Linux/2013-08/89096.htm

快速學會 Vi編輯器 http://www.linuxidc.com/Linux/2013-08/88586.htm

強大的Vim 編輯器 http://www.linuxidc.com/Linux/2013-07/87544.htm

在CentOS 6.2上搭建Vim開發環境 http://www.linuxidc.com/Linux/2013-07/87363.htm

CentOS 5.4 安裝高亮Vim編輯工具 http://www.linuxidc.com/Linux/2013-06/86508.htm

Vim技巧分享:C語言設置 http://www.linuxidc.com/Linux/2012-12/77124.htm

Ubuntu中設置Vim的行號 http://www.linuxidc.com/Linux/2012-12/75485.htm

Vim編輯器使用基礎教程 http://www.linuxidc.com/Linux/2013-05/84031.htm

本文永久更新鏈接地址:http://www.linuxidc.com/Linux/2015-03/114621.htm

?

?

?

?

1. 基本的替換?

:s/vivian/sky/ 替換當前行第一個 vivian 為 sky?

:s/vivian/sky/g 替換當前行所有 vivian 為 sky?

:n,$s/vivian/sky/ 替換第 n 行開始到最后一行中每一行的第一個 vivian 為 sky?

:n,$s/vivian/sky/g 替換第 n 行開始到最后一行中每一行所有 vivian 為 sky?

(n 為數字,若 n 為 .,表示從當前行開始到最后一行)?

:%s/vivian/sky/(等同于 :g/vivian/s//sky/) 替換每一行的第一個 vivian 為 sky?

:%s/vivian/sky/g(等同于 :g/vivian/s//sky/g) 替換每一行中所有 vivian 為 sky?

2. 可以使用 # 作為分隔符,此時中間出現的 / 不會作為分隔符?

:s#vivian/#sky/# 替換當前行第一個 vivian/ 為 sky/?

:%s+/oradata/apras/+/user01/apras1+ (使用+ 來 替換 / ): /oradata/apras/替換成/user01/apras1/?

3. 刪除文本中的^M?

問題描述:對于換行,window下用回車換行(0A0D)來表示,linux下是回車(0A)來表示。這樣,將window上的文件拷到unix上用時,總會有個^M,請寫個用在unix下的過濾windows文件的換行符(0D)的shell或c程序。?

使用命令:cat filename1 | tr -d “^V^M” > newfile;?

使用命令:sed -e “s/^V^M//” filename > outputfilename?

需要注意的是在1、2兩種方法中,^V和^M指的是Ctrl+V和Ctrl+M。你必須要手工進行輸入,而不是粘貼。?

在vi中處理:首先使用vi打開文件,然后按ESC鍵,接著輸入命令:?

:%s/^V^M//?
:%s/^M$//g?

如果上述方法無用,則正確的解決辦法是:?

tr -d “\r” < src >dest?

tr -d “\015″ dest?

strings A>B?

4. 其它用法?

利用 :s 命令可以實現字符串的替換。具體的用法包括:?

:s/str1/str2/ 用字符串 str2 替換行中首次出現的字符串 str1?

:s/str1/str2/g 用字符串 str2 替換行中所有出現的字符串 str1?

:.,$ s/str1/str2/g 用字符串 str2 替換正文當前行到末尾所有出現的字符串 str1?

:1,$ s/str1/str2/g 用字符串 str2 替換正文中所有出現的字符串 str1?

:g/str1/s//str2/g 功能同上?

從上述替換命令可以看到:g 放在命令末尾,表示對搜索字符串的每次出現進行替換;不加 g,表示只對搜索字符串的首次出現進行替換;g 放在命令開頭,表示對正文中所有包含搜索字符串的行進行替換操作。
?

?

?

http://banderson.blog.163.com/blog/static/7462337201010122916301/

?

?

?

另轉:

最近在逛CSDN論壇時經常會苦惱一個問題——有些網友貼上去的代碼沒有用規范的格式貼上去,我貼到VIM里常常會需要手動調整格式,非常麻煩。每當這個時候就異常懷念以前用VC6.0時的ALT+F8……想下VIM作為一個程序員們最貼心的編輯器,顯然不會對此坐視不理。經過一番的Search,果然就找到了一些最常用的簡單技巧,筆記一下以備后來不時之需。?
VIM格式化代碼:?
格式化全文指令 gg=G?
自動縮進當前行指令 ==?
????? 格式化當前光標接下來的8行 8=?
????? 格式化選定的行 v 選中需要格式化的代碼段 =?
????? 備注:?
gg —— 到達文件最開始?
= —— 要求縮進?
G???? —— 直到文件尾?
注釋代碼:(這個原理上就是使用VIM的正則替換)?
以C++和Python為例。?
注釋連續行:?
指令格式 :起始行,終止行s/要替換的字符/替換為字符/g?
如,?
????? C++源文件中注釋掉10~20行,指令為:?
:10,20s/^/g?
Python源文件中注釋掉10~20行,指令為:?
:10,20s/^/#/g?
取消連續行注釋:?
指令格式同上。只是要替換字符與替換為字符要互換:?
如,?
????? 取消C++源文件中的10~20行的注釋,指令為:?
:10,20s/^//g?
取消Python源文件中的10~20行的注釋,指令為:?
:10,20s/^#//g

從別的編輯器里粘貼到vim里的代碼經常由于不正常的縮進變得格式混亂。在vim的官方FAQ (http://vimdoc.sourceforge.net/cgi-bin/vimfaq2html3.pl)找到的:

格式化全文: gg=G

自動縮進當前行: ==

這個是原文節選:

14.6.?How do I format/indent an entire file?

You can format/indent an entire file using the gg=G command, where

???? gg - Goto the beginning of the file
???? =?? - apply indentation
???? G?? - till end of file

For more information, read

???? :help gg
???? :help =
???? :help G
???? :help?'formatprg'
???? :help C-indenting

?原文地址?http://hi.baidu.com/seesea8/blog/item/b96c8e51eb8f352743a75b41.html

?

《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀

總結

以上是生活随笔為你收集整理的vi字符串替换的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。