『學了就忘』vim編輯器基礎 — 96、末行模式中的相關命令
- 2021 年 12 月 28 日
- 筆記
- 測試基礎必會技能 - Linux系統
vim
編輯器中常用的末行模式命令。
1、在文檔中顯示行號
: set nu
:顯示行號。: set nonu
:取消行號。
一旦退出文檔,再打開行號就沒有了。(文章最後第8點,有解決。)
2、是否顯示文檔內容相關顏色
: syntax on
:顯示顏色。: syntax off
:關閉顏色。
說明:
是否依據語法顯示相關的顏色幫助。在
vim
中修改相關的配置文件或Shell腳本文件時(如前面示例的腳本/etc/init.d/sshad
),默認會顯示相應的顏色,用來幫助排錯。如果覺得顏色產生了干擾,則可以取消此設置。
3、是否將查找的字符串高亮顯示
設置是否將查找的字符串高亮顯示。默認是set hlsearch
高亮顯示。
: set hisearch
:高亮顯示。: set nohlsearch
:不高亮顯示。
注意:
當你在命令模式的時候,輸入
/
進入末行模式搜索關鍵字的時候,如果搜索到匹配的內容,關鍵字會自動高亮顯示。你關閉文件,再進入文件後,之前被搜索的關鍵字依舊被高亮顯示。你再打開其他的文件,如果該文件也有之前搜索的關鍵字,依然會被高亮顯示。
我們可以用: set nohlsearch
取消高亮,在set hisearch
開啟來解決一直高亮的問題。但是我們一般不這樣用,我們通常輸入/
進入末行模式,胡亂打一個確保沒有的關鍵字,這樣高亮的信息就關閉了。
4、是否顯示右下角的狀態欄
設置是否顯示右下角的狀態欄。默認是set ruler
顯示。
如下圖所示:
: set ruler
:顯示。: set noruler
:不顯示。
提示:
14,8
表示,光標在當前文檔的第14行,第8個字符上。
5、是否在左下角顯示如”–INSERT–“之類的狀態欄
設置是否在左下角顯示如--INSERT--
之類的狀態欄。默認是set showmode
顯示。
: set showmode
:開啟顯示。: set noshowmode
:關閉顯示。
一般都開始顯示。
6、是否顯示隱藏字符
設置是否顯示隱藏字符(Tab鍵用^I
表示,回車符用$
表示)。
默認是nolist
。如果使用set list
顯示隱藏字符,類似cat -A 文件名
。
: set list
:顯示隱藏字符。: set nolist
:不顯示隱藏字符。
補充:
Windows系統下的回車符在Linux系統中是用
^M$
符號顯示,而不是用Linux系統的回車符$
顯示。這樣會導致Windows系統下編輯的程序腳本,無法在Linux系統中執行。這時可以通過命令dos2unix
,把Windows格式轉為Linux格式,當然反過來unix2dos
命令就是把Linux格式轉為Windows格式。這兩個命令默認沒有安裝,需要手工安裝才能使用。
提示:
如果文檔是在Windows系統中編輯的,在Linux系統中用
vim
編輯器打開,vim
編輯器會自動把回車符這樣的隱藏符號轉換過來。
7、vim支持更多的設置參數
可以通過:set all
進行查看。
8、vim編輯器配置文件
大家會發現,這些設置參數都只是臨時生效,一旦關閉文件再打開,又需要重新輸入。如果想要永久生效,需要手工建立vim
的配置文件~/.vimrc
(在家目錄下創建一個.vimrc
文件,既然在家目錄,說明只對用戶個人有用),把你需要的參數寫入配置文件就永久生效了。
執行如下命令:[root@localhost ~]# vim .vimrc
然後在文件內輸入:
set nu
syntax off
set hisearch
set ruler
set showmode
set list
等等。。。。。。
保存即可,之後在打開任何文件,都自動生效。
9、查找
/查找內容
:從光標所在行向下查找。?查找內容
:從光標所在行向上搜索。n
:下一個。N
:上一個。
10、替換
:1,10s/old/new/g
:替換1到10行的所有old
為new
。
註:1,10s
表示第一行到第十行,s
代表替換。/old/new
表示把old
換成new
。g
表示範圍內替換所有。(如果不加g
,只會替換範圍內第一個old
)
:%s/old/new/g
:替換整個文件的old
為new
。
%
表示範圍是整篇文檔。
替換字符串,舉幾個例子:
- 在shell中
#
開頭是注釋,那我是否可以注釋文件的前10行呢?手工一個一個注釋很麻煩,如何進行批量替換。
:1,10s/^/#/g
:注釋1到10行。
提示:^
正則表達式表示行首,把行首變成#
。
:1,10s/^#//g
:取消注釋。
提示:^#
意思是把行首的#去掉。正則表達式是包含匹配,如果只寫#
,表示1到10行所有的#
都去掉。 - 在C語言,PHP語言等大多數語言中,是使用
//
開頭作為注釋的,用vim
來寫這些程序語言腳本,如何批量加入//
注釋。
:1,10s/^/\/\//g
:1到10行,行首加入//
。
提示:把行首^
替換成\/\/
(雙斜杠//
),\
符號在命令行中代表換行,\
符號在字符串中代表轉義符。(轉義符就是把有特殊含義的字符轉換成普通的字符串符號。)
:1,10s/^\/\///g
:取消1到10行行首的//
。
提示:絕大多數的替換都用最上邊的兩種替換,下邊的兩個例子比較特殊,以後用到照着寫就好。