目錄
- 一、vim的多模式
- 1.1 命令模式
- 1.1.1 光標移動
- 1.1.2 復制及撤銷
- 1.1.3 剪切及刪除
- 1.1.4 替換
- 1.1.5 批量化注釋/去注釋
- 1.2 底行模式
- 二、vim的配置
個人主頁<—請點擊
Linux專欄<—請點擊
一、vim的多模式
vim
是一款功能強大的文本編輯器,它編輯代碼主要圍繞命令展開,vim
下常見的模式有命令模式、插入模式和底行模式。
如上圖,vim
就是所安裝的一款軟件,沒有什么神秘的地方。
現在我想寫一段代碼,我們就可以使用vim
了。
使用vim
打開之后,默認是在命令模式下,你會發現你按電腦的按鍵屏幕沒有反應,有時候你觸碰到某個按鍵會有反應。如果你要寫代碼就要切換到插入模式,按i
鍵就可以切換,插入模式按Esc
鍵就能切換到命令模式。
此時關注左下角的圖標,會發現命令模式切換到插入模式是這樣的:
切換到插入模式就可以寫代碼了,你會發現vim
使用起來像記事本一樣,沒有自動空行以及代碼提醒功能,這些功能是可以配置的,稍后會講解。
我現在寫了一份代碼,可我該怎么退出呀?
想要退出就需要切換到底行模式,此時插入模式是無法直接切換成底行模式的,需要回退到命令模式,再按Shift + ;
鍵也就是:
切換到底行模式,底行模式按Esc
切換到命令模式。
在底行模式下輸入wq保存并退出
按回車就退出了。
1.1 命令模式
為了詳細講解,我們需要給代碼加上行號,即切換到底行模式輸入set nu
,去除行號輸入set nonu
。
1.1.1 光標移動
在命令模式下對光標做快速移動:Shift+g:移動到最后一行,gg:移動到第一行,n+Shift+g:快速移動到第n行
。
現在我要快速移動到文本的第666
行,即666+Shift+g
:
Shift+6=^
:快速移動到當前行開始,Shift+4=$
:快速移動到當前行結尾。
光標的控制h:左、j:下、k:上、l:右
,當然使用鍵盤上的方向鍵也是可以的,但為什么會有這四個鍵呢?因為早些時候鍵盤上沒有方向鍵。
n+h/j/k/l
:進行光標的快速移動。
w
:按照單詞為單位向右移動,b
:按照單詞為單位向左移動。n+w/b
:按照n
個單詞為單位快速右/左移動。
1.1.2 復制及撤銷
yy
:復制光標所在的行,p
:將復制內容粘貼到當前行的下一行。
n+yy
:拷貝從當前光標所在行往下的n
行文字,n+p
:將復制的內容重復粘貼n
次。
u
:撤銷操作。Ctrl+r
:對u
的撤銷進行撤銷。假設你對上次的撤銷操作后悔了,你可以撤銷上次的撤銷操作。
注意:只要沒有退出vim
,隨時可以進行撤銷操作,一旦退出,u/Ctrl+r
就不起作用了。
1.1.3 剪切及刪除
dd
:刪除當前行,n+dd
:刪除從當前行開始向下的n
行。如果后續沒有進行p
操作,那就是刪除,如果后面進行p
操作,那就叫剪切。
對文件進行100+dd
和p
:
x
:刪除光標所在字符,連續x
會向右刪除。Shift+x=X
:向左刪除。n+x/n+Shift+x
:連續刪n
個。
1.1.4 替換
~
:快速進行大小寫轉換。
r
:替換光標所在位置的一個字符。例如對光標所在位置進行r+2
:
n+r
:替換光標所在位置及之后的n-1
個位置的字符。例如6+r+1
:
Shift + r
:進入替換模式,批量化的內容替換。Esc
再切換成命令模式。
會直接對之前的內容進行替換。
1.1.5 批量化注釋/去注釋
想要選擇區域,我們需要進入到視圖模式,即Ctrl+v
進入視圖模式,Esc
切換成命令模式。
- 批量化注釋
Ctrl+v
進入視圖模式,hjkl
進行區域選擇,Shift+i=I
進入插入模式輸入//
,按Esc
切換成命令模式完成注釋。
- 批量化去注釋
Ctrl+v
進入視圖模式,hjkl
進行區域選擇,按d
刪除注釋。
1.2 底行模式
w!
:強制保存,q!
:強制退出,wq!
:強制保存并退出。
底行模式輸入set nu
增添行號,去除行號輸入set nonu
。
/XXX
:匹配搜索,按n
匹配到下一個最近的XXX
。
!cmd
:不退出vim
,可以直接執行cmd
命令。例如在vim
中對正在寫的文件進行編譯運行。
%s/src/dst/g
:將文本中的src
替換成dst
。例如將打印信息換掉。
vim
本身就有創建新文件的作用,了解這個之后,我們繼續了解。我們平常寫代碼有時候會分成多文件管理,如頭文件的聲明,頭文件的定義及源文件,在vim
下我們也可以這樣管理。
在底行模式下,輸入vs
即可進行分屏操作,Ctrl+ww
即可實現光標在多個分屏之間的移動。
在編譯時總會有錯誤的時候,這時系統會直接報出錯誤的地方,此時我們使用vim
打開源文件時光標可能并不在錯誤附近,一下一下挪太麻煩了,我們可以在打開時光標直接定位到錯誤的位置:vim 文件名 +行號
。
擴充:從命令模式進入插入模式,按a
或按i
或按o
。從命令模式退出vim
,按Shift+zz
,等同于wq
。
二、vim的配置
當前的vim
沒有自動縮進功能,什么功能都沒有,我們使用vim
時,vim
默認會在用戶的家目錄下找一個隱藏的配置文件.vimrc
,vim
的那些自動縮進等功能是通過這個文件配置的,而這個文件是默認是沒有的。
如何驗證vim
會默認打開.vimrc
這個文件呢? 我準備了一個寫入以下代碼的文件。
我們創建.vimrc
,并在其中寫入一行set nu
。
接下來,我們再次使用vim
打開code.c
:
它就默認加上行號了!所以,對vim
做配置,本質是將配置項寫入到/home/XXX/.vimrc
配置文件中。
所以進行vim
的配置就轉化成了我們需要寫入哪些配置項。
即使是將功能齊全的配置項全部添加到.vimrc
中,vim
依舊會很難用,想更好用此時你就需要安裝vim
插件,你會發現配置vim
比較麻煩。
有沒有一鍵安裝vim
的呢? 誒,有的。 這個命令不要在root
用戶下運行,在普通用戶下運行即可,curl -sLf https://gitee.com/HGtz2222/VimForCpp/raw/master/install.sh -o ./install.sh && bash ./install.sh
。接下來你就有了一個功能強大的vim
。
注意:配置好vim
后只會在當前用戶賬號下有效。
配置好后,有什么極個別命令不符合你的要求可以配合大模型搜索相應的配置項,并在.vimrc
中自主搜索修改即可。
總結:
以上就是本期博客分享的全部內容啦!如果覺得文章還不錯的話可以三連支持一下,你的支持就是我前進最大的動力!
技術的探索永無止境! 道阻且長,行則將至!后續我會給大家帶來更多優質博客內容,歡迎關注我的CSDN賬號,我們一同成長!
(~ ̄▽ ̄)~