vim的前身是vi,vim是vi的加強版,現在基本都用vim了,它的作用的建立,編輯,顯示文本文件,vim沒有菜單,只有命令,vim的用法還是非常多的,今天我只分享vim的常用用法,以滿足日常工作需求為主。
先來看一張vim的使用圖,借用兄弟連課件裡的圖:
還是很清晰的,分為命令模式,插入模式和編輯模式,在命令模式可以按i,a或者o鍵進入插入模式,在插入模式按ESC鍵返回命令模式,在命令模式輸入:進入編輯模式,命令以回車結束運行,回到命令模式,輸入:wq保存並退出,好了,下面我們來具體實踐一下:
首先輸入vim fq.list創建一個fq.list的文件並打開
這樣就進入了命令模式,在這個模式下是不能編輯內容的,如果我們想編輯內容,需要進入到插入模式
一 插入命令 i a o I A O
1 a:在光標所在字符後插入,我們按a進入編輯模式
下面的INSERT代表進入了編輯模式,這個時候我們就可以輸入內容了,好了,下面我編輯一些內容,當我不想再編輯的時候,可以按ESC回到命令模式,回到命令模式後,INSERT就會消失
2 A:在光標所在行行尾插入,比如我現在光標在這個位置
我在命令模式,按了A之後
,光標就會跳到行尾,並且進入插入模式
3 i:在光標所在字符前插入,比如我現在光標在這個位置
我在命令模式,按了i之後,再輸入內容d
我們發現d的內容輸入在i的前面了,之前的a命令就會輸入到i的後面
4 I:在光標所在行行首輸入
這個就不演示了
5 o:在光標所在行的下一行輸入,比如我現在光標在這個位置
然後我輸入o命令
我們看到光標到了下一行
6 O:在光標鎖在行的上一行輸入,這個跟上面類似,下面我們來看定位命令
二 定位命令
1 set nu :設置行號
2 set nonu:取消行號
3 :n 把光標移動到第nhang
4 0:移至行首
5 $:移至行尾,這個兩個就不演示了
三 刪除命令
1 x 刪除光標所在處字符
現在光標在i處,我在命令模式按x
發現被刪掉了
2 nx 刪除光標所在處後n個字符
我在命令模式下按5x
3 dd 刪除光標所在行
我按下dd後,第三行整行都被刪除了
4 :n1,n2d 刪除制定范圍的行
比如我在剛才的基礎上輸入:1,2d
我們發現第一行和第二行被我們刪掉了
三 復制和剪切命令
1 yy復制當前行,p/P粘貼當前光標所在行的行下或行上
比如我現在文本裡是這樣的
我按yy,然後按p
2 dd剪切當前行,p/P粘貼當前光標所在行的行下或行上
這個跟上面類型,就不演示了,好了,那麼如果我想復制多行怎麼辦呢
首先用鼠標選擇我要復制的區域,然後按y,然後進入編輯模式,再按鼠標右鍵即可,平時會這個就夠用了
四 替換和取消命令
1 r取代光標所在處字符
比如我現在想取代u,那麼按r,然後輸入a
我們發現u變成了a
2 R從光標所在處開始替換字符,直接按ESC結束
3 u取消上一步操作,只能是上一步
五 搜索和搜索替換命令
1 /string 搜索指定字符串,如果想忽略大小寫,在搜索前先輸入:set ic,搜索到結果後按n可以找到下一個
比如我現在想搜Donglu
2 :%s/old/new/g 全文替換指定字符串
比如我現在想把Donglu替換成damingbai
3 :n1,n2s/old/new/g 在指定范圍內替換,這個就不演示了
六 保存和退出命令
1 :wq保存修改並退出
2 :q!不保存修改並退出
3 ZZ 保存修改並退出的快捷鍵
七 導入命令執行結果:r !命令
比如我現在想把date的執行結果放到這個文件中:r !date
注意,是放到光標所在處
八 定義快捷鍵
:map 快捷鍵 觸發命令
:map ^P I#
這個命令什麼意思呢,就是把Ctrl+P快捷鍵定義為I#,I代表定位到行首並進入插入模式,然後插入#號,然後回到命令模式,定義了這個快捷鍵,後面再想加入注釋#,直接Ctrl+P即可
刪除#呢
:map ^B 0x 0代表移動到行首,x代表刪除當前光標所在字符
九 連續行注釋
:n1,n2s/^/#/g
^代表行首
我們想把第一行和第二行注釋掉
取消注釋一樣的
:n1,n2s/^#//g
如果是//這種注釋呢
:n1,n2s/^/\/\//g 需要加\轉義字符
十 替換
:ab donglu lixin ,比如以後我想輸入donglu,自動變為lixin
接下來我進入插入模式輸入donglu然後空格或回車
這裡變成了lixin
好了,剛剛這幾個快捷鍵或者是替換,在重啟或者重新連接後就會失效,怎麼辦呢,需要在/home/當前用戶下創建一個.vimrc的文件,然後在裡面保存剛剛的設置,不需要開頭的:即可,這樣每次重啟或者重新連接,配置的快捷鍵和替換都一直生效
Linux文本編輯器vim的一般用法就總結到這裡,其實vim別的用法還有很多,我們知道上面這些操作,就足夠可以應付日常工作了,今天的總結就到這裡,如有問題,歡迎指正,謝謝。