摘要:原文地址實(shí)戰(zhàn)指南五文本替換在編輯代碼時(shí),有時(shí)候你希望對(duì)變量或者函數(shù)重命名。提供了強(qiáng)大的替換功能,比其他普通編輯器的更好用。事實(shí)上你打不用如此麻煩,只需下面簡(jiǎn)單的替換即可本文列出了常用的文本編輯中全局替換的方法。
原文地址:Vim實(shí)戰(zhàn)指南(五):文本替換
Introduction在編輯代碼時(shí),有時(shí)候你希望對(duì)變量或者函數(shù)重命名。vi提供了強(qiáng)大的替換功能,比其他普通編輯器的ctrl+r更好用。
替換vi的替換基于ex命令:
正則表達(dá)式:s/old/new/g:將當(dāng)前行所有的old替換成new,s是substitute,g是global
:1,10s/old/new/g:將第1到第10行所有的old替換成new
:%s/old/new/g:將當(dāng)前文件所有行的old替換成new,%是第一行的意思
:%s/old/new/gc:同上,但是替換前需要確認(rèn),c是confirm
:g/pattern/s/old/new/g:將符合pattern的行內(nèi)的所有old替換成new,第一個(gè)g是指匹配pattern的所有行,第二個(gè)g是指行內(nèi)所有的匹配old的字符串
下面列出正則表達(dá)式中使用的metacharacters:
.:匹配除了換行符之外的任何符號(hào)(包含空格),如a.a匹配aaa和aba
:重復(fù)前面(零次或多次)匹配符,如a匹配a和aa
^:當(dāng)出現(xiàn)在表達(dá)式前面時(shí),表示頭部匹配,如^.匹配行首第一個(gè)字符
$:當(dāng)出現(xiàn)在表達(dá)式尾部時(shí),表示尾部匹配,如.$匹配行尾第一個(gè)字符
:轉(zhuǎn)移符,如*表示匹配*,而不是重復(fù)前面的匹配符
[]:匹配中括號(hào)中任何一個(gè)匹配符,如[ab]表示匹配a或者b
():將括號(hào)中的模式保存
<>:匹配以<符號(hào)后開始和>符號(hào)前結(jié)束的單詞
正則表達(dá)式可以結(jié)合上面的pattern使用,這里不再贅述。
技巧在程序編寫中,你覺得pan有歧義,你希望把所有的pan替換成panic:
:%s/pan/panic/g
稍后你發(fā)現(xiàn),所有的panic被替換成了panicic,這不是我們想要的。你注意到pan后面都有一個(gè)符號(hào),因此你使用:
:%s/pan[ ,.:;]/panic[ ,.:;]/g
接著你發(fā)現(xiàn),這種匹配仍然有漏網(wǎng)之魚,如pan=1,仍然需要匹配=號(hào)。
事實(shí)上你打不用如此麻煩,只需下面簡(jiǎn)單的替換即可:
:%s/Summary/panic/g
本文列出了常用的文本編輯中全局替換的方法。由于正則表達(dá)式從來都不是一個(gè)簡(jiǎn)單的話題,本文只是簡(jiǎn)單的介紹了如何在替換中使用正則表達(dá)式,事實(shí)上vi支持所有的正則表達(dá)式功能,可以完成任何你能想到的替換!
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/24864.html
摘要:原文地址實(shí)戰(zhàn)指南一基礎(chǔ)編輯命令和作為兩大神級(jí)文本編輯器各有利弊,本實(shí)戰(zhàn)指南不加討論的介紹本實(shí)戰(zhàn)指南不是教你按照的鍵位圖來編輯文本,而是從實(shí)戰(zhàn)的角度,教你如何快速的用來開發(fā)你的程序,節(jié)省你的開發(fā)時(shí)間。 原文地址:Vim實(shí)戰(zhàn)指南(一):基礎(chǔ)編輯命令 Introduction Vim和Emacs作為兩大神級(jí)文本編輯器各有利弊,本實(shí)戰(zhàn)指南不加討論的介紹Vim.本實(shí)戰(zhàn)指南不是教你按照Vim的鍵位...
摘要:原文地址實(shí)戰(zhàn)指南四命令是下的一個(gè)文本編輯器。你已經(jīng)見過中的,沒錯(cuò),這些就是來自于命令。當(dāng)你希望顯示某行,輸入命令,顯示器上才會(huì)顯示那行。而控制這個(gè)顯示器顯示文本的命令行工具,就是。 原文地址:Vim實(shí)戰(zhàn)指南(四):ex命令 Introduction ex是Unix下的一個(gè)文本編輯器。至于為什么突然講到這個(gè),那是因?yàn)関i就是ex的visual mode。你已經(jīng)見過vi中的:w, :q!,...
摘要:原文地址實(shí)戰(zhàn)指南三高級(jí)技巧當(dāng)入門后,在你日常使用中,會(huì)遇到下面幾個(gè)問題我編輯好的文本,怎么無法保存是不是要重新來一次我誤操作,怎么回退撤銷只能退出重新打開嗎我能同時(shí)復(fù)制多個(gè)不連續(xù)的行嗎一行一行復(fù)制粘貼太慢了。 原文地址:Vim實(shí)戰(zhàn)指南(三):高級(jí)技巧 Introduction 當(dāng)vi入門后,在你日常使用中,會(huì)遇到下面幾個(gè)問題: 我編輯好的文本,怎么無法保存?是不是要重新來一次? 我誤...
摘要:原文地址實(shí)戰(zhàn)指南二光標(biāo)移動(dòng)技巧提升的打字效率的一個(gè)技巧就是快速移動(dòng)光標(biāo)。或許你覺得這不值一提,用或者上下左右也能移動(dòng),不過相信我,我下面要介紹的移動(dòng)光標(biāo)技巧絕對(duì)物超所值。 原文地址:Vim實(shí)戰(zhàn)指南(二):光標(biāo)移動(dòng)技巧 Introduction 提升Vim/vi的打字效率的一個(gè)技巧就是快速移動(dòng)光標(biāo)。或許你覺得這不值一提,用hjkl或者上下左右也能移動(dòng),不過相信我,我下面要介紹的移動(dòng)光標(biāo)技...
摘要:貢獻(xiàn)者飛龍版本最近總是有人問我,把這些資料看完一遍要用多長(zhǎng)時(shí)間,如果你一本書一本書看的話,的確要用很長(zhǎng)時(shí)間。為了方便大家,我就把每本書的章節(jié)拆開,再按照知識(shí)點(diǎn)合并,手動(dòng)整理了這個(gè)知識(shí)樹。 Special Sponsors showImg(https://segmentfault.com/img/remote/1460000018907426?w=1760&h=200); 貢獻(xiàn)者:飛龍版...
閱讀 1342·2021-09-24 10:26
閱讀 3655·2021-09-06 15:02
閱讀 604·2019-08-30 14:18
閱讀 577·2019-08-30 12:44
閱讀 3119·2019-08-30 10:48
閱讀 1936·2019-08-29 13:09
閱讀 1993·2019-08-29 11:30
閱讀 2279·2019-08-26 13:36