vim命令模式:
1、一般命令模式
2、編輯模式
3、底行命令行命令模式
一般命令模式 直接用字符操作
編輯模式 可以寫文檔(跟txt有點像)
底行命令模式 先按'ESC',在按下“:”,之后在輸出命令
小注:用vim編輯命令: vim test.txt 或 vi test.txt
一開始進入的是編輯模式
1(一般命令模式)-->2(編輯模式) |
詳情見下面2.1 |
1(一般命令模式)-->3(底行命令模式) |
直接在鍵盤上輸入":",就可以進入該模式 |
2(編輯模式)-->1(一般命令模式) |
按鍵盤上的【ESC】鍵 |
2(編輯模式)-->3 (底行命令模式) |
2-->1-->3 |
3(底行命令模式)-->1(一般命令模式) |
用刪除鍵刪除":"便可以 |
3(底行命令模式)-->2(編輯模式) |
3-->1-->2 |
(注意:在下面命令中,開頭帶有“:”的,就是底行命令模式,其余的命令則是一般命令模式,編輯模式的命令沒有寫)
1、最常用的基本命令
vi test.txt
Esc
x
Delete
dd
:
wq
q
h
j
k
l |
--用於新建一個文檔或者編輯文檔,進入之后就是命令模式
--退出編輯模式,進入命令模式
--命令模式下,相當於我們平時用的刪除鍵。
--命令模式下,跟我們平時用的del鍵是一樣的
--刪除該光標所在的行,將整行都給刪除掉。
--底下會出現一個[:],可以執行相應的語句實現某些功能,比如:退出保
--在按了 Esc-->: 命令后,在按wq並按回車鍵,表示強制退出保存。
--在按了 Esc-->: 命令后,在按q表示只退出不保存。
--命令模式,表示將光標向左移動,跟鍵盤上的【←】命令一樣
--命令模式,表示將光標向下移動,跟鍵盤上的【↓】命令一樣
--命令模式,表示將光標向上移動,跟鍵盤上的【↑】命令一樣
--命令模式,表示將光標向右移動,跟鍵盤上的【→】命令一樣 |
2、移動光標或滾動屏幕(一般命令模式)
選項 l or 右箭頭 h or 左箭頭 j or 下箭頭 k or 上箭頭 0 (零按鍵) ˆ $ w W b B numberG G H nH M L nL ^e(ctrl+e) ctrl+y ctrl+u ctrl+d ctrl+b ctrl+f ctrl+l z-return nz-return z. nz. z- nz- |
說明 向右移動一個字符 向左移動一個字符 向下移動一行 向上移動一行 移動到當前行的行首。 移動到當前行的第一個非空字符。 移動到當前行的末尾。 移動到下一個單詞或標點符號的開頭。 移動到下一個單詞的開頭,忽略標點符號。 移動到上一個單詞或標點符號的開頭。 移動到上一個單詞的開頭,忽略標點符號。 移動到第 number 行。例如,1G 移動到文件的第一行。 移動到文件末尾。 將光標移動到屏幕的頂行 將光標移動到屏幕頂行下的第 n 行 將光標移動到屏幕的中間 將光標移動到屏幕的底行 將光標移動到屏幕底行上的第 n 行 將屏幕上滾一行 將屏幕下滾一行 將屏幕上滾半頁 將屏幕下滾半頁 將屏幕上滾一頁 將屏幕下滾一頁 重繪屏幕 將當前行置為屏幕的頂行 將當前行下的第 n 行置為屏幕的頂行 將當前行置為屏幕的中央 將當前行上的第 n 行置為屏幕的中央 將當前行置為屏幕的底行 將當前行上的第 n 行置為屏幕的底行 |
2.1 插入文本(一般命令模式-->編輯模式,常用)
命令 a A i I o O s S :r file :nr file Esc ^v char |
插入動作 在光標后插入文本 在當前行末插入文本 在光標前插入文本 在當前行前插入文本 在當前行的下邊插入新行 在當前行的上邊插入新行 刪除光標所在處字節(字母),並進入插入模式 刪除光標所在的行,並進入插入模式 讀入文件 file 內容,並插在當前行后 讀入文件 file 內容,並插在第 n 行后 回到命令模式 插入時忽略 char 的指定意義,這是為了插入特殊字符 |
2.2 替換操作
2.2.1 一般命令模式
命令 rchar R text escape stext escape S 或 cctext escape cwtext escape Ctext escape cG escape ccursor_cmd text escape |
替換操作 用 char 替換當前字符 用 text 替換當前字符直到按下 Esc 鍵 用 text 代替當前字符 用 text 代替整行 將當前字改為 text 將當前行余下的改為 text 修改至文件的末尾 從當前位置處到光標命令位置處都改為 text |
2.2.2 底行命令模式
命令 :s /text1/text2 :n1,n2s/word1/word2/g :n1,.s/text1/text2/g :n1,$s/string1/string2/g :n1,$s/string1/string2/gc :%s/text1/text2/g :g/text1/s/text2/text3 :g/text/command :v/text/command |
替換操作 在光標所在行中,將text1替換為text2 在第n1行到n2行之間查找word1,並將字word1替換為word2 在第n1行到光標所在行之間查找text1,並將text1替換為text2 在第n1行到末行之間查找string1,並將string1替換為string2 c 在第n1行到末行之間查找string1,將string1替換為string2,在替換之前逐一進行確認操作(confirm) 在本vim中,將text1替換為text2 查找包含 text1 的行,將第一個text2替換為text3 在所有包含 text 的行運行 command 所表示的命令 在所有不包含 text 的行運行 command 所表示的命令 |
2.3 查找操作(帶“:”為底行命令模式,其他為一般命令模式)
命令 :set ic :set noic /text ?text n N ftext Ftext ttext Ttext |
查找操作 查找時忽略大小寫 查找時對大小寫敏感 在文件中向前查找 text 在文件中向后查找 text 在同一方向重復查找 在相反方向重復查找 在當前行向前查找 text 在當前行向后查找 text 在當前行向前查找 text,並將光標定位在 text 的第一 在當前行向后查找 text,並將光標定位在 text 的第一 |
2.4 刪除操作(帶“:”為底行命令模式,其他為一般命令模式)
命令 :1,3d :n1,n2d :n1,.d :n1,$d :%d X x nx dd 5dd dW d$ d0 dˆ dG d20G db |
刪除操作 刪除第1行到第3行的數據 刪除第n1到n2行的所有數據 刪除第n1到光標所在行的數據 刪除第n1行到最后行所有的數據 刪除所有數據 向前刪除數據 當前字符 當前字符及其后(n-1)個字符。 當前行。 當前行及隨后的四行文本。 從光標位置開始到下一個單詞的開頭。 從光標位置開始到當前行的行尾。 從光標位置開始到當前行的行首。 從光標位置開始到文本行的第一個非空字符。 從當前行到文件的末尾。 從當前行到文件的第 20 行。 刪除光標前面的字 |
2.5 復制操作
命令 y0 y$ yy nyy y1G yG p P "(a-z)nyy "(a-z)ndd "(a-z)p "(a-z)P |
說明 復制光標所在行中的首字母到光標所在的字母之間的數據(不包含光標上的字母) 復制光標所在行中的光標所在字母到行尾之間的數據(包含光標上的字母) 將當前行的內容放入臨時緩沖區 將 n 行的內容放入臨時緩沖區 復制第1行到光標所在行的所有數據 復制光標所在行到最后一行所有的數據 將臨時緩沖區中的文本放入光標后 將臨時緩沖區中的文本放入光標前 復制 n 行放入名字為圓括號內的可命名緩沖區,省略 n 表示當前行 刪除 n 行放入名字為圓括號內的可命名緩沖區,省略 n 表示當前行 將名字為圓括號的可命名緩沖區的內容放入當前行后 將名字為圓括號的可命名緩沖區的內容放入當前行前 |
2.6 撤銷與重復
命令 u U . , ; "np n N |
說明 撤消最后一次修改 撤消當前行的所有修改 重復最后一次修改 以相反的方向重復前面的 f、F、t 或 T 查找命令 重復前面的 f、F、t 或 T 查找命令 取回最后第 n 次的刪除(緩沖區中存有一定次數的刪除內容,一般為 9) 重復前面的 / 或 ? 查找命令 以相反方向重復前面的 / 或 ? 命令 |
2.6 保存或退出文本操作
命令 :w :w file :wq 或 ZZ 或 :x :q! :e! |
說明 保存文件但不退出 vi 將修改保存在 file 中但不退出 vi 保存文件並退出 vi 不保存文件,退出 vi 放棄所有修改,從上次保存文件開始再編輯 |
2.7 底行命令的選項(set用法)
選項 :set all :set nooption :set nu :set showmode :set autoindent :set smartindent :set list :set ts=8 :set window=n :set number :set nonumber |
作用 打印所有選項 關閉 option 選項 每行前打印行號 顯示是輸入模式還是替換模式 繼承前一行的縮進方式,特別適用於多行注釋 為C程序提供自動縮進 顯示制表符(^I)和行尾符號 為文本輸入設置 tab stops 設置文本窗口顯示 n 行 顯示行數 取消顯示行數 |
2.8 符號命令
選項 :.= := ctrl+g :l |
作用 打印當前行的行號 打印文件中的行數 顯示文件名、當前的行號、文件的總行數和文件位置的百分比 使用字母 "l" 來顯示許多的特殊字符,如制表符和換行符 |
2.9 定位段落和放置光標(一般命令模式)
選項 { [[ ]] m(a-z) '(a-z) |
作用 在第一列插入 { 來定義一個段落 回到段落的開頭處 向前移到下一個段落的開頭處 用一個字母來標記當前位置,如用 mz 表示標記 z 將光標移動到指定的標記,如用 'z 表示移動到 z |
2.10 連接行
選項 J nJ |
作用 將下一行連接到當前行的末尾 連接后面 n 行 |
2.11 shell轉義命令
選項 :!command :!! :r!command :w!command :cd directory :sh :so file |
作用 執行 shell 的 command 命令,如 :!ls 執行前一個 shell 命令 讀取 command 命令的輸入並插入,如 :r!ls 會先執行 ls,然后讀入內容 將當前已編輯文件作為 command 命令的標准輸入並執行 command 命令,如 :w!grep all 將當前工作目錄更改為 directory 所表示的目錄 將啟動一個子 shell,使用 ^d(ctrl+d) 返回 vi 在 shell 程序 file 中讀入和執行命令 |
2.12 vim中的宏與縮寫
(注意:避免使用控制鍵和符號,不要使用字符 K、V、g、q、v、*、= 和功能鍵)
選項 :map key command_seq :map :umap key :ab string1 string2 :ab :una string |
作用 定義一個鍵來運行 command_seq,如 :map e ea,無論什么時候都可以 e 移到一個字的末尾來追加文本 在狀態行顯示所有已定義的宏 刪除該鍵的宏 定義一個縮寫,使得當插入 string1 時,用 string2 替換 string1。當要插入文本時,鍵入 string1 然后按 Esc 鍵,系統就插入了 string2 顯示所有縮寫 取消 string 的縮寫 |
2.13 vim中文本的縮進
選項 ctrl+i或 tab :set ai :set sw=n n> |
作用 插入文本時,插入移動的寬度,移動寬度是事先定義好的 打開自動縮進 將移動寬度設置為 n 個字符 使 n 行都向右移動一個寬度,例如 3>> 就將接下來的三行每行都向右移動一個移動寬度 |
大概就是這些了,如果有錯誤,請留言!