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