tft每日頭條

 > 生活

 > 在linux 打造屬于自己的vim

在linux 打造屬于自己的vim

生活 更新时间:2024-09-05 02:27:39
前言

學習linux少不了和Vim打交道,今天我們就來了解一下什麼是vim,如何高效使用vim以及如何配置vim。

vi和vim都是linux下多模式的編輯器,兩者關系類似于c/c 的關系,vim是vi的升級版,不僅兼容vi的所有指令,還增加了一些新的特性,比如語法高亮,支持正則表達式等,vim具有程序編輯能力,常用于編寫代碼。下面讓我們具體了解vim

在linux 打造屬于自己的vim(Linux下vim各模式的操作你了解嗎)1

Linux下vim各模式的操作你了解嗎

vim的模式

vim有多種模式,這裡介紹一些常用的模式給大家,分别是命令模式(也叫普通模式Normal mode)、插入模式(Insert mode)、底行模式(last line mode)、可視化模式(Visual mode)、替換模式(Replace mode)。

用得最多的就是命令模式、插入模式和底行模式。文章後面也會教大家在vim上查看其他模式,linux下一般默認是安裝了vim,沒有下載vim執行下面指令即可

[king@VM-12-11-centos code]$ sudo yum intsall -y vim

vim後直接跟文件就會打開對應的文件,如果文件不存在就會自動創建

[king@VM-12-11-centos code]$ vim tmp.c

打開後就是這個界面,這裡我的vim是配置過的,和原生的vim不同,文章後面會介紹vim的具體配置。

在linux 打造屬于自己的vim(Linux下vim各模式的操作你了解嗎)2

Linux下vim各模式的操作你了解嗎

vim模式間的切換

vim打開後默認在Normal命令模式下,也可以稱為中間模式,因為模式間的切換都需要回到命令模式下再切換到對應的模式 在任何模式下隻需要Esc鍵即可回到命令模式,如何從命令模式切換到指定模式我們我們接下來介紹

在linux 打造屬于自己的vim(Linux下vim各模式的操作你了解嗎)3

Linux下vim各模式的操作你了解嗎

命令模式

控制屏幕光标的移動,字符、字或行的删除,移動複制某區段等

光标操作

早期的鍵盤是沒有上下左右鍵的

在linux 打造屬于自己的vim(Linux下vim各模式的操作你了解嗎)4

Linux下vim各模式的操作你了解嗎

所以用h(左)、j(下)、k(上)、l(右)

  • shift ^ :光标定位到當前行的行首,shift $光标定位到當前行行尾
  • gg :定位到起始行
  • shift g :定位到結束行
  • n shift g :n表示指定的行數,跳轉到指定行
  • b/w :以單詞為單位光标前/後移動
  • #l :光标在該行向後移動#個間距
  • ctrl b :屏幕往“後”移動一頁
  • ctrl f :屏幕往“前”移動一頁
  • ctrl u :屏幕往“後”移動半頁
  • ctrl d :屏幕往“前”移動半頁
文本操作
  • yy :複制當前行
  • nyy :以當前行開始,複制n行
  • p:粘貼
  • np :一次重複粘貼n行
  • u:撤銷
  • ctrl r :恢複剛才的撤銷,也就是撤銷剛才的撤銷
  • dd :删除光标所在行(ps:這裡删除還可以當做剪切使用,比如dd删除當前行後,按p可以粘貼到指定位置)
  • ndd :删除n行
  • shift ~ :單詞大小寫切換
  • x :删除光标所覆蓋的字符
  • xn :删除光标後的n個字符
  • shift x :删除光标前的一個字符
  • n shift x :删除光标前n個字符
  • r 字符 :用指定字符替換光标所在字符
  • n r 字符 :用指定字符替換光标後的n個字符
替換模式
  • shift r :從命令模式切換為替換模式,在鍵盤上不斷輸入就會不斷替換當前光标所在字符
插入模式

插入模式就是用來編輯文件内容的模式

從命令模式下進入插入模式:

  • i/I :在光标前面/行首插入
  • a/A :在光标後面/行尾插入
  • o/O :在光标下/上行行首插入

還有一些其他的方式這裡就不介紹了,我們一般用i從命令模式進入插入模式然後編輯代碼

底行模式
  • :(Shift 冒号) :從命令模式進入底行模式
  • w :保存
  • q :退出
  • ! :強制執行
  • wq! :強制保存并退出
  • set nu :顯示行号
  • set nonu :去掉行号

這裡本來是有信号的,我們set nonu後就不顯示行号了

在linux 打造屬于自己的vim(Linux下vim各模式的操作你了解嗎)5

Linux下vim各模式的操作你了解嗎

在linux 打造屬于自己的vim(Linux下vim各模式的操作你了解嗎)6

Linux下vim各模式的操作你了解嗎

vs [文件名] :在窗口下打開對應文件

在linux 打造屬于自己的vim(Linux下vim各模式的操作你了解嗎)7

Linux下vim各模式的操作你了解嗎

這樣就把code.c也顯示出來了

ctrl ww :光标在文件間切換,同時光标在哪個文件,操作的就是哪個文件,wq退出的也是對應的文件

在linux 打造屬于自己的vim(Linux下vim各模式的操作你了解嗎)8

Linux下vim各模式的操作你了解嗎

help vim-modes查看vim的各種模式

開頭的就是命令模式、可視化模式和選擇模式的介紹,回車鍵或是上下左右鍵翻看文件内容,[冒号 q]即可退出

在linux 打造屬于自己的vim(Linux下vim各模式的操作你了解嗎)9

Linux下vim各模式的操作你了解嗎

  • 「/關鍵字」: 先按「/」鍵,再輸入想尋找的字符,如果第一次找的關鍵字不是你想要的,可以一直按「n」,直到往後尋找到你要的關鍵字為止。
  • 「 ?關鍵字」:先按「?」鍵,再輸入你想尋找的字符,如果第一次找的關鍵字不是您想要的,可以一直按「n」,會往前尋找到您要的關鍵字為止。

兩者的區别是:[/關鍵字]是從文件底部開始找,而「?關鍵字」是從文件頂部開始的

可視化模式

v或shift v或ctrl v :都可從命令模式進入可視化模式

批量化注釋和去注釋

在可視化模式下:用hjkl鍵選擇需要注釋掉的區域(黃顔色的就是選中的區域)

在linux 打造屬于自己的vim(Linux下vim各模式的操作你了解嗎)10

Linux下vim各模式的操作你了解嗎

然後按shift i,再輸入//此時就注釋掉了上圖第5行,然後Esc退出,被選中區域就全部注釋掉了。

去掉注釋:同樣在可視化模式下,hjkl選擇去注釋區域,輸入d直接去掉注釋

使用hjkl鍵選擇要複制的内容,按y鍵複制,移動光标,在要粘貼的地方按p粘貼,會直接在光标所在位置處向後粘貼

批量化縮進

同樣在可視化模式下通過hjkl選中要縮進的區域,然後按shift i然後Tab鍵縮進單行,然後Esc退出,這樣被選中區域就都縮進了

vim的配置

默認得vim不太好用,需要我們自己配置,普通用戶配置vim隻能影響當前的普通用戶,其他用戶不受影響。同時建議以普通用戶的身份配置,不要使用root用戶配置。

在普通用戶下創建一個名為.vimrc的文件,然後打開

[test@VM-12-11-centos ~]$ touch .vimrc [test@VM-12-11-centos ~]$ vim .vimrc

  • 設置語法高亮:syntax on
  • 顯示信号 :set nu

還有一些其他的我就不介紹了,[ESc]進入命令模式,[:wq]保存退出

在linux 打造屬于自己的vim(Linux下vim各模式的操作你了解嗎)11

Linux下vim各模式的操作你了解嗎

這樣vim就可以顯示信号和語法高亮了

在linux 打造屬于自己的vim(Linux下vim各模式的操作你了解嗎)12

Linux下vim各模式的操作你了解嗎

這裡給大家推薦一個已經配置好的vim插件VimForCpp,現成的輪子不用白不用,将下面方框中的指令複制到linux上執行即可,不過隻支持centos7

在linux 打造屬于自己的vim(Linux下vim各模式的操作你了解嗎)13

Linux下vim各模式的操作你了解嗎

輸入root密碼後就可以下載了

在linux 打造屬于自己的vim(Linux下vim各模式的操作你了解嗎)14

Linux下vim各模式的操作你了解嗎

下載完成後輸入指令vim就配置好了

[test@VM-12-11-centos ~]$ source ~/.bashrc

在linux 打造屬于自己的vim(Linux下vim各模式的操作你了解嗎)15

Linux下vim各模式的操作你了解嗎

配置好後,vim界面就是這樣了

在linux 打造屬于自己的vim(Linux下vim各模式的操作你了解嗎)16

Linux下vim各模式的操作你了解嗎

vim快捷鍵圖片

在linux 打造屬于自己的vim(Linux下vim各模式的操作你了解嗎)17

Linux下vim各模式的操作你了解嗎

文章介紹了vim的一部分功能,vim的功能遠不止這麼多,後期我會慢慢的更新内容。上面的這些常用指令熟練使用後,我們不僅可以脫離鼠标,還會大大提高寫代碼的效率。

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关生活资讯推荐

热门生活资讯推荐

网友关注

Copyright 2023-2024 - www.tftnews.com All Rights Reserved