目錄
一、 進入編輯模式
二咒唆、vim命令模式
三届垫、vim實踐
一、 進入編輯模式
當(dāng)我們使用命令Vim filename
編輯文件時钧排,按回車后就默認進入了一般模式敦腔。
在一般模式下不可以修改文件里的字符均澳,如果要修改字符恨溜,需要進入編輯模式符衔。從一般模式進入編輯模式,可以按i糟袁、I判族、a、A项戴、o形帮、O、r和R中的某一個周叮,使用不同字母進入編輯模式后的光標(biāo)位置不同辩撑,具體行文對照表如下:
i ----------------在當(dāng)前字符前插入
I ----------------在光標(biāo)所在行的行首插入
a ---------------在當(dāng)前字符后插入
A ---------------在光標(biāo)所在行的行尾插入
o ---------------在當(dāng)前行的下一行插入新的一行
O ---------------在當(dāng)前行的上一行插入新的一行
二、vim命令模式
在一般模式下仿耽,輸入:或者/即可進入命令模式合冀。在該模式下,我們可以搜索某個字符或者字符串项贺,
也可以實現(xiàn)保存君躺、替換、退出开缎、顯示行號等操作棕叫,如下所示。
/word -----------------------------------------在光標(biāo)之后查找一個字符串word奕删,按n向后繼續(xù)搜索
?word ----------------------------------------在光標(biāo)之前查找一個字符串word俺泣,按n向前繼續(xù)搜索
:n1,n2s/word1/word2/g ------------------在n1和n2行之間查找word1并替換為word2,不加g則只替換每行的第一個word1
:1,$s/word1/word2/g ----------------------將文檔中所有的word1替換為word2完残,不加g則只替換每行的第一個word1
ps:替換時使用的/可以換成#或@
命令模式的其他功能如下:
:w -------------------------保存文本
:q --------------------------退出Vim
:w! -------------------------強制保存砌滞,在root用戶下,即使文本只讀也可以完成保存
:q! --------------------------強制退出坏怪,所有改動不生效
:wq -------------------------保存并退出
:set nu ---------------------顯示行號
:set nonu -----------------不顯示行號
:x----------------------------保存并退出贝润,表示僅在需要時保存
三、vim實踐
我們依舊拷貝dnsmasq.conf文件來做vim的練習(xí)铝宵,因為該文件行比較多打掘,適合我們做實驗。我們還需要多設(shè)計寫場景鹏秋,多練才能熟練尊蚁。
cp /etc/dnsmasq.conf /tmp/1.txt
vim /tmp/1.txt
完成以下操作。
(1) 分別向下侣夷、向右横朋、向左、向右移動6個字符(6j 6l 6h 6l)百拓。
(2) 分別向下琴锭、向上翻兩頁(分別按兩次Ctrl+F和Ctrl+B)晰甚。
(3) 把光標(biāo)移動到第49行(49G)。
(4) 把光標(biāo)移動到行尾决帖,再移動到行首(Shift+4厕九,Shift+6)。
(5) 移動到1.txt文件的最后一行(G)地回。
(6) 移動到文件的首行(gg)扁远。
(7) 搜索文件中出現(xiàn)的dnsmasq字符串,并數(shù)一下該字符串出現(xiàn)的次數(shù)(輸入/dnsmsq刻像,然后按n)畅买。
(8) 把從第1行到第10行出現(xiàn)的dnsmasq替換成dns(:1,10s/dnsmasq/dns/g)。
(9) 還原上一步操作(u)细睡。
(10) 把整個文件中所有的etc替換成cte(:1,$s/etc/cte/g)皮获。
(11) 把光標(biāo)移動到第25行,刪除字符串 ly(輸入25G后回車纹冤,然后按j向右移動光標(biāo)找到ly洒宝,按v選中,然后按x)萌京。
(12) 還原上一步操作(u)雁歌。
(13) 刪除第50行(50G dd)。
(14) 還原上一步操作(u)知残。
(15) 刪除第37行至第42行的所有內(nèi)容(37G 6dd)靠瞎。
(16) 還原上一步操作(u)。
(17) 復(fù)制第48行的內(nèi)容并將其粘貼到第52行下面(48G yy 52G p)求妹。
(18) 還原上一步操作(按兩下u)乏盐。
(19) 復(fù)制第37行至第42行的內(nèi)容并將其粘貼到第44行上面(37G 6yy 44G P)。
(20) 還原上一步操作(按兩下u)制恍。
(21) 把第37行至第42行的內(nèi)容移動到第19行下面(37G 6dd 19G p)父能。
(22) 還原上一步操作(按兩下u)。
(23) 把光標(biāo)移動到首行净神,把第1行內(nèi)容改為#!/bin/bash(先按gg何吝,把光標(biāo)定位到第1行,然后按字母A鹃唯,進入編輯模式爱榕,同時將光標(biāo)移到行末尾進行修改操作,完成后按Esc鍵)坡慌。
(24) 在第1行下面插入新的一行黔酥,并輸入# Hello!(按o進入編輯模式,同時將光標(biāo)下移另起一行,輸入# Hello!)跪者。
(25) 保存文檔并退出(按Esc鍵棵帽,輸入:wq)。
擴展學(xué)習(xí)
vim的特殊用法
http://www.apelearn.com/bbs/thread-9334-1-1.html
vim快速刪除一段字符
http://www.apelearn.com/bbs/thread-842-1-1.html
vim亂碼
http://www.apelearn.com/bbs/thread-6753-1-1.html
小鍵盤問題
http://www.apelearn.com/bbs/thread-7215-1-1.html
vim加密
http://www.apelearn.com/bbs/thread-7750-1-1.html