Vim文本編輯器基本操作

Vim(Vi IMproved)是一款強大的文本編輯器,廣泛用于Unix和Linux系統(tǒng)。它具有高度可定制性和豐富的功能集,使其成為程序員、系統(tǒng)管理員和文本編輯愛好者的首選工具之一。

1、模式

正常模式(Normal Mode)

正常模式是 Vim 的默認模式,它用于導航、編輯、復制和粘貼文本,以及執(zhí)行各種命令。

在正常模式下,按鍵被解釋為命令,而不是直接插入文本。

用于導航的鍵包括 h(左)、j(下)、k(上)、l(右),以及其他命令如 w(向前移動一個詞)、b(向后移動一個詞)、gg(跳轉到文件開頭)和 G(跳轉到文件末尾)等。

用于刪除和復制文本的命令包括 x(刪除字符)、dd(刪除整行)、yy(復制整行)等。

可以使用 : 進入命令模式,執(zhí)行各種命令,如保存文件 :w、退出 :q 等。

插入模式(Insert Mode)

插入模式用于輸入文本,類似于普通文本編輯器的行為。

進入插入模式的方式包括:

i:在光標前插入文本。

I:在當前行的開頭插入文本。

a:在光標后插入文本。

A:在當前行的末尾插入文本。

o:在當前行的下方插入新行并進入插入模式。

O:在當前行的上方插入新行并進入插入模式。

從插入模式返回正常模式通常使用 Esc 鍵。

可視模式(Visual Mode)

可視模式允許選擇文本塊以進行操作,如復制、刪除或替換。

進入可視模式的方式包括:

v:按字符選擇。

V:按行選擇。

Ctrl + v:按塊選擇。

一旦選擇文本塊,可以執(zhí)行命令來操作選定的文本。

命令模式(Command-Line Mode)

在正常模式下,鍵入冒號 : 進入命令模式,用于執(zhí)行各種命令。

常見的命令包括:

:w:保存文件。

:q:退出 Vim。

:q!:強制退出 Vim,放棄未保存的更改。

:wq 或 :x:保存并退出。

:e:重新加載文件。

:r:在當前位置插入另一個文件的內(nèi)容。

:set:配置 Vim 選項。

替換模式(Replace Mode)

替換模式用于覆蓋文本,逐字符替換已有文本。

進入替換模式的方式包括:

R:按字符替換。

r:按需替換單個字符。

2、切換模式

從正常模式切換到插入模式

插入模式用于在文本中輸入或編輯內(nèi)容,類似于普通文本編輯器的行為。

在正常模式下,可以使用以下命令來切換到插入模式:

i:在光標前插入文本。

I:在當前行的開頭插入文本。

a:在光標后插入文本。

A:在當前行的末尾插入文本。

o:在當前行的下方插入新行并進入插入模式。

O:在當前行的上方插入新行并進入插入模式。

一旦進入插入模式,可以自由地鍵入文本,直到按下 Esc 鍵返回正常模式。

從正常模式切換到可視模式

可視模式允許選擇文本塊以進行操作,如復制、刪除或替換。

在正常模式下,可以使用以下命令來切換到可視模式:

v:按字符選擇。

V:按行選擇。

Ctrl + v:按塊選擇。

一旦進入可視模式,可以使用導航鍵來選擇文本塊,然后執(zhí)行命令來操作選定的文本。

從插入模式返回正常模式

從插入模式返回正常模式通常使用 Esc 鍵。按下 Esc 鍵會立即退出插入模式,并將光標定位回正常模式下的當前位置。

3、導航

基本導航命令

使用以下鍵在正常模式下進行基本的導航:

h:將光標向左移動一個字符。

j:將光標向下移動一行。

k:將光標向上移動一行。

l:將光標向右移動一個字符。

這些鍵在鍵盤上排列成一個類似箭頭鍵的形狀,以便記憶。

詞級導航

Vim 允許以詞為單位移動光標,而不是逐字符移動。以下是詞級導航的常見命令:

w:將光標向前移動到下一個單詞的開頭。

b:將光標向后移動到當前單詞的開頭。

e:將光標移動到當前單詞的末尾。

ge:將光標移動到前一個單詞的末尾。

行級導航

可以使用以下命令在行級別上導航:

0(零):將光標移到當前行的開頭。

$:將光標移到當前行的末尾。

^:將光標移到當前行的第一個非空字符。

文件級導航

可以使用以下命令在文件級別上導航:

gg:將光標移到文件的第一行。

G:將光標移到文件的最后一行。

:<行號>:將光標移到指定行號。

滾動導航

可以使用以下命令進行滾動導航:

Ctrl + u:向上滾動半屏。

Ctrl + d:向下滾動半屏。

Ctrl + b:向上滾動一屏。

Ctrl + f:向下滾動一屏。

搜索導航

搜索命令可以幫助您快速定位文本。在正常模式下,按 / 進入搜索模式,輸入要搜索的文本,然后按 Enter 鍵開始搜索。使用 n 鍵和 N 鍵在搜索結果之間移動。

書簽導航

可以使用書簽來標記文本的特定位置,然后輕松跳轉到這些位置。以下是一些書簽命令:

m<標記>:將光標位置標記為指定的 <標記>。

' 或 ````:跳轉到上一個書簽。

`:<標記>:跳轉到指定的書簽。

4、編輯文本

刪除文本

在正常模式下,可以使用以下命令來刪除文本:

x:刪除光標下的字符。

dd:刪除整行。

D:刪除從光標位置到行末的文本。

:n1,n2d:刪除指定行范圍(n1 到 n2)的文本。

復制和剪切文本

在正常模式下,可以使用以下命令來復制和剪切文本:

yy:復制當前行。

y$:復制從光標位置到行末的文本。

p:粘貼之前復制或剪切的文本。

:n1,n2y:復制指定行范圍(n1 到 n2)的文本。

:n1,n2d:剪切指定行范圍(n1 到 n2)的文本。

粘貼文本

在正常模式下,使用 p 命令可以粘貼最近復制或剪切的文本。粘貼操作會在光標位置后方插入文本。

替換文本

在正常模式下,可以使用以下命令來替換文本:

r<字符>:用指定字符替換光標下的字符。

R:進入替換模式,可以連續(xù)替換多個字符,按 Esc 退出替換模式。

插入文本

插入模式用于在文本中插入新內(nèi)容??梢栽谡DJ较率褂靡韵旅钸M入插入模式:

i:在光標前插入文本。

I:在當前行的開頭插入文本。

a:在光標后插入文本。

A:在當前行的末尾插入文本。

o:在當前行的下方插入新行并進入插入模式。

O:在當前行的上方插入新行并進入插入模式。

撤銷和重做

在正常模式下,可以使用以下命令來撤銷和重做操作:

u:撤銷最后的操作。

Ctrl + r:重做操作(撤銷的反操作)。

全局替換

可以使用 :s 命令在文件中進行全局替換操作。例如,:s/old/new/g 將文件中的所有 old 替換為 new。

多光標編輯

Vim 支持多光標編輯,可以使用 Ctrl + v 進入可視塊模式,選擇多個光標位置,然后同時編輯這些位置的文本。

5、搜索和替換

搜索文本:

正向搜索:在正常模式下,按 / 進入搜索模式。輸入要搜索的文本,然后按 Enter 鍵開始搜索。使用 n 鍵移動到下一個匹配項,使用 N 鍵移動到上一個匹配項。

反向搜索:在正常模式下,按 ? 進入反向搜索模式。輸入要搜索的文本,然后按 Enter 鍵開始反向搜索。使用 n 鍵移動到上一個匹配項,使用 N 鍵移動到下一個匹配項。

高亮匹配項:默認情況下,Vim 會高亮匹配的文本。若要關閉或打開高亮顯示,可以在正常模式下使用 :set hlsearch 或 :set nohlsearch 命令。

搜索選項:可以在搜索命令中使用一些選項,如 /pattern/i 可以忽略大小寫,/pattern/n 可以禁用正則表達式匹配。

搜索下劃線和其他特殊字符:如果要搜索下劃線等特殊字符,可以使用 \ 進行轉義,例如 /my\_variable/。

使用尋找命令:在正常模式下,按 * 可以尋找光標下的單詞,然后使用 # 尋找上一個匹配項。

替換文本:

替換當前匹配項:在正常模式下,可以使用 :s 命令來替換當前匹配項。例如,要將當前單詞 old 替換為 new,可以輸入 :s/old/new/。

全局替換:若要替換文件中的所有匹配項,可以在替換命令中使用 g 標志,如 :%s/old/new/g。

替換并確認:若要逐個確認替換每個匹配項,可以在替換命令中使用 c 標志,如 :%s/old/new/gc。

替換范圍內(nèi)的文本:可以使用 :n1,n2s 命令來替換指定行范圍內(nèi)的文本。例如,:10,20s/old/new/g 會在第 10 行到第 20 行之間進行全局替換。

替換回退:Vim 會在替換操作之前自動創(chuàng)建一個回退點,以便可以撤銷替換。在正常模式下,可以使用 u 命令來撤銷替換。

替換確認:在替換模式下,可以按下 y 來確認替換當前匹配項,按下 n 來跳過當前匹配項。

替換和保存:如果想在替換文本的同時保存文件,可以使用 :w 命令,如 :%s/old/new/g | w。

6、多窗口

打開和關閉窗口:

水平分屏:在正常模式下,可以使用以下命令來創(chuàng)建水平分屏窗口:

:split <文件路徑>:創(chuàng)建水平分屏窗口并打開指定文件。

:split 或 Ctrl + w 之后按 s:創(chuàng)建水平分屏窗口,將當前文件分為上下兩個部分。

垂直分屏:在正常模式下,可以使用以下命令來創(chuàng)建垂直分屏窗口:

:vsplit <文件路徑>:創(chuàng)建垂直分屏窗口并打開指定文件。

:vsplit 或 Ctrl + w 之后按 v:創(chuàng)建垂直分屏窗口,將當前文件分為左右兩個部分。

關閉窗口

在窗口中,可以使用以下命令關閉當前窗口:

:q:關閉當前窗口。

:q!:強制關閉當前窗口并放棄更改。

:wq 或 :x:保存并關閉當前窗口。

若要在不關閉 Vim 實例的情況下關閉所有窗口,請使用 :qall。

切換窗口:

切換焦點:在多窗口環(huán)境中,可以使用以下命令切換焦點到不同的窗口:

Ctrl + w,然后按 Ctrl + w:循環(huán)切換焦點到下一個窗口。

Ctrl + w,然后按 h、j、k 或 l:將焦點分別切換到左、下、上、右的窗口。

切換窗口布局:可以使用以下命令更改窗口布局:Ctrl + w,然后按 R:旋轉當前窗口布局,將水平分屏轉為垂直分屏或反之。

調(diào)整窗口大?。?/b>

調(diào)整窗口大小:在多窗口中,可以使用以下命令調(diào)整窗口大小:

Ctrl + w,然后按 < 或 >:增加或減少當前窗口的寬度。

Ctrl + w,然后按 + 或 -:增加或減少當前窗口的高度。

均等分屏:如果希望均等分割窗口,可以使用以下命令:Ctrl + w,然后按 =:將所有窗口均等分布在 Vim 窗口中。

多文件操作:

打開多個文件:在 Vim 中可以同時打開多個文件。例如,可以在命令行中運行 vim file1.txt file2.txt 來同時打開兩個文件。

在窗口之間復制粘貼:在多窗口中,可以使用 :sp 和 :vsp 命令來將一個窗口中的內(nèi)容復制到另一個窗口。

7、配置文件

創(chuàng)建和編輯配置文件:

創(chuàng)建配置文件:如果系統(tǒng)上尚不存在 .vimrc 文件,可以使用文本編輯器創(chuàng)建一個。在終端中運行以下命令:touch ~/.vimrc

編輯配置文件:使用文本編輯器打開 .vimrc 文件,例如:vim ~/.vimrc,可以在配置文件中添加和編輯各種配置選項,以自定義 Vim 的行為。

配置選項:

縮進設置:設置 tabstop、shiftwidth 和 expandtab 選項來控制縮進的方式。例如:set tabstop=4 set shiftwidth=4 set expandtab

行號和列號:啟用行號和列號的顯示,使得在編輯時更容易定位位置。例如:set number set relativenumber

自動縮進:啟用自動縮進,以便在插入模式中自動進行適當?shù)目s進。例如:set autoindent

語法高亮:啟用語法高亮以提高代碼的可讀性。例如:syntax enable

主題和顏色:使用不同的顏色方案來改變 Vim 的外觀。例如:colorscheme desert

搜索設置:配置搜索選項,如忽略大小寫、高亮顯示匹配項等。例如:set ignorecase set smartcase set hlsearch

顯示設置:配置 Vim 顯示的一些選項,如行末空格可視化、顯示光標當前位置等。例如:set list set showmatch

鍵映射和快捷鍵:創(chuàng)建自定義鍵映射和快捷鍵,以加快編輯操作。例如:nnoremap <C-n> :NERDTreeToggle<CR>

插件管理器設置:如果使用插件管理器(如 vim-plug、Vundle 等),可以在配置文件中添加插件列表和設置。例如:

? ? call plug#begin('~/.vim/plugged')

? ? Plug 'tpope/vim-fugitive'

? ? call plug#end()

保存和應用配置:

保存配置文件:在編輯完 .vimrc 文件后,使用 :w 命令保存更改。

應用配置:在 Vim 中編輯 .vimrc 文件后,可以使用以下命令使配置生效,而無需退出 Vim::source ~/.vimrc,或者可以重新啟動 Vim 以應用新的配置。

8、插件

安裝插件:

Vim-Plug:Vim-Plug 是一個流行的插件管理器,易于安裝和使用??梢栽?.vimrc 文件中添加插件列表,然后運行 :PlugInstall 命令來安裝插件。

Vundle:Vundle 是另一個常見的插件管理器,它也使用 .vimrc 配置文件來管理插件??梢允褂?:PluginInstall 命令來安裝插件。

Pathogen:Pathogen 是一種更傳統(tǒng)的插件管理器,它允許將每個插件放置在單獨的目錄中,并通過簡單地將插件目錄添加到 Vim 的運行時路徑中來加載插件。

常見插件用途:

代碼編輯插件

代碼編輯插件可用于增強編程體驗,包括語法高亮、代碼折疊、自動完成、代碼片段、代碼導航等功能。一些流行的代碼編輯插件包括:

vim-airline:自定義狀態(tài)欄。

YouCompleteMe:強大的自動完成和代碼建議插件。

NerdTree:文件樹瀏覽器。

主題和外觀插件

主題和外觀插件用于改變 Vim 的外觀,包括顏色方案、狀態(tài)欄、行號等。一些主題插件包括:

gruvbox:受歡迎的暗色調(diào)主題。

solarized:另一個受歡迎的顏色方案。

lightline:輕量級狀態(tài)欄插件。

文件管理和導航插件

文件管理和導航插件用于更輕松地瀏覽和管理文件系統(tǒng)。一些文件管理插件包括:

NERDTree:文件樹瀏覽器。

CtrlP:快速文件搜索和切換插件。

fzf:模糊文件搜索和快速查找插件。

版本控制插件

版本控制插件用于與版本控制系統(tǒng)(如 Git)集成,以在 Vim 中管理代碼庫。一些版本控制插件包括:

vim-fugitive:強大的 Git 插件。

GitGutter:顯示行內(nèi) Git 狀態(tài)信息。

文本處理和編輯插件

文本處理和編輯插件用于執(zhí)行各種文本操作,如文本搜索、替換、排序和格式化。一些文本處理插件包括:

Ag:快速搜索文本。

Surround:快速添加、更改和刪除文本周圍的符號。

vim-easymotion:快速移動光標。

9、在線幫助

:help 命令:

在 Vim 中,可以隨時使用 :help 命令來訪問在線幫助系統(tǒng)。只需在正常模式下鍵入 :help,然后輸入想要了解的主題、命令或選項的名稱,然后按 Enter 鍵。例如:

:help:打開幫助索引。

:help :w:查看 :w 命令的幫助。

:help insert-mode:查看插入模式的幫助。

幫助索引

:help 命令將打開幫助索引,該索引包含了關于 Vim 的廣泛文檔??梢允褂靡韵骆I盤命令來導航和查找?guī)椭臋n:

使用上下箭頭鍵或 j 和 k 鍵在不同主題之間導航。

按 Ctrl + ] 鍵跳轉到當前選定主題的詳細信息。

按 Ctrl + t 鍵返回到上一個主題。

使用 / 鍵來搜索關鍵字,然后按 Enter 鍵查找匹配項。

使用 :q 命令退出幫助系統(tǒng)。

幫助標簽頁

幫助系統(tǒng)支持多個標簽頁,允許在不同主題之間切換。以下是一些常用的標簽頁命令:

:help tab-page:打開標簽頁幫助。

:tabnew 或 :help :tabnew:打開新標簽頁。

:tabnext 和 :tabprev:在標簽頁之間切換。

:tabclose 或 :q:關閉當前標簽頁。

特定主題的幫助

如果知道自己想要查看特定主題的幫助,可以直接使用 :help 命令,后跟主題名稱。例如:

:help motions:查看有關移動命令的幫助。

:help text-objects:查看有關文本對象(如單詞、段落等)的幫助。

內(nèi)置教程

Vim 帶有一些內(nèi)置教程,可以通過 :vimtutor 命令啟動。這是一個交互式的教程,可以幫助新用戶學習 Vim 的基本功能。

離線幫助

如果使用的是 Vim 的源代碼分發(fā)版本,通常會包含完整的離線幫助文檔。這些文檔可以在本地查看,無需互聯(lián)網(wǎng)連接。

這些是 Vim 的基本概念和一些常用命令,Vim 具有豐富的功能和命令,允許用戶高效地編輯文本。要充分發(fā)揮 Vim 的威力,需要不斷練習和學習,并逐漸掌握更高級的功能和定制選項。可以在Vim內(nèi)部查看幫助文檔來深入了解其功能和用法。

?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容