1. vim簡介
vim是從vi發展出來 ,第一個版本由布萊姆·米勒在1991年發佈 ,它基於VIM許可證,兼容GPL。
Vim 的全名爲 Vi IMproved 意思爲VI改良版;vim與vi不一樣點爲,vim能夠用顏色直觀顯示,方便查看;
2. 安裝vimvim
安裝vim的命令:yum install -y vim-enhancedc#
查看安裝vim的包 rpm -qf /usr/bin/vim bash
1
2
|
[root@localhost ~]
# rpm -qf /usr/bin/vim
vim-enhanced-7.2.411-1.8.el6.i686
|
若是沒安裝包,查詢要安裝的包的名字ide
[root@localhost ~]# yum whatprovides vimspa
使用格式爲:vim filenamecode
vim +n filename n爲數字,能夠定位到文件的第n行;ci
3. vim的三種模式:
通常模式
文檔
在這個模式下,能夠:上下移動光標,刪除某個字符,刪除某行,複製、粘貼一行或者多行。字符串
通常模式下的光標移動
get
h或者向左方向鍵 | 光標向左移動一個字符 |
l或者向右方向鍵 | 光標向右移動一個字符 |
k或者向上方向鍵 | 光標向上移動一個字符 |
j或者向下方向鍵 | 光標向下移動一個字符 |
Ctrl+f或pageup鍵 | 屏幕向前移動一頁 |
Ctrl+b或pagedown鍵 | 屏幕向後移動一頁 |
數字0或者Shift + 6 | 移動到本行行首 |
Shift + 4 | 移動到本行行尾 |
gg | 移動到首行 |
G | 移動到尾行 |
nG(n是任意數字) | 移動到第n行 |
shift+6 移動到非空白字符的行首
數字 0 則是本行行首,無論是不是空白字符;
通常模式下的刪除、複製和粘貼
x,X | x向後刪除一個字符,X向前刪除一個字符 |
nx | 向後刪除n個字符 |
dd | 刪除/剪切光標所在的那一行 |
ndd(n爲數字) | 刪除/剪切光標所在行起向下一共n行 |
yy | 複製光標所在行 |
p | 從光標所在行向下粘貼已經複製或者粘貼的內容 |
P | 從光標所在行向上粘貼已經複製或者粘貼的內容 |
nyy | 從光標所在行算起向下複製n行 |
u | 還原上一步操做 |
v | 按v後移動光標會選中指定字符,而後能夠複製、粘貼等 |
刪除一個詞語 dw
複製一個詞語 yw
全選文本依次按如下字母 gg shift+v G
全文複製依次按如下字母 gg shift+v G Y
編輯模式
一 般模式下,是不能夠修改某一個字符的,只能到編輯模式了。從通常模式進入編輯模式,只需你按一個鍵便可(i, I, a, A, o, O, r, R)。當進入編輯模式時,會在屏幕的最下一行出現「INSERT或REPLACE」的字樣(若是你的CentOS有支持中文,那麼會顯示「插入」)。從編 輯模式回到通常模式只須要按一下鍵盤左上方的ESC鍵便可。
i | 在當前字符前插入 |
I | 在光標所在行行首插入 |
a | 在當前字符後插入 |
A | 在當前行行尾插入 |
o | 在當前行的下一行插入新的一行 |
O | 在當前行的上一行插入新的一行 |
在通常模式下,輸入 「:」 或者 「/」 便可進入命令模式。在該模式下,咱們能夠搜索某個字符或者字符串,也能夠保存、替換、退出、顯示行號等等。
命令模式下查找和替換
/word | 向光標以後尋找一個字符串爲word,按n向後繼續搜索 |
?word | 向光標以前尋找一個字符串爲word,按n向前繼續搜索 |
:n1,n2s/word1/word2/g | 在n1,n2行之間查找word1並替換爲word2,不加g則只替換每行的第一個word1 |
:1,$s/word1/word2/g | 替換文檔中全部的word1爲word2,不加g只替換每行的第一個word1 |
$ 表明行尾
s 表明替換
g 表明全局
1,$ 也能夠用 % 代替;
:nohl 去掉***高亮顯示的字符
:1,30s/\/etc\/init.d/abc/g 若是替換字符裏面有/的話,須要用轉義字符 \ 轉義
:1,30s#/etc/init.d#abc#g 或者用#號分隔
:1,30s@/etc/init.d@abc@g 或者用@號分隔
查找某個詞語在全文出現了多少次
/name 以後按 n 鍵往下人工數
:%s/name/$/gn = :%s/name/name/gn 全文搜索,替換名字不變,意思爲不替換,加 n 統計數字;
命令模式其餘功能
:w | 保存文本 |
:q | 退出vim |
:w! | 強制保存,在root用戶下即便文本只讀也能夠完成保存 |
:q! | 強制退出,全部改動不生效 |
:wq | 保存並退出 |
:set nu | 顯示行號 |
:set nonu | 不顯示行號 |
:n 直接跳轉到第n行,至關於 nG
:wq 內容不更改強制保存並退出,會更改mtime和ctime;
:x 內容不更改保存退出,不會更改mtime和ctime;