Vim編輯器使用詳解

  • Vim編輯器使用詳解

  • vim介紹

  • 為什么要學習vim

  • vim三種模式

  • vim工作模式(圖解)

  • vim如何打開文件

  • vim關閉文件

  • 命令模式光標跳轉

    • 字符間跳轉:

    • 單詞間跳轉:

    • 行首行尾跳轉:

    • 行間移動:

  • VIM的命令模式下的命令:

    • 字符編輯:

    • 替換命令(r, replace)

    • 刪除命令:

    • 復制命令

    • 粘貼命令(p, paste): :

    • 其他相關的編輯操作:

    • 翻屏操作:

    • 查找操作:

  • VIM末行模式的操作:

    • 地址定界

    • 查找和替換

    • 練習:

  • 多文件模式:

  • 窗口分隔模式:

  • 定制vim的工作特性:

Vim編輯器使用詳解

vim介紹

在Linux系統中配置應用服務,實際上就是在修改它的配置文件(配置文件可能有多 
個,其中包含不同的參數),而且日常工作中也一定免不了編寫文檔的事情吧,這 
些都是要通過文本編輯器來完成的。在熱門Linux操作系統中都會默認安裝一款超好用的文本編輯器——名字叫“vim”,vim是vi編輯器的升級版。

為什么要學習vim

Vim能夠得到這么多廠商與用戶的認可,原因就是在Vim編輯器中有三種模式——命 
令模式、末行模式和編輯模式,分別又有多種不同的命令快捷鍵組合,很大的提高 
了工作效率,用習慣后會覺得非常的順手。要想在文本操作時更加高效率,我們必 
需先搞清Vim編輯器的三種模式的操作不同與切換方法。

vim三種模式

命令模式:控制光標移動,可對文本進行刪除、復制、粘貼等工作。 
輸入模式:在一般模式中可以進行刪除、復制、貼上等等的動作,但是卻無法編輯文件內容的! 要等到你按下『i, I, o, O, a, A, r, R』等任何一個字母之后才會進入編輯模式。注意了!通常在 Linux 中,按下這些按鍵時,在畫面的左下方會出現『INSERT 或 REPLACE 』的字樣,此時才可以進行編輯。而如果要回到一般模式時, 則必須要按下『Esc』這個按鍵即可退出編輯模式。

1.png

末行模式:在這個模式當中, 可以提供你『搜尋資料』的動作,而讀取、存盤、大量取代字符、離開 vi 、顯示行號等等的動作則是在此模式中達成的!

vim工作模式(圖解)

2.png

記住每次運行vim編輯器后都默認是“命令模式”,需要先進入到“輸入模式”后再進行編寫文檔的工作,而每次編輯完成需先返回到“命令模式”后再進入“末行模式”對文本的保存或退出操作。

vim如何打開文件

格式:vim [OPTION]… [FILE]…

[root@localhost ~]# vim +2 /etc/passwd //直接打開file, 光標在第二行
[root@localhost ~]# cp /etc/passwd passwd
[root@localhost ~]# echo "zabbix" >>passwd
[root@localhost ~]# vim -d /etc/passwd passwd //比較兩個文件

3.png

vim關閉文件

末行模式中: 
:q 退出 
:q! 強制退出,丟棄做出的修改 
:wq 保存退出 
:x 保存退出 
命令模式 
ZZ: 保存退出 
ZQ :不保存退出

4.png

命令模式光標跳轉

字符間跳轉:

h: 左 l: 右 j: 下 k: 上

單詞間跳轉:

w :下一個單詞的詞首 
e :當前或下一單詞的詞尾 
b :當前或前一個單詞的詞首

行首行尾跳轉:

^: 跳轉至行首的第一個非空白字符; 
0: 跳轉至行首 
$: 跳轉至行尾

行間移動:

G:最后一行 
1G, gg: 第一行

VIM的命令模式下的命令:

字符編輯:

x: 刪除光標處的字符; 
#x: 刪除光標處起始的# 個字符 
xp: 交換光標所在處的字符及其后面字符的位置

替換命令(r, replace)

r: 替換光標所在處的字符

:s/root/admin/g 

刪除命令:

d:刪除命令, 可結合光標跳轉命令使用,來實現范圍刪除 
例如:dw刪除一個單詞, dG刪除當前光標所在行到最后一行 
d$: 刪除到行尾 
d0:刪除到行首 
dd: 刪除光標所在的行 
#dd :多行刪除

復制命令

y:復制, 工作命令相似d命令 
例如:yw復制一個單詞 
yy:復制整行

粘貼命令(p, paste): :

p:粘貼當前緩存區的內容, 如果緩存區中內容為整行內容,則內容粘貼在當前行的正下方, 否則粘貼至光標的后面 
P:粘貼當前緩存區的內容, 如果緩存區中內容為整行內容,則內容粘貼在當前行的正上方, 否則粘貼至光標的后面

其他相關的編輯操作:

v:按字符選定 
V:按行選定 
選定后結合編輯命令使用 
u:撤銷之前的編輯 
Ctrl+r:撤銷之前的撤銷

翻屏操作:

Ctrl+f:向文件尾部翻一屏 
Ctrl+b:向文件首部翻一屏 
Ctrl+d:向文件尾部翻半屏 
Ctrl+u:向文件首部翻半屏

查找操作:

/PATTERN:在全文搜索指定模式匹配的字符, 從光標的位置至文件尾部的順序 
?PATTERN:在全文搜索指定模式匹配的字符, 從光標的位置至文件首部的順序 
n:與當前命令同方向, /PATTERN為往后翻 
N:與當前命令反方向

VIM末行模式的操作:

地址定界

注釋:以下命令不加:, 使用前須輸入:進入末行模式 
start,end 
#:具體第#行, 例如2表示第2行 
#,#:表示第#行到第#行, 例如2,10表示第2行到第10行

:2,10s/root/admin/g 

#,+#:表示左側的#表示起始, 加上右邊#表示的行數

:2,+9s/admin/root/g  

.:表示當前行 
$:表示最后一行 
.,$-1:表示當前行到倒數第2行 
%:表示全文, 相當于1,$

:%s/admin/root/g

/pat1/,/pat2/:從第一個被匹配的pat1行開始,到第一個被匹配的pat2的行結束

:/admin/,/ftp/s/admin/root/g

使用方法:

后跟一個編輯命令 
d:刪除 
y:復制 
w /path/to/somewhere:將范圍內的行另存到指定文件 
r /path/to/somewhere:在指定位置插入指定文件的所有內容

查找和替換

地址定界s/要查找的內容/替換的內容/修飾符 
例如:替換全文的abc為123 %s/abc/123/gi 
要查找的內容:可使用模式匹配 
替換為的內容:不可使用模式, 但可以使用\1,\2等后向引用, 還可以使用&符號引用在前面找到的內容

修飾符: 
i:忽略大小寫 
g:全局替換 
查找替換的分隔符可替換為其他字符

例如::s/abc/123/g可替換成 :s@abc@123@g

練習:

1、復制/etc/grub2.cfg 至/tmp目錄, 用查找替換命令刪除/tmp/grub2.cfg文件中的行首的空白字符

%s/^[[:space:]]//

2、復制 /etc/rc.d/init.d/functions文件至/tmp目錄, 用查找替換命令為/tmp/functions的每行開頭為空白字符的行的行首添加一個#號

%s/^[[:space:]]/#&/

多文件模式:

vim FILE1 FILE2 FILE3...

在末行模式下輸入以下命令: 
:n 切換到下一個文件 
:N 切換到上一個文件 
wall保存所有文件 
qall 退出所有

窗口分隔模式:

vim -o|-O FILE1 FILE2...

-o:水平分隔 
-O:垂直分隔 
在窗口間切換:Ctrl+w+上下左右 
單文件窗口分隔: 
Ctrl+w,s split 水平分隔 
Ctrl+w,v vertical 垂直分隔 
如下垂直分隔

5.png

定制vim的工作特性:

配置文件:

全局 /etc/vimrc 
個人 ~/.vimrc 
末行模式下的配置只對當前vim進程有效

(1) 行號

顯示:set number, 簡寫為set nu 
取消顯示:set nonumber, 簡寫為set nonu

(2) 括號匹配

匹配:set showmatch, 簡寫為set sm 
取消:set nosm

(3) 自動縮進

啟用:set ai 
禁用:set noai

(4) 高亮顯示

啟用:set hlsearch 
禁用:set nohlsearch 簡寫 set noh

(5) 語法高亮

啟用:syntax on 
禁用:syntax off

(6) 忽略字符大小寫

啟用:set ic 
禁用:set noic

(7) 獲取幫助:

:help 
:help subject

原創文章,作者:M20_he,如若轉載,請注明出處:http://www.www58058.com/43674

(0)
M20_heM20_he
上一篇 2016-09-06
下一篇 2016-09-06

相關推薦

  • SELinux

    軟件的安全性 提高軟件的安全性 選擇安全系數較高的系統 提高現有系統的安全性 計算機的安全等級 D:最低的安全級別,提供最少的安全防護,系統訪問無限制。DOS C:訪問控制的權限,能夠實現可控的安全防護,個人賬戶管理,審計和資源隔離 Unix Linux windowNT B:支持多級安全,通過硬件對安全數據進行保護 A:最高級別,提供驗證設計,要求數據從生…

    Linux干貨 2017-05-21
  • 常用命令

    基本命令和系統命令

    Linux干貨 2017-11-30
  • Linux文件權限管理-2016-8-04

    Linux文件權限管理 學習大綱 一 關于文件和目錄的權限基本概述(rwx); 二 針對文件或目錄權限管理的命令: a) 相關命令:chown , chgrp ,chmod chown修改文件屬主 和 屬組 語法:chown  [OPTION]…  [OWNER][:[GROUP]]  FILE&#8230…

    Linux干貨 2016-08-04
  • corosync v2 + pacemaker + crmsh 實現mariadb高可用

    高可用mariadb拓撲圖 一、設計前提     1、時間同步 # ntpdate 172.16.0.1 或者 # chronyc sources     2、所有的主機對應的IP地址解析可以正常工作, 主機名要與命令#uname -n 所得的結果一致   &…

    Linux干貨 2014-08-13
  • 0812 find 作業

    0812作業 1、查找/var目錄下屬主為root,且屬組為mail的所有文件 [root@CentOS 7 ~]# find /var -user root -a -group mail /var/spool/mail [root@CentOS 7&nbsp…

    Linux干貨 2016-08-13
  • 初識selinux

    一、selinux介紹     1.selinux歷史     SELinux: Secure Enhanced Linux,是美國國家安全局「NSA=The National Security Agency」和SCC(Secure Computing Corporation)開…

    Linux干貨 2016-09-21
欧美性久久久久