Vim是從vi發展而來的文字編輯器,可以用顏色或底線等方式來顯示一些特殊的資訊。Vim是Linux中必不可少的工具,搭建網站修改設定檔時經常用到。本教程介紹Vim編輯器的基本命令和常用操作。
背景資訊
Vim的各個模式介紹如下表所示:
模式 | 作用 | 模式轉換 |
普通模式 (Normal Mode) | 在該模式下,您可以複製、粘貼、刪除字元或行。 |
|
插入模式 (Insert Mode) | 在該模式下,您可以插入字元。 | 在普通模式下,按 說明 進入插入模式後,編輯器左下角會顯示 |
替換模式 (Replace Mode) | 在該模式下,您可以替換字元。 | 在普通模式下,按 說明 進入替換模式後,編輯器左下角會顯示 |
可視模式 (Visual Mode) | 在該模式下,您可以選擇文本。命令(如,複製、替換、刪除等)僅作用於選中的文檔。 | 在普通模式下,按 說明 進入可視模式後,編輯器左下角會顯示 |
命令模式 (Command Mode) | 在該模式下,您可以尋找字串、替換字串、顯示行號、儲存修改、退出編輯器等。 | 在普通模式下,按 |
插入
基本命令:
i:在當前字元的左邊插入。
I:在當前行的行首插入 。
a:在當前字元的右邊插入。
A:在當前行的行尾插入。
o:在當前行下面插入一個新行。
O:在當前行上面插入一個新行。
本樣本中使用的example.conf檔案,如下所示:
# To be able to use the functionality of a module which was built as a DSO you
# have to place corresponding `LoadModule' lines at this location so the
# directives contained in it are actually available _before_ they are used.
# Statically compiled modules (those listed by `httpd -l') do not need
# to be loaded here.
#
# Example:
# LoadModule foo_module modules/mod_foo.so
#
Include conf.modules.d/*.conf
樣本一:在設定檔example.conf的第一行,插入
Location
。步驟如下:運行
vim example.conf
命令開啟檔案,進入普通模式。按
i
進入插入模式。輸入
Location
。按斷行符號鍵換行。
按
Esc
鍵退出插入模式。輸入
:wq
儲存檔案並退出。插入完成後,example.conf檔案如下所示:
Location # To be able to use the functionality of a module which was built as a DSO you # have to place corresponding `LoadModule' lines at this location so the # directives contained in it are actually available _before_ they are used. # Statically compiled modules (those listed by `httpd -l') do not need # to be loaded here. # # Example: # LoadModule foo_module modules/mod_foo.so # Include conf.modules.d/*.conf
樣本二:在設定檔example.conf第十行的行首,插入
#
。步驟如下:運行
vim example.conf
命令開啟檔案,進入普通模式。按
:10
將游標定位到第10行。按
I
進入插入模式。輸入
#
。按
Esc
鍵退出插入模式。輸入
:wq
儲存檔案並退出。插入操作完成後,example.conf檔案如下所示:
# To be able to use the functionality of a module which was built as a DSO you # have to place corresponding `LoadModule' lines at this location so the # directives contained in it are actually available _before_ they are used. # Statically compiled modules (those listed by `httpd -l') do not need # to be loaded here. # # Example: # LoadModule foo_module modules/mod_foo.so # #Include conf.modules.d/*.conf
樣本三:在設定檔example.conf中,在
Include conf.modules.d/*.conf
行的下一行插入LoadModule rewrite_module modules/mod_rewrite.so
。步驟如下:運行
vim example.conf
命令開啟檔案,進入普通模式。運行
/Include conf.modules.d/*.conf
找到目標行。按
o
進入插入模式。輸入
LoadModule rewrite_module modules/mod_rewrite.so
。按
Esc
鍵退出插入模式。按
:wq
儲存檔案並退出。插入完成後,example.conf檔案如下所示:
# To be able to use the functionality of a module which was built as a DSO you # have to place corresponding `LoadModule' lines at this location so the # directives contained in it are actually available _before_ they are used. # Statically compiled modules (those listed by `httpd -l') do not need # to be loaded here. # # Example: # LoadModule foo_module modules/mod_foo.so # Include conf.modules.d/*.conf LoadModule rewrite_module modules/mod_rewrite.so
替換
基本命令:
R:替換游標高亮的字元,直至按下Esc
鍵退出替換模式。
本樣本使用的example.conf檔案,如下所示:
# AllowOverride controls what directives may be placed in .htaccess files.
# It can be "All", "None", or any combination of the keywords:
# Options FileInfo AuthConfig Limit
#
AllowOverride None
樣本:將設定檔example.conf中的AllowOverride None
更改為AllowOverride All
。
運行
vim example.conf
命令開啟檔案,進入普通模式。運行
/AllowOverride None
找到目標。移動游標至
None
的首字母。按
R
進入替換模式。輸入
All
和一個空格。說明None
中共包含4個字元,而All
只包含3個字元,因此輸入All之後,需再輸入一個空格。按
Esc
鍵退出替換模式。輸入
:wq
儲存檔案並退出。更改後的example.conf檔案,如下所示:
# AllowOverride controls what directives may be placed in .htaccess files. # It can be "All", "None", or any combination of the keywords: # Options FileInfo AuthConfig Limit # AllowOverride All
刪除
基本命令:
x:刪除游標高亮的那一個字元。
nx(n為數字): 刪除游標高亮的字元及其後面的n-1個字元。
dd:刪除游標所在的那一行。
ndd(n為數字):刪除游標所在行及其下面的n-1行。
本樣本中使用的example.conf檔案如下所示:
# Listen: Allows you to bind Apache to specific IP addresses and/or
# ports, instead of the default. See also the <VirtualHost>
# directive.
#
# Change this to Listen on specific IP addresses as shown below to
# prevent Apache from glomming onto all bound IP addresses.
#
#Listen 12.34.XX:XX:80
Listen 80
樣本一:在設定檔example.conf中,將
#Listen 12.34.XX:XX:80
行首的#
刪除。步驟如下:運行
vim example.conf
命令開啟檔案,進入普通模式。運行
/#Listen 12.34.XX:XX:80
找到目標,游標此時定位在#
字元上。按
x
刪除#
。輸入
:wq
儲存檔案並退出。刪除完成後,example.conf檔案如下所示:
# Listen: Allows you to bind Apache to specific IP addresses and/or # ports, instead of the default. See also the <VirtualHost> # directive. # # Change this to Listen on specific IP addresses as shown below to # prevent Apache from glomming onto all bound IP addresses. # Listen 12.34.XX:XX:80 Listen 80
樣本二:在設定檔example.conf中,將
#Listen 12.34.XX:XX:80
行和下一行的內容刪掉。步驟如下:運行
vim example.conf
命令開啟檔案,進入普通模式。運行
/#Listen 12.34.XX:XX:80
找到目標。按
2dd
刪除以下內容。#Listen 12.34.XX:XX:80 Listen 80
按
:wq
儲存檔案並退出。刪除完成後,example.conf檔案如下所示:
# Listen: Allows you to bind Apache to specific IP addresses and/or # ports, instead of the default. See also the <VirtualHost> # directive. # # Change this to Listen on specific IP addresses as shown below to # prevent Apache from glomming onto all bound IP addresses. #