Vim文本編輯器基本操作

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

1、模式

正常模式(Normal Mode):

  • 正常模式是 Vim 的默認模式,它用於導航、編輯、復制和粘貼文本,以及執行各種命令。
  • 在正常模式下,按鍵被解釋為命令,而不是直接插入文本。
  • 用於導航的鍵包括 h(左)、j(下)、k(上)、l(右),以及其他命令如 w(向前移動一個詞)、b(向後移動一個詞)、gg(跳轉到文件開頭)和 G(跳轉到文件末尾)等。
  • 用於刪除和復制文本的命令包括 x(刪除字符)、dd(刪除整行)、yy(復制整行)等。
  • 可以使用 : 進入命令模式,執行各種命令,如保存文件 :w、退出 :q 等。

插入模式(Insert Mode):

  • 插入模式用於輸入文本,類似於普通文本編輯器的行為。
  • 進入插入模式的方式包括:
    • i:在光標前插入文本。
    • I:在當前行的開頭插入文本。
    • a:在光標後插入文本。
    • A:在當前行的末尾插入文本。
    • o:在當前行的下方插入新行並進入插入模式。
    • O:在當前行的上方插入新行並進入插入模式。
  • 從插入模式返回正常模式通常使用 Esc 鍵。

可視模式(Visual Mode):

  • 可視模式允許選擇文本塊以進行操作,如復制、刪除或替換。
  • 進入可視模式的方式包括:
    • v:按字符選擇。
    • V:按行選擇。
    • Ctrl + v:按塊選擇。
  • 一旦選擇文本塊,可以執行命令來操作選定的文本。

命令模式(Command-Line Mode):

  • 在正常模式下,鍵入冒號 : 進入命令模式,用於執行各種命令。
  • 常見的命令包括:
    • :w:保存文件。
    • :q:退出 Vim。
    • :q!:強制退出 Vim,放棄未保存的更改。
    • :wq:x:保存並退出。
    • :e:重新加載文件。
    • :r:在當前位置插入另一個文件的內容。
    • :set:配置 Vim 選項。

替換模式(Replace Mode):

  • 替換模式用於覆蓋文本,逐字符替換已有文本。
  • 進入替換模式的方式包括:
    • R:按字符替換。
    • r:按需替換單個字符。

2、切換模式

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

  • 插入模式用於在文本中輸入或編輯內容,類似於普通文本編輯器的行為。
  • 在正常模式下,可以使用以下命令來切換到插入模式:
    • i:在光標前插入文本。
    • I:在當前行的開頭插入文本。
    • a:在光標後插入文本。
    • A:在當前行的末尾插入文本。
    • o:在當前行的下方插入新行並進入插入模式。
    • O:在當前行的上方插入新行並進入插入模式。
  • 一旦進入插入模式,可以自由地鍵入文本,直到按下 Esc 鍵返回正常模式。

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

  • 可視模式允許選擇文本塊以進行操作,如復制、刪除或替換。
  • 在正常模式下,可以使用以下命令來切換到可視模式:
    • v:按字符選擇。
    • V:按行選擇。
    • Ctrl + v:按塊選擇。
  • 一旦進入可視模式,可以使用導航鍵來選擇文本塊,然後執行命令來操作選定的文本。

從插入模式返回正常模式:

  • 從插入模式返回正常模式通常使用 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:進入替換模式,可以連續替換多個字符,按 Esc 退出替換模式。

插入文本:

  • 插入模式用於在文本中插入新內容。可以在正常模式下使用以下命令進入插入模式:
    • 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
  • 替換范圍內的文本:可以使用 :n1,n2s 命令來替換指定行范圍內的文本。例如,:10,20s/old/new/g 會在第 10 行到第 20 行之間進行全局替換。
  • 替換回退:Vim 會在替換操作之前自動創建一個回退點,以便可以撤銷替換。在正常模式下,可以使用 u 命令來撤銷替換。
  • 替換確認:在替換模式下,可以按下 y 來確認替換當前匹配項,按下 n 來跳過當前匹配項。
  • 替換和保存:如果想在替換文本的同時保存文件,可以使用 :w 命令,如 :%s/old/new/g | w

6、多窗口

打開和關閉窗口:

  • 水平分屏:在正常模式下,可以使用以下命令來創建水平分屏窗口:
    • :split <文件路徑>:創建水平分屏窗口並打開指定文件。
    • :splitCtrl + w 之後按 s:創建水平分屏窗口,將當前文件分為上下兩個部分。
  • 垂直分屏:在正常模式下,可以使用以下命令來創建垂直分屏窗口:
    • :vsplit <文件路徑>:創建垂直分屏窗口並打開指定文件。
    • :vsplitCtrl + w 之後按 v:創建垂直分屏窗口,將當前文件分為左右兩個部分。
  • 關閉窗口:
    • 在窗口中,可以使用以下命令關閉當前窗口:
      • :q:關閉當前窗口。
      • :q!:強制關閉當前窗口並放棄更改。
      • :wq:x:保存並關閉當前窗口。
    • 若要在不關閉 Vim 實例的情況下關閉所有窗口,請使用 :qall

切換窗口:

  • 切換焦點:在多窗口環境中,可以使用以下命令切換焦點到不同的窗口:
    • Ctrl + w,然後按 Ctrl + w:循環切換焦點到下一個窗口。
    • Ctrl + w,然後按 hjkl:將焦點分別切換到左、下、上、右的窗口。
  • 切換窗口佈局:可以使用以下命令更改窗口佈局:Ctrl + w,然後按 R:旋轉當前窗口佈局,將水平分屏轉為垂直分屏或反之。

調整窗口大小:

  • 調整窗口大小:在多窗口中,可以使用以下命令調整窗口大小:
    • Ctrl + w,然後按 <>:增加或減少當前窗口的寬度。
    • Ctrl + w,然後按 +-:增加或減少當前窗口的高度。
  • 均等分屏:如果希望均等分割窗口,可以使用以下命令:Ctrl + w,然後按 =:將所有窗口均等分佈在 Vim 窗口中。

多文件操作:

  • 打開多個文件:在 Vim 中可以同時打開多個文件。例如,可以在命令行中運行 vim file1.txt file2.txt 來同時打開兩個文件。
  • 在窗口之間復制粘貼:在多窗口中,可以使用 :sp:vsp 命令來將一個窗口中的內容復制到另一個窗口。

7、配置文件

創建和編輯配置文件:

  • 創建配置文件:如果系統上尚不存在 .vimrc 文件,可以使用文本編輯器創建一個。在終端中運行以下命令:touch ~/.vimrc
  • 編輯配置文件:使用文本編輯器打開 .vimrc 文件,例如:vim ~/.vimrc,可以在配置文件中添加和編輯各種配置選項,以自定義 Vim 的行為。

配置選項:

  • 縮進設置:設置 tabstopshiftwidthexpandtab 選項來控制縮進的方式。例如:set tabstop=4 set shiftwidth=4 set expandtab
  • 行號和列號:啟用行號和列號的顯示,使得在編輯時更容易定位位置。例如:set number set relativenumber
  • 自動縮進:啟用自動縮進,以便在插入模式中自動進行適當的縮進。例如:set autoindent
  • 語法高亮:啟用語法高亮以提高代碼的可讀性。例如:syntax enable
  • 主題和顏色:使用不同的顏色方案來改變 Vim 的外觀。例如:colorscheme desert
  • 搜索設置:配置搜索選項,如忽略大小寫、高亮顯示匹配項等。例如:set ignorecase set smartcase set hlsearch
  • 顯示設置:配置 Vim 顯示的一些選項,如行末空格可視化、顯示光標當前位置等。例如:set list set showmatch
  • 鍵映射和快捷鍵:創建自定義鍵映射和快捷鍵,以加快編輯操作。例如: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 是一種更傳統的插件管理器,它允許將每個插件放置在單獨的目錄中,並通過簡單地將插件目錄添加到 Vim 的運行時路徑中來加載插件。

常見插件用途:

  • 代碼編輯插件:
    • 代碼編輯插件可用於增強編程體驗,包括語法高亮、代碼折疊、自動完成、代碼片段、代碼導航等功能。一些流行的代碼編輯插件包括:
      • vim-airline:自定義狀態欄。
      • YouCompleteMe:強大的自動完成和代碼建議插件。
      • NerdTree:文件樹瀏覽器。

  • 主題和外觀插件:
    • 主題和外觀插件用於改變 Vim 的外觀,包括顏色方案、狀態欄、行號等。一些主題插件包括:
      • gruvbox:受歡迎的暗色調主題。
      • solarized:另一個受歡迎的顏色方案。
      • lightline:輕量級狀態欄插件。

  • 文件管理和導航插件:
    • 文件管理和導航插件用於更輕松地瀏覽和管理文件系統。一些文件管理插件包括:
      • NERDTree:文件樹瀏覽器。
      • CtrlP:快速文件搜索和切換插件。
      • fzf:模糊文件搜索和快速查找插件。

  • 版本控制插件:
    • 版本控制插件用於與版本控制系統(如 Git)集成,以在 Vim 中管理代碼庫。一些版本控制插件包括:
      • vim-fugitive:強大的 Git 插件。
      • GitGutter:顯示行內 Git 狀態信息。

  • 文本處理和編輯插件:
    • 文本處理和編輯插件用於執行各種文本操作,如文本搜索、替換、排序和格式化。一些文本處理插件包括:
      • Ag:快速搜索文本。
      • Surround:快速添加、更改和刪除文本周圍的符號。
      • vim-easymotion:快速移動光標。

9、在線幫助

:help 命令:

  • 在 Vim 中,可以隨時使用 :help 命令來訪問在線幫助系統。隻需在正常模式下鍵入 :help,然後輸入想要瞭解的主題、命令或選項的名稱,然後按 Enter 鍵。例如:
  • :help:打開幫助索引。
  • :help :w:查看 :w 命令的幫助。
  • :help insert-mode:查看插入模式的幫助。

幫助索引:

  • :help 命令將打開幫助索引,該索引包含瞭關於 Vim 的廣泛文檔。可以使用以下鍵盤命令來導航和查找幫助文檔:
  • 使用上下箭頭鍵或 jk 鍵在不同主題之間導航。
  • Ctrl + ] 鍵跳轉到當前選定主題的詳細信息。
  • Ctrl + t 鍵返回到上一個主題。
  • 使用 / 鍵來搜索關鍵字,然後按 Enter 鍵查找匹配項。
  • 使用 :q 命令退出幫助系統。

幫助標簽頁:

  • 幫助系統支持多個標簽頁,允許在不同主題之間切換。以下是一些常用的標簽頁命令:
  • :help tab-page:打開標簽頁幫助。
  • :tabnew:help :tabnew:打開新標簽頁。
  • :tabnext:tabprev:在標簽頁之間切換。
  • :tabclose:q:關閉當前標簽頁。

特定主題的幫助:

  • 如果知道自己想要查看特定主題的幫助,可以直接使用 :help 命令,後跟主題名稱。例如:
  • :help motions:查看有關移動命令的幫助。
  • :help text-objects:查看有關文本對象(如單詞、段落等)的幫助。

內置教程:

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

離線幫助:

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

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

发表回复

相关推荐

Steam游戏《生化奇兵3:无限》通关评测

本人打算做一个系列,内容是对所有打通关的游戏的通关感受,当然游戏不局限于Steam上的,也不局限于某一类型(毕竟我是游戏 ...

· 3分钟前

什么是年线?

年线就是一般所指的250日均线,本质是简单的一条移动平均线。 因为一年间去掉正常休息日以及节假日外,所有的交易日加起来大 ...

· 5分钟前

第十章 民事責任

第十章 民事責任第一節 概述一、民事責任的概念和特征民事責任是指當事人不履行民事義務所應承擔的民法上的後果。...

· 8分钟前

對 策|小組討論又被刷?因為你不知道這7項評判標準

許多人對小組討論(GD)發怵,是因為不瞭解它的評判標準。這種情況下參加選考,就會不知道哪裡表現好,哪裡表現不好,感到非...

· 19分钟前

害怕高原反應?看這一篇就夠瞭。

無論你是懷著朝聖之心想一睹真容,還是隻想去拍照發個票圈,如果你對西藏心心念念,又害怕高原反應遲遲下不瞭決心看完這篇你...

· 28分钟前