你會使用 Linux 編輯器 Vim 嗎?
首先我們先理清楚一個概念:編輯器和編譯器和調試器!
⭐️vim:是一款編輯器,只負責寫代碼;相當於 windows 的記事本;
⭐️gcc:是一款編譯器,只負責程序的翻譯;
⭐️gdb:是一款調試器,只負責程序的調試
而在我們在用 VS 寫 C 代碼的時候,這些是全都在 VS 編譯器上實現的;因爲 VS 是集成開發環境!
1. vim 的使用學習
1.1 vim 簡介:
vim 是一個功能強大的多模式編輯器, 是 Linux/UNIX 上最常用的文本編輯器, 它的作用是建立、編輯、顯示文本文件。Vim 沒有菜單,只有命令。
⭐️命令模式(默認):輸入的任何內容,都被當做命令;
⭐️插入模式;
⭐️低行模式;
總結:任何模式互相切換,都可以先 Esc 切換到命令模式!
1.2 命令模式下的常用命令
🥅插入命令
對於小寫的 aio:a 代表在當前光標後插入;i 代表在當前光標前插入;o 在光標下一行插入 對於大寫的 AIO:A 代表在當前光標所在行的行尾插入;I 代表在當前光標所在行的行首插入;O 代表在當前光標所在行的上一行進行插入;
🥅 定位命令
-
首先 shift+: 進入低行模式,然後輸入 set nu 就可以在前面加上行號,set nonu 就可以取消行號;
-
G 跳到最後一行的開頭,gg 回到第一行的開頭;
-
跳到指定的行:nG 或者: n
-
$ 移至到當前光標所在的行尾,0 移至到當前光標所在的行首
補充:b 往前找,w 往後找,並且每次跳過一個單詞;
補充:hjkl 對應着左移、下移、上移、右移;也可以用上下左右鍵來移動;
補充:L 是移動到本界面的最後一行;
🥅 刪除命令
-
x 刪除光標所在處字符,每次刪除一個字符;
-
nx 刪除光標所在處後 n 個字符,nX 刪除光標所在處前 n 個字符,n 是幾就刪除光標後幾個字符;
-
dd 刪除光標所在的這一行;
-
D 刪除光標所在處到這一行的行尾位置;
-
ndd 從光標所在行算起,n 是幾就刪除後面的幾行;
-
dG 刪除光標所在的這一行到整個文件的末尾處;
-
:n1,n2d 刪除指定範圍的行;
-
u 如果誤刪除,可以利用 u 進行回退恢復,相當於 windows 裏的 ctrl+z 的作用;
補充:shift ~ 可以實現大小寫之間的轉換;
🥅複製和剪貼
-
yy 複製當前行,nyy 複製當前行以下 n 行;然後 p 就可以複製到當前光標處的下一行,P 複製到當前光標處的上一行;
-
dd 剪切當前行,ndd 剪切當前行以下 n 行;然後 p 就可以複製到當前光標處的下一行,P 複製到當前光標處的上一行;
🥅搜索和搜索替換命令
-
:%s/old/new 全文替換指定字符串,%s 代表整個全文,把 old 字符串替換成 new 字符串;
-
:n1,n2s/old/new/g 全文替換指定字符串,n1 是起始行,n2 是終止行;把 old 字符串替換成 new 字符串;g 代表不詢問,也可以用 c 代表詢問;
-
r 取代光標所在處的一個字符;後面在輸入相當於在光標處後面直接插入;
-
R 從光標所在處開始替換字符,直到整個行被替換完,後面在輸入相當於在光標處後面直接插入,按 ESC 結束;
-
u 取消上一步操作
🥅 保存和退出命令
-
:w! 保存修改
-
:q! 不保存修改退出
-
:wq! 保存修改並退出;或者用 x!,在或者用 ESC+shift+ZZ;
-
:w 文件名;表示把當前文件的內容另存到指定文件裏;相當於備份;
2. vim 使用技巧
2.1 簡單技巧
🥅導入命令執行結果到文件裏 :r ! 命令
- r:代表寫入;! 命令:表示命令執行的結果,就相當於我們在終端裏直接輸入命令一樣
⭐️比如:我們正在編寫一個 111 文件 (vim 111),我們想要把當前的時間寫入進來;我們需要退出當前編輯的文件,然後在終端輸入 date 命令,把結果複製,然後在 vim 111 進入文件,進行粘貼,想一想都麻煩!
⭐️但是如果我們在當前編輯的 111 文件內,直接執行: r!date;就能把時間直接打印到當前光標處!
🥅連續行註釋
- :n1,n2s/^/#/g
⭐️對於 Linux 來說,註釋符是 #;這裏和搜索替換的用法很相似,我們就先解讀一下:把 n1 起始行和 n2 終止行裏面的內容進行註釋 (#);^(尖角號) 代表移到首行字符並進入插入模式;# 是把註釋符 #插入進去;g 代表不詢問;
- :n1,n2s/^#//g
⭐️表示把首行的註釋符 #取消掉;相當於把首行的 #替換成空;
2.2 快捷鍵的定義
🥅定義快捷鍵 :map 快捷鍵 觸發命令
例:我們想進行註釋 (#):1. 按 0 移至首行 2.i 插入 3.# 註釋 4. 退回到命令模式;我們需要四步;但是如果我們自己定義快捷鍵呢?只需要一步!
- :map ^P I#
⭐️我們利用 map 進行快捷鍵的定義,^ 並不是 ctr+6,而是 ctrl+v+p;I 代表行首並進入插入模式;# 代表插入的是 #;成功插入後退回到命令模式;
⭐️這樣以後再註釋,直接 ctrl+p,就可以了,感興趣的小夥伴快快操作起來吧!
- :map ^B 0x
⭐️有了首行插入註釋符 #的快捷鍵,不妨在定義一個,刪除首字符的快捷鍵;0 代表移動到首行,x 表示刪除一個字符;
⭐️以後想要直接刪除首行的第一個字符,直接 ctrl+b 就可以了;
🥅替換快捷鍵: ab
例:我們經常要輸入自己的郵箱,但是每次那麼長太麻煩了;所以我們不妨定義一個快捷鍵來代替我們的郵箱;這就需要 ab 命令;
- :ab mymail xxx@qq.com
⭐️這樣我們在輸入郵箱直接輸 mymail 回車,就可以替換成 1870298470@qq.com,是不是很方便;
注意:對於我們當前定義的快捷鍵都是臨時生效的,要想永久生效需保存在:文件. vimrc 中
⭐️對於 root 用戶:寫入 / root/.vimrc 當中
⭐️對於普通用戶:寫入 / home/username/.vimrc
3. 簡單 vim 配置(重點)
首先讓大家看一下我的 vim 配置後的結果
配置過後是不是有點像 VS 的環境?不妨打開自己的 vim 看看是不是這樣的效果!
基本配置
⭐️所有的基本配置,本質是將我們的配置項寫入. vimrc 當中;對於普通用戶,我們直接 vim .vimrc 把配置文件寫進去就行;例如一些簡單的配置:
也可以用別人的配置,我目前就用的別人的,更加全面!
> curl -sLf https://gitee.com/HGtz2222/VimForCpp/raw/master/install.sh -o ./install.sh && bash ./install.sh
直接在終端輸入,然後回車就可以啦!
⭐️下載完成後還要 source ~/.bashrc 讓配置生效
⭐️卸載配置直接執行:bash ~/.VimForCpp/uninstall.sh
自動配置推薦《傳送門》(https://github.com/askunix/VimForCpp);在 GitHub 上,進入的時候可能會有卡頓,請耐心等待;配置好以後,在 vim 裏面在寫代碼,別提多流暢啦!
來自:CSDN,作者:@每天都要敲代碼
鏈接:blog.csdn.net/m0_61933976/article/details/124653524
本文由 Readfog 進行 AMP 轉碼,版權歸原作者所有。
來源:https://mp.weixin.qq.com/s/HjV5uaq_noPfq68Nl_118g