vim編輯器的三種模式
移動光标
輸入模式
修改文本
作者:周志湖
微信号:zhouzhihubeyond
網名:搖擺少年夢
學會使用vi編輯器是學習linux系統的必備技術之一,因為一般的linux伺服器是沒有gui界面的,linux運維及開發人員基本上都是通過指令行的方式進行文本編輯或程式編寫的。vi編輯器是linux内置的文本編輯器,幾乎所有的類unix系統中都内置了vi編輯器,而其它編輯器則不一定,另外很多軟體會調用vi編輯進行内容編寫,例如crontab定時任務。較之于其它編輯器或gui編輯器,vi編輯速度是最快的。vim編輯器可以看作vi的進階版本,它實作了用顔色來進行特殊資訊的顯示,例如在進行java程式開發是,它會對某些關鍵字用顔色顯示。
vi編輯器:
vim編輯器:
vi編輯器有三種模式,分别是一般模式、編輯模式及指令行模式
1 一般模式,采用vi指令直接進入一般模式
例如
在一般模式下,可以進行上下左右的光标移動、删除字元、行,還可以進行複制和粘貼操作
2 編輯模式,在一般模式中按”i,l,o,o,a,a,r,r”等做任意一個字元後,将進入編輯模式,下面給出的是在一般模式下輸入”i”後,得到的編輯模式視窗。
視窗最底下會顯示– insert–,此時可以對文本内容進行編輯模式,注意因為機器上已經安裝了vim,是以顯示時有顔色。
3 指令行模式
在編輯模式中,按”esc”鍵可以回到一般模式。在一般模式中,輸入”:,/,?”做任意一個字元,光标将移動到視窗底部,此時可以儲存編輯好的檔案或離開vi編輯器等,下圖給出的是輸入”:”之後得到的指令行模式視窗
1 單個字元移動
在一般模式化中,采用up arrow, down arrow鍵可以左右進行字元移動,也可以采用鍵盤上的 h、l鍵進行字元左右移動
空格鍵也可以單個字元地向右移動。
2 移動到某個特定字元
采用fx指令進行字元定位,例如fs可以定位到同一行s下一次現出的位置
按下fs後光标位置
采用fx指令,可以将光标定位到x字元在同一行上一次出現的位置
3 按word移動
w指令将光标移動到下一下word的首字母,标點符号也算一個字。例如有下列文本:
w指令利用空格移動光标,例如
b指令利用空格向後移動光标,例如
b指令利用word包括标點向後移動光标,例如
e指令将光标移動到下一word的尾部,例如
e指令将光标移動到下一個空格分隔字的尾部,例如
4 按行移動
k鍵、up arrow鍵移動到上一行
j鍵、down arrow鍵移動到下一行
5 句子、段落移動
( 移動句子的開始,)移動到句子的結束位置,下面隻給出(的示範
{移動到段落的開始,}移動到段落的結束,下面給出}的示範
5 螢幕位置移動
h(home)移動到螢幕最頂部,下面的圖是沒有按h鍵時光标位置
按完鍵後,
按l鍵可以将光标移動到螢幕最底部,下面的圖是上圖按l鍵之後的效果
按m鍵可以将光标移動到螢幕中間,下圖是上圖按m鍵後的效果
ctr+d(down)向下翻屏移動光标,ctr+u(up)向上翻屏移動光标,指令前面還可以加數字表示翻屏多少行
ctr+f(forward)與pagedown鍵,顯示下一屏文本;ctr+b(backward)與pageup顯示上一屏改文本。
g(globalize)指令将光标移動到指定行号,例如1g,移動到文本第一行
1 插入文本
在一般模式下,按”i、i、a或a”進行文本插入,其中i指令用于在光标之前插入文本内容,i表示在行開始插入,a表示在光标之後插入,a則表示在行尾插入。
2 新行輸入
o表示在當行下的下方建立一個新行,o表示在目前行的上方打開一個新行
3 文本替換
指令r替換單個字元,替換完成後直接傳回一般模式,指令r則連接配接已經文本替換,手動按esc鍵後傳回一般模式
在一般模式下進行文本的修改
1 撤消修改
u撤消上一次修改
u連續執行可以執行若幹次撤消
2 删除字元
x删除光标右邊的字元,每次删除一個,如果指定3x,則每次删除三個
x删除光标左邊的字元,每次删除一個,如果指定3x,則每次删除三個
3 批量删除
常用删除指令有:
dd指令删除一行
dl删除字元,與x指令相同
d0從行首開始删除,到光标處為止
d^從行首第一個字元開始删除,到光标處為止
dw從目前光标處開始,删除到word的末尾
d3w從目前光标處開始,删除到第三個字元的末尾
d)從目前光标開始,删除到句子的末尾
d}從目前光标開始,删除到段落的末尾
d(從目前光标開始,删除到句子的開頭
d{從目前光标開始,删除到段落的開頭
d從目前光标開始,删除到行的末尾
d$與d等同
4 批量修改
常用指令:
cl修改目前字元
cw從光标處開始,修改到字的末尾
cb從word開始處修改,直到光标處
c)從目前光标開始,修改到句子的末尾
c}從目前光标開始,修改到段落的末尾
c(從目前光标開始,修改到句子的開頭
c{從目前光标開始,修改到段落的開頭
c從目前光标開始,修改到行的末尾
cc修改目前行
ncc修改從目前行開始的n行
5 文本替換
s 先删除目前字元,再輸入替換字元
s 先删除目前行,再輸入替換字元作為目前行
6 大小寫轉換
~ 如果字元是大寫,則自動轉換成小寫,如果是小寫,則自動轉換成大寫
添加公衆微信号,可以了解更多最新spark、scala相關技術資訊