文件編輯器 vi

1、關于文本編輯器;

文本編輯器有很多,比如圖形模式的gedit、kwrite、OpenOffice ... ... ,文本模式下的編輯器有vi、vim(vi的增強版本)和nano ... ... vi和vim是我們在Linux中最常用的編輯器。我們有必要介紹一下vi(vim)最簡單的用法,以讓Linux入門級用戶在最短的時間內學會使用它。

nano 工具和DOS操作系統下的edit操作相似,使用簡單,我們不作介紹了,如果您有興趣,不妨嘗試一下;


2、vi 編輯器;

為什么要學會簡單應用vi

vi或vim是Linux最基本的文本編輯工具,vi或vim雖然沒有圖形界面編輯器那樣點鼠標的簡單操作,但vi編輯器在系統管理、服務器管理中,永遠不是圖形界面的編輯器能比的。當您沒有安裝X-windows桌面環境或桌面環境崩潰時,我們仍需要字符模式下的編輯器vi;

vi或vim 編輯器在創建和編輯簡單文檔最高效的工具;


3、vi 編輯器的使用方法;


3.1 如何調用vi ;

?

[root@localhost ~]# vi? filename

?

?

~
~
~
~
~
~
~
~

?


3.2 vi 的三種命令模式;

?

Command(命令)模式,用于輸入命令;
Insert(插入)模式,用于插入文本;
Visual(可視)模式,用于視化的的高亮并選定正文;

?


3.3 文件的保存和退出;

Command 模式是vi或vim的默認模式,如果我們處于其它命令模式時,要通過ESC鍵切換過來。

當我們按ESC鍵后,接著再輸入:號時,vi會在屏幕的最下方等待我們輸入命令;

?

:w? 保存;
:w? filename 另存為filename;
:wq! 保存退出;
:wq! filename 注:以filename為文件名保存后退出;
:q! 不保存退出;
:x 應該是保存并退出 ,功能和:wq!相同

?


3.4 光標移動;

當我們按ESC進入Command模式后,我們可以用下面的一些鍵位來移動光標;

?

j 向下移動一行;
k 向上移動一行;

h 向左移動一個字符;
l 向右移動一個字符;

ctrl+b? 向上移動一屏;
ctrl+f? 向下移動一屏;

向上箭頭??? 向上移動;
向下箭頭??? 向下移動;
向左箭頭??? 向左移動;
向右箭頭??? 向右移動;

?

我們編輯一個文件時,對于 j、k、l和h鍵,還能在這些動作命令的前面加上數字,比如 3j,表示向下移動3行。


3.5 插入模式(文本的插入);

?

i? 在光標之前插入;
a? 在光標之后插入;

I 在光標所在行的行首插入;
A? 在光標所在行的行末插入;

o? 在光標所在的行的上面插入一行;
O? 在光標所在的行的下面插入一行;

s? 刪除光標后的一個字符,然后進入插入模式;
S? 刪除光標所在的行,然后進入插入模式;

?


3.6 文本內容的刪除操作;

?

x 一個字符;
#x 刪除幾個字符,#表示數字,比如3x;
dw 刪除一個單詞;
#dw 刪除幾個單詞,#用數字表示,比如3dw表示刪除三個單詞;
dd 刪除一行;
#dd 刪除多個行,#代表數字,比如3dd 表示刪除光標行及光標的下兩行;
d$ 刪除光標到行尾的內容;

J 清除光標所處的行與上一行之間的空格,把光標行和上一行接在一起;

?


3.7 恢復修改及恢復刪除操作;

?

u? 撤消修改或刪除操作;

?

按ESC鍵返回Command(命令)模式,然后按u鍵來撤消刪除以前的刪除或修改;如果您想撤消多個以前的修改或刪除操作,請按多按幾次u。這和Word的撤消操作沒有太大的區別;


3.8 可視模式;

在最新的Linux發行版本中,vi提供了可視模式,因為這個功能是vim才有的。如果您用的vi沒有這個功能,就換成vim就有了。打開可視模式,按ESC鍵,然后按v就進入可視模式;

可視模式為我們提供了極為友好的選取文本范圍,以高亮顯示;在屏幕的最下方顯示有;

?

-- 可視 --???



--VISUAL--

?

如圖:

進入可視模式,我們就可以用前面所說的命令行模式中的光標移動指令,可以進行文本范圍的選取。

選取文本范圍有何用?

我們可以對某部份刪除作業,按d鍵就刪除了我們選中的內容。
選中內容后,我們按y就表示復制;按d表示刪除;

值得一提是的刪除的同時,也表示復制。我們返回到命令模式,然后移動光標到某個位置,然后按shift+p鍵,就把剛才刪除的內容貼上了。我們先在這里提一句,在后文,我們還得詳細說說。

退出可視模式,還是用ESC鍵;


3.9 復制和粘帖的操作;

其實刪除也帶有剪切的意思,當我們刪除文字時,可以把光標移動到某處,然后按shift+p鍵就把內容貼在原處,然后再移動光標到某處,然后再按p或shift+p又能貼上;

?

p 在光標之后粘帖;
shift+p 在光標之前粘帖

?

來舉一例:

比如我們想把一個文檔的第三行復制下來,然后帖到第五行的后面,我們應該怎么做呢?

有兩種方法;

第一種方法:

先把第三行刪除,把光標移動到第三行處,然后用dd動作,接著再按一下shift+p鍵。這樣就把剛才刪除的第三行帖在原處了。

接著我們再用k鍵移動光標到第五行,然后再按一下p鍵,這樣就把第三行的內容又帖到第五行的后面了;

第二種方法;

進入可視模式,按ESC鍵,然后按v鍵。移動鼠標指針,選中第三行的內容,然后按y鍵復制;再移動指針到第五行,最后按p鍵;

所以復制和粘貼操作,是命令模式、插入模式及可視模式的綜合運用;我們要學會各種模式之間的切換,要常用ESC鍵;更為重要的學會在命令模式下移動光標;


3.10 關于行號;

有時我們配置一個程序運行時,會出現配置文件X行出現錯誤 。這時我們要用到行號相關的操作;


為所有內容添加行號;

按ESC鍵,然后輸入:

?

:set number

?

光標所處位置

在屏幕的右下角,有類似如下的;

?

???????? 57,8????????? 27%

?

在這之中,57表示第57行,8表示第8個字符;


3.11 查找和替換功能;


3.11.1 查找;

首先,我們要進入ESC鍵,進入命令模式;我們輸入/或?就進入查找模式了;

?

/SEARCH? 注:正向查找,按n鍵把光標移動到下一個符合條件的地方;
?SEARCH? 注:反向查找,按shift+n 鍵,把光標移動到下一個符合條件的

?

舉一例:比如我想在一個文件中找到swap單詞,我應該如下做;

首先按ESC鍵,進入命令模式,然后輸入;

?

/swap?

?swap

?


3.11.2 替換;

按ESC鍵進入命令模式;

?

:s /SEARCH/REPLACE/g? 注:把當前光標所處的行中的SEARCH單詞,替換成REPLACE,并把所有SEARCH高亮顯示;
:%s /SEARCH/REPLACE? 注:把文檔中所有SEARCH替換成REPLACE;
:#,# s /SEARCH/REPLACE/g? 注:#號表示數字,表示從多少行到多少行,把SEARCH替換成REPLACE;

?

注:在這之中,g表示全局查找;我們注意到,就是沒有替換的地方,也會把SEARCH高亮顯示;

舉例說明:

比如我們有一篇文檔要修改;

我們把光標所在的行,把所有單詞the,替換成THE,應該是:

?

:s /the/THE/g

?

我們把整篇文檔的所有的the都替換成THE,應該是:

?

:%s /the/THE

?

我們僅僅是把第1行到第10行中的the,替換成THE,應該是;

?

:1,10? s /the/THE/g

?


4、關于本文;

我寫本文的目的是讓新手在最短的時間內用vi或vim創建、編輯和修改文件,所以說這篇文檔并不是大而全的vi手冊。如果把vi所有的功能都說全了,至少得寫一本千頁的手冊;本也沒有涉及更為高級的vi用法。如果想了解的更多,請查找man和help;


5、后記;

到目前為止,關于目錄和文件的操作,我寫過有幾篇了,從文件和目錄的創建、刪除、復制到屬性操作,最后到文件修改等系列文檔。這些文檔都是有相關性的,如果把這些相關性的文檔連起來,就是一個整體知識塊。我們只有掌握了這些知識,才能實現文件系統的管理。

在以后我會寫什么內容呢????可能會補充一下文件的查找,其實以前有類似文檔,到時我總結一下,貼出來給大家看看就行了。

下一步是準備網絡基礎文檔建設中,網絡基礎比較重要,這是我計劃的下一個重點。。。。。。。。


6、參考文檔;

man vi 和vi --help

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/388561.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/388561.shtml
英文地址,請注明出處:http://en.pswp.cn/news/388561.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

MFC80.DLL復制到程序目錄中,也有的說復制到安裝目錄中

在用VS2005學習C調試程序的時候,按F5鍵,總提示這個問題, 不曉得什么原因,網上有的說找到MFC80.DLL復制到程序目錄中,也有的說復制到安裝目錄中,可結果很失望,也有的VS2005安裝有問題&#xff0…

vs顯示堆棧數據分析_什么是“數據分析堆棧”?

vs顯示堆棧數據分析A poor craftsman blames his tools. But if all you have is a hammer, everything looks like a nail.一個可憐的工匠責怪他的工具。 但是,如果您只有一把錘子,那么一切看起來都像釘子。 It’s common for web developers or databa…

服務器

服務器主流品牌:華為、浪潮、戴爾、惠普華為服務器:華為FusionServer RH2288 V3 華為FusionServer RH5885 V3 浪潮服務器: 浪潮英信NP3020M4 浪潮英信NF5280M4 戴爾服務器: 戴爾PowerEdge R730 機架式服務器 戴爾PowerEdge R740 機…

樹莓派 zero linux,樹莓派 zero基本調試

回家之前就從網上購買了一堆設備,回去也不能閑著,可以利用家里相對齊全的準備安裝調試。結果人還沒回來,東西先到了。購買的核心裝備是樹莓派zero w,雖然已經知道它比家族大哥樹莓派小不少,但拿到手里還是驚奇它的小巧…

error C2440 “static_cast” 無法從“void (__thiscall CPppView )(void)”轉換為“LRESULT (__thiscall

error C2440 “static_cast” 無法從“void (__thiscall CPppView )(void)”轉換為“LRESULT (__thiscall CWnd )(WPARAM,LPARAM)” 不能轉換void (_thiscall CMainFrame::*)(void)to LRESULT (__thiscall CWnd::* )(WPARAM,LPARAM)開發平臺由VC6.0升級至VS2005,需要…

簡單的編譯流程

簡易編譯器流程圖: 一個典型的編譯器,可以包含為一個前端,一個后端。前端接收源程序產生一個中間表示,后端接收中間表示繼續生成一個目標程序。所以,前端處理的是跟源語言有關的屬性,后端處理跟目標機器有關的屬性。 復…

廣告投手_測量投手隱藏自己的音高的程度

廣告投手As the baseball community has recently seen with the Astros 2017 cheating scandal, knowing what pitch is being thrown gives batters a game-breaking advantage. However, unless you have an intricate system of cameras and trash cans set up, knowing wh…

linux事務隔離級別,事務的隔離級別(Transaction isolation levels)2

READ COMMITTEDREAD COMMITTED這是數據庫默認的隔離級別。它能保證你不能讀取那張表格數據,只要有其它事務還在改變這張表格數據。可是,因為sql server在select操作的時,鎖表格時間就那么一小會兒,如果一個事務在READ COMMITTED級…

Asp導出到Excel之二

response.contentType "application/vnd.ms-excel" response.addheader "Content-Disposition", "attachment; filename引出文件.xls" 一、適用于動態和表態表。 二、頁面最好只存放數據表,不要有其它內容。 三、對于分頁的情…

warning C4996: “strcpy”被聲明為否決的解決辦法

VC2005中,使用了很多標準的C函數,比如fopen,strcpy之類的。編譯時會出現警告,比如這個: d:\xxxx.c(1893) : warning C4996: “strcpy”被聲明為否決的 緊接著IDE有提示說:“This function or variable…

驗證部分表單是否重復

1. 效果 圖片中的名稱、機構編碼需要進行重復驗證2. 思路及實現 表單驗證在獲取數據將需要驗證的表單數據進行保存this.nameChangeTemp response.data.orgName;this.codeChangeTemp response.data.orgCode; 通過rule對表單進行驗證 以名字的驗證為例rules: {orgName: [// 設置…

python bokeh_提升視覺效果:使用Python和Bokeh制作交互式地圖

python bokehLet’s face it, fellow data scientists: our clients LOVE dashboards. Why wouldn’t they? Visualizing our data helps us tell a story. Visualization turns thousands of rows of data into a compelling and beautiful narrative. In fact, dashboard vi…

用C#寫 四舍五入函數(原理版)

doubled 0.06576523;inti (int)(d/0.01);//0.01決定了精度 doubledd (double)i/100;//還原 if(d-dd>0.005)dd0.01;//四舍五入 MessageBox.Show((dd*100).ToString()"%");//7%,dd*100就變成百分的前面那一部分了

C++設計UDP協議通訊示例

UDP是一種面向非連接,不可靠的通訊協議,相對于TCP來說,雖然可靠性不及,但傳輸效率較高   一、緒言   UDP是一種面向非連接,不可靠的通訊協議,相對于TCP來說,雖然可靠性不及,但…

浪里個浪 FZU - 2261

TonyY是一個喜歡到處浪的男人,他的夢想是帶著蘭蘭姐姐浪遍天朝的各個角落,不過在此之前,他需要做好規劃。 現在他的手上有一份天朝地圖,上面有n個城市,m條交通路徑,每條交通路徑都是單行道。他已經預先規劃…

C#設計模式(9)——裝飾者模式(Decorator Pattern)

一、引言 在軟件開發中,我們經常想要對一類對象添加不同的功能,例如要給手機添加貼膜,手機掛件,手機外殼等,如果此時利用繼承來實現的話,就需要定義無數的類,如StickerPhone(貼膜是手…

北大青鳥c語言課后答案,北大青鳥C語言教程--第一章 C語言基礎.ppt

《北大青鳥C語言教程--第一章 C語言基礎.ppt》由會員分享,可在線閱讀,更多相關《北大青鳥C語言教程--第一章 C語言基礎.ppt(20頁珍藏版)》請在人人文庫網上搜索。1、第一章,C 語言基礎,2,課程地位,.Net ,以 # 開始的語句稱為預處理器指令,#include語句不…

nosql_探索NoSQL系列

nosql數據科學 (Data Science) Knowledge on NoSQL databases seems to be an increasing requirement in data science applications, yet, the taxonomy is so diverse and problem-centered that it can be a challenge to grasp them. This post attempts to shed light on…

C++TCP和UDP屬于傳輸層協議

TCP和UDP屬于傳輸層協議。其中TCP提供IP環境下的數據可靠傳輸,它事先為要發送的數據開辟好連接通道(三次握手),然后再進行數據發送;而UDP則不為IP提供可靠性,一般用于實時的視頻流傳輸,像rtp、r…

程序員如何利用空閑時間掙零花錢

一: 私活 作為一名程序員,在上班之余,我們有大把的時間,不能浪費,這些時間其實都是可以用來挖掘自己潛在的創造力,今天要討論的話題就是,程序員如何利用空余時間掙零花錢?比如說周末…