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行行首的//。
提示:絕大多數的替換都用最上邊的兩種替換,下邊的兩個例子比較特殊,以后用到照着寫就好。
