linux VIM命令: vim 在命令行中輸入vim,進入vim編輯器 Esc 退出i(插入)命令進行其他命令使用 :sh 進入shell命令行,運行完命令后ctrl+d退出又一次進入vim編輯繼續編輯在shell命令下, 運行ctral+l完畢清屏 :set number或者:set nu 使編輯中的文件顯示行號 :set nonumber或者:set nonu 與上一條命令相反,不顯示行號 :help i 查看插入命令幫助 /Fedora 查找Fedora字符 :s /Fedora/Redhat 將Fedora字符替換為Redhat(僅僅替換在光標所在的行) :%s/ro../r 將ro..替換成r。.表示隨意字符 :1,.s/redhat/fedora .號表示當前行,即光標所在行 #將第1行到當前行(.)第一次出現的redhat字符取代為fedora :1,.s/redhat/fedora/g 將第1行到當前行(.)全部出現的redhat字符取代為fedora,g 全局標志 :1,$s/redhat/fedora/g $表示最后一行#將第1行到最后一行全部出現的redhat字符取代為fedora :%s/redhat/fedora/g 同上一個命令 :%s/\/fedora/g 將第1行到最后一行全部出現的redhat字取代為fedora#字,而不是字符 :%s/ro/\r&/gc %表示全文,s表示替換。ro替換為換行符。&表示之前要替換的字符ro。g表示一直替換不加g僅僅替換一個,c表示確認是否替換。整句話意思是將ro替換成換行符后跟ro :f #顯示文件內容,狀態等等#同ctrl+g命令 vi filename 表示編輯filename文件。假設不存在則創建該文件,假設在進入vi時沒有指定文件名稱能夠進入后用":n filename"來指定文件名稱。
:e! 放棄全部改動,不包括已保存的 :e 文件名稱 打開指定文件 D 刪除當前行光標后的全部字符 y與y$同樣 表示復制本行光標開始到行末的字符 :w! 文件名稱 將當前顯示文本全部覆蓋已存在的文件 :n,mw! 文件名稱 將當前顯示文本的第n到第m行強制寫入指定文件 w 光標跳到下個單詞的首 e 光標依次跳到單詞末尾 替換文本 cc 替換當前行 C與c$ 替換當前行中從光標處到航模的全部字符 cw 假設光標在單詞頭部或中間,從光標處替換到單詞尾部。假設光標在單詞尾部。則替換尾字母 ce 假設光標在單詞頭部或中間。從光標處替換到單詞尾部,假設光標在單詞尾部,則替換從尾字母到下一個單詞尾部 cb 假設光標在單詞中間則從光標處替換到單詞頭部,假設光標在單詞頭部。則替換之前一個單詞 緩沖區 緩沖區分為數字緩沖區和字母緩沖區 數字緩沖區: 每一次dd刪除操作都把刪除的內容存入一個數字緩沖區,1號緩沖區永遠是近期一次的刪除內容。每次刪除操作會把1號緩沖區的內容存入2號緩沖區。2號存入3號中。依次類推。調用能夠用命令"np(n代表1-9中的數字) 字母緩沖區: 字母緩沖區有26個,分別為a-z 命令"add表示刪除本行。將本行存入a緩沖區。
調用能夠用命令"ap 光標控制命令 命令 光標移動 :向上 能夠反復輸入上一個命令 h 向左移一個字符 j 向下移一行 nj 向下移動n行 k 向上移一行 l 向右移一個字符 gg或:1 移動到文件第一行 G 移到文件的最后一行 w 移到下一個字的開頭 W 移到下一個字的開頭。忽略標點符號 e 移到下一個字的結尾 E 移到下一個字的結尾。忽略標點符號 b 移到當前字或前一個字的開頭 B 移到前一個字的開頭,忽略標點符號 L 移到屏幕的最后一行 M 移到屏幕的中間一行 H 移到屏幕的第一行 ( 移到句子的開頭 ) 移到句子的結尾 { 移到段落的開頭 } 移到下一個段落的開頭 0(數字), | 移到當前行的第一列 ^ 移到當前行的第一個非空字符 $ 移到當前行的最后一個字符 +, Enter 移到下一行的第一個字符 - 移到前一行的第一個非空字符 在 vi 中加入文本 命令 插入動作 a 在光標后插入文本 A 在當前行尾插入文本 i 在光標前插入文本 I 在當前行前插入文本 o 在當前行的下邊插入新行 O 在當前行的上邊插入新行 s 刪除光標所在處字符,並進入插入模式 S 刪除光標所在的行。並進入插入模式 :r file 讀入文件 file 內容,並插在當前行后 :nr file 讀入文件 file 內容,並插在第 n 行后 Esc 回到命令模式 在 vi 中刪除文本 命令 刪除操作 x 刪除光標處的字符,向后刪除 nx 刪除本行光標開始之后的n個字符,不包括其他行 X 刪除光標前的單詞,向前刪除 dl 刪除一個字符 dw 刪至下一個字的開頭 daw 刪除當前單詞 dnw或ndw 刪除之后n個單詞 dap 刪除一個段落 dG 刪除該光標行及之后直到文件結束 dd 刪除整行 ndd 刪除光標下n行 db 刪除光標前面的字 :n,md 刪除n行到m行 d, d$ 從光標處刪除到行尾 d$ 從光標處刪除到行尾 d,d^ 從光標處刪除到行首 d^ 從光標處刪除到行首 改動 vi 文本 每一個命令前面的數字表示該命令反復的次數 命令 替換操作 g~~ 光標所在行字母大寫和小寫反轉 guu 光標所在行字母變小寫 gUU 光標所在行字母變大寫 gUaw 把當前單詞轉換成大寫 gUap 把當前段落轉換成大寫 rchar 用 char 替換當前字符 R text escape 用 text 替換當前字符直到按下 Esc 鍵 stext escape 用 text 取代當前字符 S 或 cctext escape 用 text 取代整行 cwtext escape 將當前字改為 text Ctext escape 將當前行余下的改為 text cG escape 改動至文件的末尾 在 vi 中查找與替換 命令 查找與替換操作 f字符 在本行查找下一個字符 ; 移動到下一個用f查找的字符,與上面的f配合使用 , 當移動到上一個f查找的字符。與;相反 * 全文查找移動到和光標當前的單詞一樣的下一個單詞 /text 在文件里向前查找 text ?text 在文件里向后查找 text n 在同一方向反復查找 N 在相反方向反復查找 :set ic 查找時忽略大寫和小寫 :set noic 查找時對大寫和小寫敏感 :ranges/pat1/pat2/g 用 newtext 替換 oldtext :m,ns/oldtext/newtext 在 m 行通過 n。用 newtext 替換 oldtext & 反復最后的 :s 命令 :g/text1/s/text2/text3 查找包括 text1 的行。用 text3 替換 text2 :g/text/command 在全部包括 text 的行運行 command 所表示的命令 :v/text/command 在全部不包括 text 的行運行 command 所表示的命令 在 vi 中復制文本 命令 復制操作 yy 將當前行的內容放入暫時緩沖區 nyy 將 n 行的內容放入暫時緩沖區 p 將暫時緩沖區中的文本放入光標后 P 將暫時緩沖區中的文本放入光標前 np 將暫時緩沖區中的文本放入光標后n次 nP 將暫時緩沖區中的文本放入光標前n次 在 vi 中撤消與反復 命令 撤消操作 u 撤消上一步操作 U 撤消當前行的全部改動 ctrl+r 反復鍵入,和撤銷相反 . 反復最后一次改動 , 以相反的方向反復前面的 f、F、t 或 T 查找命令 ; 反復前面的 f、F、t 或 T 查找命令 n 反復前面的 / 或 ? 查找命令 N 以相反方向反復前面的 / 或 ? 命令 保存文本和退出 vi 命令 保存和/或退出操作 :w 保存文件但不退出 vi :w file 將改動保存在 file 中但不退出 vi :wq 或 ZZ 或 :x 保存文件並退出 vi :q! 不保存文件,退出 vi :e! 放棄全部改動,從上次保存文件開始再編輯 :set go= go表示gui option的縮寫。等於空就是什么都沒有 vim file1 file2...filen能夠打開多個文件(在shell中輸入的) vim + filename 進行文件最后一行進行編輯 vim +n filename 進入文件第n行進行編輯 :e xx.txt 打開某文件 :open file 打開某文件,同上 :tabnew D:\text.txt 新選項卡中打開某文件,輸入:tabnew D:\t再按tab,會自己主動補全text.txt。假設不正確再按幾次tab,直到正確為止。 :bn 文件切換,下一個文件 :bp 文件切換。上一個文件 ctrl+6 文件切換,下一個文件 :split 多個文件上下排列,能夠通過:q退出當前窗體 :vsplit 多個文件左右排列 vi 中的選項 選項 作用 :set all 打印全部選項 :set nooption 關閉 option 選項 :set nu 每行前打印行號 :set showmode 顯示是輸入模式還是替換模式 :set autoindent 繼承前一行的縮進方式。特別適用於多行凝視 :set smartindent 為C程序提供自己主動縮進 :set list 顯示制表符(^I)和行尾符號 :set ts=8 為文本輸入設置 tab stops :set window=n 設置文本窗體顯示 n 行 vi 的狀態 選項 作用 ctrl+g 顯示文件名稱、當前的行號、文件的總行數和文件位置的百分比 :l 使用字母 "l" 來顯示很多的特殊字符,如制表符和換行符 在文本中定位段落和放置標記 選項 作用 { 在第一列插入 { 來定義一個段落 [[ 回到段落的開頭處 ]] 向前移到下一個段落的開頭處 在 vi 中連接行 選項 作用 J 將下一行連接到當前行的末尾 nJ 連接后面 n 行 光標放置與屏幕調整 選項 作用 H 將光標移動到屏幕的頂行 nH 將光標移動到屏幕頂行下的第 n 行 M 將光標移動到屏幕的中間 L 將光標移動到屏幕的底行 nL 將光標移動到屏幕底行上的第 n 行 ctrl+e 將屏幕下滾一行 ctrl+u 將屏幕上滾半頁 ctrl+d 將屏幕下滾半頁 ctrl+b 將屏幕上滾一頁 ctrl+f 將屏幕下滾一頁 ctrl+o 退出插入模式進入普通模式,操作后又進入插入模式 ctrl+p 編輯模式下自己主動補全 zz 重繪屏幕,使當前行移動是屏幕正中間 z-return 將當前行置為屏幕的頂行 nz-return 將當前行下的第 n 行置為屏幕的頂行 z. 將當前行置為屏幕的中央 nz. 將當前行上的第 n 行置為屏幕的中央 z- 將當前行置為屏幕的底行 nz- 將當前行上的第 n 行置為屏幕的底行 :syntax on 語法高亮 :syntax enable 語法高亮 :syntax clear 取消高亮 :color color后加空格然后按table來切換配色方案 :set hls 高亮查找的單詞 宏 qa(q表示開始錄制宏,宏的名字為a) 再記錄操作 最好按q(表示宏錄制結束) 使用:@a,宏運行一次。
6@a。表示運行6次宏a。 vi 中的 shell 轉義命令 選項 作用 :!command 運行 shell 的 command 命令,如 :!ls :!! 運行前一個 shell 命令 :r!command 讀取 command 命令的輸入並插入。如 :r!ls 會先運行 ls。然后讀入內容 :w!command 將當前已編輯文件作為 command 命令的標准輸入並運行 command 命令。如 :w!grep all :cd directory 將當前工作文件夾更改為 directory 所表示的文件夾 :sh 將啟動一個子 shell。使用 ^d(ctrl+d) 返回 vi :so file 在 shell 程序 file 中讀入和運行命令 vi 中的宏與縮寫 (避免使用控制鍵和符號。不要使用字符 K、V、g、q、v、*、= 和功能鍵) 選項 作用 :map key command_seq 定義一個鍵來運行 command_seq,如 :map e ea。不管什么時候都能夠 e 移到一個字的末尾來追加文本 :map 在狀態行顯示全部已定義的宏 :umap key 刪除該鍵的宏 :ab string1 string2 定義一個縮寫,使得當插入 string1 時,用 string2 替換 string1。當要插入文本時,鍵入 string1 然后按 Esc 鍵,系統就插入了 string2 :ab 顯示全部縮寫 :una string 取消 string 的縮寫 在 vi 中縮進文本 選項 作用 ctrl+i或 tab 插入文本時。插入移動的寬度。移動寬度是事先定義好的 :set ai 打開自己主動縮進 :set sw=n 將移動寬度設置為 n 個字符 >> 使當前行向右移動一個寬度 n>> 使 n 行都向右移動一個寬度,比如 3>> 就將接下來的三行每行都向右移動一個移動寬度。假設省略n表示使當前行向右移動一個寬度。
>G 使當前行至文檔結尾都向右移動一個寬度 可視模式 為了便於選取文本。VIM 引入了可視(Visual)模式。
要選取一段文本,首先將光標移到段首。在普通模式下按 v 進入可視模式。然后把光標移到段末選中內容(移到行首^,行末$)。須要注意。光標所在字符是包括在選區中的。
這時能夠對所選的文本進行一些操作,經常使用的(可視模式)命令有: x或d 剪切(即刪除,同一時候所選的文本進入剪貼板) y 復制 r字符 全部字符替換為新字符 u U ~ 各自是全部字母變小寫、變大寫、反轉大寫和小寫 當輸入了命令以后。VIM 將回到普通模式,這時能夠按 p 或 P 進行粘貼。普通模式下有關復制和粘貼的命令: v 進入可視模式 p或P 在當前位置粘貼剪貼板的內容,p 粘在光標所在字符后面,P 粘在前面 不得不承認,盡管引入了可視模式。復制和粘貼在 VIM 中仍然是比較麻煩的操作,這或許是 VIM 唯一的缺點。此外,VIM 還引入了選擇(Select)模式。跟可視模式相似。
結合一些鍵的定義和選項設置。