紅聯Linux門戶
Linux幫助

馬哥linux分享之強大的編輯器vi

發布時間:2014-08-21 20:54:08來源:紅聯作者:小小295813080
vi編輯器是一個處理ASCII數據的文本工具。大多數linux發行版都已經默認安裝了vi編輯器。vi是visual interface的縮寫vim是 visual interface improved即增強版的vi,vim默認支持代碼命令加亮,這樣使得文本更易看懂。vi有兩種配置文件一種是全局配置文件 /etc/vimrc,全局配置文件的設置對所有用戶都生效。另一種是用戶配置文件,這個配置文件需要自己手動去創建,如 touch ~/.vimrc,創建在用戶家目錄,并把它創建為隱藏文件,在這里的設置,只針對當前用戶自己生效。

1、vi的模式和模式之間的轉換
vi有三種模式,命令模式(command mode)也叫編輯模式、插入模式(Insert mode)和底行模式(last line mode)也叫末行模式,各個模式之間的關系如下圖所示:
圖像 4.png
vi默認打開就是編輯模式,編輯模式是不能對文本進行任何寫操作的。
(1)編輯模式---->輸入模式:可以如下操作
直接鍵入 i: insert,實現在當前光標所在處轉換為輸入模式
I: 在當前光標所在行的行首轉為輸入模式
a:append,實現在當前光標所在處字符后面轉換為輸入模式
A:在當前光標所在行的行尾轉為輸入模式
o:實現在當前光標所在行的下方新建一個空白行并轉換為輸入模式
O:在當前光標所在行的上方新建一行,并轉化為輸入模式
(2)輸入模式----->編輯模式:
按鍵盤的Esc鍵
(3)編輯模式----->末行模式
鍵入 :
(4)末行模式----->編輯模式
連續按兩下Esc鍵
2、編輯模式進行的操作
(1)光標的跳轉:
a)光標在字符間跳轉
h:左 #h 向左側跳#個字符
l:右
j:下
k:上
b)光標在單詞間跳轉
w:后一個單詞的詞首
e:跳至當前或下一個單詞詞尾
b:跳至當前或前一個單詞詞首
c)光標在句子間跳轉
):下一句
(:前一句
d)光標在段落間跳轉
}:下一段
{:前一段
e)光標在行間跳轉:
1G,gg:跳到行首
G:行尾
#G:第n行,#表示行數
f)光標在行內跳轉:
^:行首的第一個非空白字符
$:絕對行尾
0:絕對行首
(2)翻屏操作
ctrl+f:向文件尾部翻一屏相當于Pagedown操作
ctrl+b:向文件首部翻一屏相對于Pageup操作
ctrl+d:向文件尾部翻半屏
ctrl+u:向文件首部翻半屏
(3)復制操作,也叫y(yank)操作
yy:表示復制光標所在行
#yy:表示復制包括光標所在行及以下#行,#表示數字
y$:表示復制光標所在處至行尾
y^:表示復制光標所在處至行首
(4)粘貼操作,也叫p(paste ,put)操作
復制的是整行:
p: 在當前光標所在行的下方粘貼;
P:在當前光標所在行的上方粘貼
復制的不是整行:
p: 在當前光標所在處字符的后方粘貼;
P:在當前光標所在處字符的前方粘貼;
(5)刪除操作,(x,d)
x:刪除光標后面的單個字符
#x:刪除光標后面的#個字符,#表示數字
dw:刪除光標所在的單詞
db:刪除光標所在處之前的單詞
de:刪除光標所在處之后的單詞
d^:刪除光標所在之前的所有字符單詞
d$:刪除光標所在之后的所有字符單詞
dd:刪除光標所在處的整行
#dd:刪除包含光標處的下面幾行,#表示數字
(6)撤銷操作
如果對之前失誤操作進行撤銷可按u鍵,撤銷之前的操作,默認可以撤回之前的50次操作。當你覺得之前的撤銷操作也需要撤銷,則按crtl+u鍵,對撤銷進行撤銷。
(7)查找操作,直接在編輯模式下輸入/或者?,然后接你要查找的字符
/keyword: 從當前光標所在處向文件尾部查找
?keyword:從當前光標所在處向文件首部查找
n: 下一個,跟查找命令相同的方向
N:前一個,跟查找命令相反的方向

3、輸入模式進行的操作
當在編輯模式下鍵入(i,I,a,A,o,O)后,文件下方會有-- INSERT -- 字樣,表示現在處于輸入模式,輸入模式對輸入的任何字符都會直接輸入到文件中。

4、末行模式進行的操作
(1)保存退出的操作
:w 保存
:q 退出
保存退出
:wall 所有的都保存,一般應用在同時打開多個頁面
:qall 所有的都退出,一般應用在同時打開多個頁面
:w! 強制保存
:q! 強制退出
:wq! 強制保存退出
! 強制保存退出
(2)刪除的操作,在末行模式進行操作可以支持定界
語法格式 開始行,結束行d
:. 表示當前光標所在行
:1 表示第一行
:# 表示第#行,#表示數字
表示最尾行
:% 表示整個文本
:1,$d 刪除第一行到最后一行
:.$d 刪除當前光標直到最尾行
:%d 刪除整個文本
:1,+3d 刪除第一行和后面的三行,第一行也包括,所以是刪除四行
(3)查找操作,查找操作和在編輯模式下的查找操作一樣,支持模式匹配
/keyword: 從當前光標所在處向文件尾部查找
?keyword:從當前光標所在處向文件首部查找
n: 下一個,跟查找命令相同的方向
N:前一個,跟查找命令相反的方向
(4)修改替換操作,也支持模式匹配
語法格式
:地址定界s/查找模式/替換成的內容/gi
/表示分隔符,可以為@、#等特殊容易區別的符合
g global全局的,i ignore 不區分大小寫
eg:
1
2
3
4
5
6
7
8
9
10
刪除行首開頭的#:
:%[email protected]^#@@
刪除行首開頭的#及后面緊跟的空白字符;
:%[email protected]^#[[:space:]]*@@
為空白字符開頭的行的行首加上#;
:%[email protected]^[[:space:]]@#[email protected]
把down改成up;
:%[email protected]@[email protected]
為指定范圍內的行的行首添加#;
:1,[email protected]^@#@g
5、窗口屬性定義,在末行模式 :(在末行模式直接輸入set可以看set的幫助命令),no代表取反的意思
顯示行號:
set nu
set nonu
自動縮進:
set autoindent,set ai
set noai
不區分大小寫
set ignorecase, set ic
set noic
顯示匹配的括號
set showmatch,set sm
set nosm
語法著色
syntax on
syntax off
搜索高亮顯示
set hlsearch
set nohlsearch
可以直接把窗口定義的屬性寫到vim的配置文件中。

6、vim其它的支持
(1)vim可視化模式
visual模式
v: 選中光標劃過的字符
V:選中光標劃過的行,整行選取
Esc, Esc:回到編輯模式
(2)同一文檔窗口分割:
Ctrl+w,s: 水平分割 Ctrl+w, 箭頭(上下),表示切換
文章評論

共有 2 條評論

  1. Shah 于 2014-12-14 14:42:35發表:

    good

  2. 4795442 于 2014-10-09 16:10:31發表:

    {:3_118:}

贵州体彩11选5查询号码 十大选股软件排名 安徽11选5一定牛遗漏 极速11选五走势 刘伯温四肖中特资料 美达股份股票 没玩过股票怎么入门 天涯论坛彩票论坛 一分快3在线人工计划网 上海 股票融资 她理财理财是个大骗局