Linux VIM文本編輯器
vim概述
Linux提供了一系列功能強大的編輯器,如vi和ASCIItext,Unicode 是linux系統的第一個全屏幕交互式編輯器。vi(vim)命令繁多但是如果使用靈活之後將會大大提高效率。vi是“visual interface”的縮寫,vim是vi IMproved(增強版的vi)。在一般的系統管理維護中vi就夠用,如果想使用代碼加亮的話可以使用vim。vim有3種工作模式,分別是命令行模式、插入模式、底行模式。
命令行模式: 最初進入的一般模式,該模式下可以移動光標進行瀏覽,整行刪除,但無法編輯文字。
插入模式: 只有在該模式下,用戶才能進行文字的編輯輸入,用戶可以使用[ESC]鍵回到命令行模式。
底行模式: 該模式下,光標位於屏幕底行,用戶可以進行文件保存或退出操作,也可以設置編輯環境,如尋找字符串、列出行號。
vim的創建
# vim [options] [file ..]
+#:打開文件後,直接讓光標處於第#行的行首。(#表示註釋行)
+/PATTERN:打開文件後,直接讓光標處於第一個被PATTERN匹配到的行的行首。
vim的保存
w: //保存文件
w flie: //保存至flie文件
vim的退出
q : //退出編輯器,如果文件已修改請使用下面的命令
q!: //退出編輯器,且不保存
wq: //退出編輯器,且保存文件
ZZ: //保存並退出
x: //保存並退出
vim模式轉換:
編輯模式 --> 命令行模式 ESC
命令行模式--> 編輯模式 shift+i
編輯模式--> 末行模式 shift+:
末行模式--> 編輯模式 ESC
vim插入模式中文本的插入
要輸入內容,還需要進入插入模式。進入插入模式除了使用快捷鍵i之外,還可以使用以下快捷鍵
i:insert,在光標所在處輸入
a: 進入插入模式並將光標放在當前光標之後
o:在當前光標所在的行的後面插入一個新行,進入插入模式並將光標放置在新行。
I:在光標所在行的行首輸入
A:進入插入模式並將光標放在當前光標所在的行尾
O:在光標所在處的上方打開一個新行
vim的編輯命令:
查找替換的實現:
在Vim編輯器中,實現簡單查找功能是“/”,從當前位置開始向下查找,其格式如下,在命令模式中輸入:/pattern
如果當前查找到的字符串不是用戶需要查找的字符串,可以使用以下快捷鍵:
n:跳轉到下一個字符串
N:跳轉到上一個字符串。
在Vim編輯器中,使用命令/是從當前位置開始向下查找,還可以使用命令?執行反向查找,即從當前位置開始向上查找。基本格式爲:?pattern
i:忽略大小寫;
g:全局替換,意味着一行中如果匹配到多次,則均替換
可把分隔符替換爲其它非常用字符:
s@@@ s###
要讓Vim編輯器查找時忽略字符串的大小寫,可以使用以下命令:
:set ignorecase
關閉忽略大小寫功能:
:set noignorecase
高亮顯示查找結果,在命令模式中執行:
:set hlsearch
關閉高亮顯示查找結果:
:set nohlsearch
字符編輯:
x:刪除光標所在處的字符
#x:刪除光標所在處起始的#個字符
xp:交換光標所在處的字符與其後面的字符的位置
替換命令:
r:替換光標所在處的字符
刪除命令:
d:刪除命令,可結合光標跳轉字符,實現範圍刪除;
d$:刪除當前光標到行尾的所有字符
d^:刪除當前光標到行首的所有字符
dw:刪除當前光標處的單詞,包括詞尾空格
de:刪除當前光標處的單詞
dd:刪除光標所在處的行;刪除當前光標所在行。
#dd:刪除光標所處的行起始的共#行
J:將當前光標所在行和下一行合併(相當於刪除行尾的換行符)
複製和粘貼
Vim命令模式提供了幾個複製粘貼的快捷鍵。
yy: 複製光標所在的行到緩衝區
nyy:複製n行到緩衝區
y^: 複製當前光標所在的位置到行首的內容到緩衝區
y$: 複製當前光標所在的位置到行尾的內容到緩衝區
使用了以上快捷鍵執行復制操作以後,只要將光標移動到需要粘貼的位置,按下p鍵即可粘貼複製的文本。(若按下P則將緩衝區內容粘貼到當前光標之前)
vim光標跳轉
字符間跳轉
h:左
j:下
k:上
l:右
#COMMAND:跳轉由#指定的個數的字符;
單詞間跳轉
w:下一個單詞的詞首;
e:當前或後一個單詞的詞尾;
b:當前或前一個單詞的詞首;
#COMMAND:跳轉由#指定的個數的單詞;
行首行尾跳轉
^:跳轉至行首的第一個非空白字符;
0:跳轉至行首;
$:跳轉至行尾;
行間跳轉
#G: 跳轉至由#指定的行;
1G, gg: 第一行;
G: 最後一行;
句間跳轉)和(
段間跳轉}和{
vim翻屏操作:
Ctrl+f:向文件尾翻一屏
Ctrl+b:向文件首部翻一屏
Ctrl+d:向文件尾部翻半屏
Ctrl+u:向文件首部翻半屏
Enter:按行向後翻
末行模式下 地址定界:
:start_pos[,end_pos]
#:特定的第#行,例如5即第5行;
.:當前行;
$:最後一行;
#,#:指定行範圍,左側爲起始行,右側爲結束行;
#,+#:指定行範圍,左側爲超始行絕對編號,右側爲相對左側行號的偏移量;例如:3,+7
.,$-1
1,$
%:全文
分割窗口:
將Vim編輯器分割成上下兩個窗口
:split
將Vim編輯器分割成左右兩個窗口
:vsplit
分割新窗口並打開空白文本
:new
分割窗口並打開新文件
:new+文件名
關閉窗口
(1)如果要關閉光標所在的窗口(如果光標不在需要關閉的窗口中,使用快捷鍵Ctrl+W),可以在當前窗口的命令模式中使用命令:close
(2)如果要關閉當前窗口外的其他窗口,可以在當前窗口的命令模式中使用命令only
——控制窗口大小
(1)要控制分割窗口的大小,可以再分割窗口時加上窗口大小參數。例如分割一個只有6行的新窗口“:6split”、“6vsplit”、“6new”...
(2)如果將當前光標所在的窗口放大,可以使用快捷鍵Ctrl+W++
(3)如果要縮小窗口,可以使用快捷鍵Ctrl+W+ -
從衆多窗口中退出
qall:關閉所有保存過的窗口,可速記爲quit all
wall:保存所有修改過的窗口,可速記爲write all
wqall:保存並退出所有窗口,可速記爲write quit all
qall!:不保存強制退出所有窗口,可速記爲quit all!