摘要:原文地址實(shí)戰(zhàn)指南四命令是下的一個(gè)文本編輯器。你已經(jīng)見(jiàn)過(guò)中的,沒(méi)錯(cuò),這些就是來(lái)自于命令。當(dāng)你希望顯示某行,輸入命令,顯示器上才會(huì)顯示那行。而控制這個(gè)顯示器顯示文本的命令行工具,就是。
原文地址:Vim實(shí)戰(zhàn)指南(四):ex命令
Introductionex是Unix下的一個(gè)文本編輯器。至于為什么突然講到這個(gè),那是因?yàn)関i就是ex的"visual mode"。
你已經(jīng)見(jiàn)過(guò)vi中的":w", ":q!",沒(méi)錯(cuò),這些就是來(lái)自于ex命令。
ex命令遠(yuǎn)不止這些,實(shí)際上所有":"開(kāi)頭的命令,也就是你在vi最下面看到的命令行,都屬于ex命令。
接下來(lái)我要詳細(xì)的介紹一下,ex命令的用法。
首先我們打開(kāi)ex:
$ ex file "file" 3L, 16C Entering Ex mode. Type "visual" to go to Normal mode.
輸入1,3,屏幕上將顯示1-3行的內(nèi)容。
試著輸入"visual"或者"vi",是不是回到了熟悉的vi界面?
想要使用ex,輸入":",是不是在最下面看到了ex命令行?
ex究竟是什么東西?事實(shí)上這和歷史有關(guān),在早期,顯示器并不像現(xiàn)在這么好用,那會(huì)的“顯示器”只有按行顯示的功能。當(dāng)你希望顯示某行,輸入命令,“顯示器”上才會(huì)顯示那行。試著想想一個(gè)不支持上下左右滾動(dòng)的界面。
而控制這個(gè)“顯示器”顯示文本的命令行工具,就是ex。
為什么我們有了vi還要使用ex?因?yàn)閷?duì)于大段文本的操作,ex命令比vi命令行模式(command mode)更方便。
ex的命令都是基于行的(早期的“顯示器”,或者你的小型計(jì)算器,除了行列什么都沒(méi)有了),如:
:3:顯示第三行
:3,5:顯示第3到5行
:3s/hello/hi:將第三行的hello替換成hi,這里s是substitute的縮寫(xiě)
而在vi命令行模式下,你只需要簡(jiǎn)單的:
3G
但是對(duì)于刪除3-6行,ex命令只需要:
:3,6d:這里d是delete的縮寫(xiě)
而在vi命令行模式下,你需要:
3G
3dd:這里你還需要計(jì)算6-3=3
另外一個(gè)例子,將3-6行放到14行的后面,ex命令只需要:
:3,6m14
而在vi命令行模式下,你需要:
3G
3dd
14G
pp
ex的優(yōu)勢(shì)就體現(xiàn)在這里。
ex行上面我們見(jiàn)過(guò),ex命令都是基于行的,而獲得行號(hào)有下面幾種方法:
3:直接輸入行號(hào)
3-6:行范圍
.:當(dāng)前行
/pattern/:滿足pattern的第一行
$:最后一行
%:每一行
你可以組合這些,如:
:3,$d:刪除3行到最后一行
:%d:刪掉每一行
你也可以:
搜索:.,.+3d:刪除當(dāng)前行及后面3行
:/pattern/d:刪除包含pattern的第一行
:/pattern1/,/pattern2/d:刪除從pattern1到pattern2的行
在vi中,使用/進(jìn)行搜索,是不是覺(jué)得每次使用n/N來(lái)查找下一個(gè)太慢了?試試ex吧:
:g/pattern/nu
是不是所有包含pattern的行以及行號(hào)都打印出來(lái)了?這里g的意思是global,全文的意思,nu是number,行號(hào)的意思。
你也可以把g換成3,6之類(lèi)的,只在3-6行中搜索。
在ex中,也可以用"|"來(lái)批處理多條命令,如:
保存和退出文件3,6d | g/csprojectedu/nu:刪除3-6行后,打印所有包含csprojectedu的行。
在Vim實(shí)戰(zhàn)指南(一):基礎(chǔ)編輯命令中,我們介紹過(guò)保存和退出文件的方法,實(shí)際上:
ZZ:是vi命令行模式下的命令
:q:ex命令,退出文件,如果有未保存的修改則無(wú)法退出
:q!:ex命令:強(qiáng)制退出
:x:ex命令,保存和退出文件
:w:ex命令,保存文件
:w!:ex命令,強(qiáng)制保存
:w another:將文件另存為文件another
:3,6w another:將3-6行另存為文件another(編輯神器)
:9,13w >>another:將9-13行追加到文件another后面(編輯神器2)
:r another2:將another2文件的內(nèi)容追到到當(dāng)前文件光標(biāo)后(編輯神器3)
:3r /home/user/another3:將/home/user/another3文件的內(nèi)容追到到當(dāng)前文件第3行后(編輯神器4)
編輯神器1-4,是不是很方便?
多文件處理vi支持多文件處理,同時(shí)處理多文件不僅節(jié)省你多次打開(kāi)和退出vi的時(shí)間,也可以讓你反復(fù)利用vi的緩存區(qū),關(guān)于緩存區(qū)的說(shuō)明見(jiàn)Vim實(shí)戰(zhàn)指南(三):高級(jí)技巧。
首先在命令行打開(kāi)多個(gè)文件:
$ vi filename1 filename2
首先打開(kāi)filename1,你可以通過(guò)ex的命令來(lái)切換:
:n:切換到下一個(gè)文件
:N:切換到上一個(gè)文件
:args:顯示所有文件
:rewind/:rew:跳到第一個(gè)文件
:last:跳到最后一個(gè)文件
記住,緩存區(qū)是公用的,你可以將filename1中選擇的內(nèi)容,通過(guò)緩存區(qū)拷貝到filename2中。
Summary掌握ex命令后,是不是發(fā)現(xiàn)vi越來(lái)越好用了?別著急,更強(qiáng)大更好用的ex命令還在后面。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/24836.html
摘要:原文地址實(shí)戰(zhàn)指南九多窗口編輯雖然我們?cè)趯?shí)戰(zhàn)指南四命令介紹了如何同時(shí)打開(kāi)多個(gè)文件,但是仍然需要通過(guò)來(lái)切換,對(duì)于編程來(lái)說(shuō)不太方便。 原文地址:Vim實(shí)戰(zhàn)指南(九):多窗口編輯 Introduction 雖然我們?cè)赩im實(shí)戰(zhàn)指南(四):ex命令介紹了如何同時(shí)打開(kāi)多個(gè)文件,但是仍然需要通過(guò)n/N來(lái)切換,對(duì)于編程來(lái)說(shuō)不太方便。Vim支持多窗口編輯,可以讓你同時(shí)打開(kāi)并編輯多個(gè)文件。 多窗口的便利 ...
摘要:執(zhí)行命令的命令同樣可以使用命令行工具,這樣省去你退出輸入命令后再重新打開(kāi)的尷尬。在中,輸入來(lái)執(zhí)行命令行工具,如將列出當(dāng)前目錄下的所有文件。 原文地址:Vim實(shí)戰(zhàn)指南(六):環(huán)境偏好配置 Introduction 有沒(méi)有想過(guò)讓你的vi環(huán)境與眾不同?vi可以將你的環(huán)境偏好配置保存下來(lái),甚至支持配置腳本,自定義快捷鍵,和Unix命令行交互,這些便利將進(jìn)一步提高你的編輯速度。 環(huán)境配置 vi使...
摘要:原文地址實(shí)戰(zhàn)指南八前面我們介紹了很多的功能,現(xiàn)在我們進(jìn)入我們的重頭戲。是增強(qiáng)版,相比,增加了很多更實(shí)用的功能。支持可以將你選定的內(nèi)容存在中,內(nèi)容可以包括統(tǒng)計(jì)信息,上一次退出的光標(biāo)位置。同樣也有偏好配置,使用的文件是。 原文地址:Vim實(shí)戰(zhàn)指南(八):Vim vs vi Introduction 前面我們介紹了很多vi的功能,現(xiàn)在我們進(jìn)入我們的重頭戲:Vim。Vim是增強(qiáng)版vi(vi i...
摘要:原文地址實(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更好...
摘要:本文還是介紹一些基本內(nèi)容關(guān)于插件使用可以查看完整配置如果想要在里擁有高效編輯的能力必然要掌握超過(guò)單個(gè)字符編輯的能力不然就可能出現(xiàn)像之前看到過(guò)的一個(gè)笑話在你剛開(kāi)始使用的時(shí)候做過(guò)什么令你難忘的事情答使用跳轉(zhuǎn)到行也就是說(shuō)要掌握詞句子段落級(jí)別的編 本文還是介紹一些基本內(nèi)容, 關(guān)于插件使用, 可以查看完整配置 space-vim. 如果想要在 Vim 里擁有高效編輯的能力, 必然要掌握超過(guò)單個(gè)...
閱讀 1162·2021-09-22 15:19
閱讀 1823·2021-08-23 09:46
閱讀 2314·2021-08-09 13:47
閱讀 1480·2019-08-30 15:55
閱讀 1474·2019-08-30 15:55
閱讀 2036·2019-08-30 15:54
閱讀 2853·2019-08-30 15:53
閱讀 765·2019-08-30 11:03