1、移動(dòng)及跳轉(zhuǎn):
:n 跳轉(zhuǎn)到n行,n表示行號(hào) nG 跳轉(zhuǎn)到n行,n表示行號(hào) CTRL-] 跳轉(zhuǎn)到當(dāng)前光標(biāo)所在單詞對(duì)應(yīng)的主題 CTRL-O 回到前一個(gè)位置 h 左 j 下 k 上 l 右 W 向前移動(dòng)一個(gè)word b 向后移動(dòng)一個(gè)word $ 命令將光標(biāo)移動(dòng)到當(dāng)前行行尾 ^ 命令將光標(biāo)移動(dòng)到當(dāng)前行的第一個(gè)非空白字符上 0 命令則總是把光標(biāo)移動(dòng)到當(dāng)前行的第一個(gè)字符上 fx 在當(dāng)前行上查找下一個(gè)字符x % 跳轉(zhuǎn)到與之匹配的括號(hào)處 gf 命令方便地跳轉(zhuǎn)到光標(biāo)下的文件名所代表的文件中 `. 跳轉(zhuǎn)到最近修改過(guò)的位置 “ 跳轉(zhuǎn)到最近光標(biāo)定位的位置 m{mark} 將當(dāng)前光標(biāo)下的位置名之為標(biāo)記{mark},從a到z一共可以使用26個(gè)自定義的標(biāo)記 `{mark} 跳轉(zhuǎn)到一個(gè)你定義的{mark}標(biāo)記 50%mF 到文件的半中間(”50%”)處設(shè)置一個(gè)名為F的全局標(biāo)記 G 光標(biāo)定位到最后一行上 gg 光標(biāo)定位到第一行上 50% 光標(biāo)定位在文件的中間 H 光標(biāo)定位在顯示屏的第一行 M 光標(biāo)定位在顯示屏的中間 L 光標(biāo)定位在顯示屏的最后一行 CTRL-U 命令會(huì)使文本向下滾動(dòng)半屏 CTRL-D 命令將窗口向下移動(dòng)半屏 CTRL-F 命令將向前滾動(dòng)一整屏(實(shí)際上是整屏去兩行) CTRL-B 命令將向后滾動(dòng)一整屏(實(shí)際上是整屏去兩行) zz 命令會(huì)把當(dāng)前行置為屏幕正中央(z字取其象形意義模擬一張紙的折疊及變形位置重置) zt 命令會(huì)把當(dāng)前行置于屏幕頂端(t意為top) zb 命令會(huì)把當(dāng)前行置于屏幕底端(b意為bottom) :jumps 列出關(guān)于你曾經(jīng)跳轉(zhuǎn)過(guò)的位置的列表,你最后一個(gè)跳轉(zhuǎn)的位置被特別以一個(gè)”>”號(hào)標(biāo)記 :marks 列出自定義的標(biāo)記,包含VIM內(nèi)部自定義的標(biāo)識(shí) 2、搜索 / 命令可用于搜索一個(gè)字符串,在鍵入的過(guò)程中還可以用箭頭鍵和刪除鍵進(jìn)行移動(dòng)和修改 命令與“/”的工作相同, 只是搜索方向相反 n 繼續(xù)搜索下一個(gè)字符串 N 命令與“n”的工作相同, 只是搜索方向相反 * 向下完整匹配光標(biāo)下的單詞 # 向上完整匹配光標(biāo)下的單詞 g 向下部分匹配光標(biāo)下的單詞 Ctrl-P 向前搜索可匹配的單詞并完成 Ctrl-N 向后搜索可匹配的單詞并完成 :set ignorecase 設(shè)置忽略大小寫 :set hlsearch 高亮顯示搜索結(jié)果 :set incsearch 鍵入目標(biāo)字符串的過(guò)程中Vim就同時(shí)開始了搜索工作 :set nowrapscan 會(huì)使搜索過(guò)程在文件結(jié)束時(shí)就停止 3、編輯(新增、刪除、移動(dòng)、復(fù)制) x 代表dl(刪除當(dāng)前光標(biāo)下的字符) X 代表dh(刪除當(dāng)前光標(biāo)左邊的字符) D 代表d$(刪除到行尾的內(nèi)容) C 代表c$(修改到行尾的內(nèi)容) s 代表cl(修改一個(gè)字符) S 代表cc(修改一整行) diw 刪除當(dāng)前光標(biāo)所在的word(不包括空白字符),意為Delete Inner Word daw 刪除當(dāng)前光標(biāo)所在的word(包括空白字符),意為Delete A Word dG 刪除當(dāng)前行至文件尾的內(nèi)容 dgg 刪除當(dāng)前行至文件頭的內(nèi)容 cis 修改一整個(gè)句子,意為change Inner Sentence R 讓Vim進(jìn)入replace模式,在此模式下,每個(gè)鍵入的字符都會(huì)替換掉當(dāng)前光標(biāo)下的字符 p 取回被刪除的內(nèi)容,可以使用命令記數(shù)(在Vim中這叫put) P 與”p”一樣取回被刪除的內(nèi)容, 不過(guò)它把被取回的內(nèi)容置于光標(biāo)之前 yw 復(fù)制一個(gè)word,同樣可以使用命令記數(shù),c表示change而不是copy yy 復(fù)制一整行 y$ 復(fù)制當(dāng)前光標(biāo)至行尾 ~ 改變當(dāng)前光標(biāo)下字符的大小寫 3、在vi中替換字符串: :s/vivian/sky/ 替換當(dāng)前行第一個(gè)vivian為sky :s/vivian/sky/g 替換當(dāng)前行所有vivian為sky,g表示global :n,$s/vivian/sky/ 替換第n行開始到最后一行中每一行的第一個(gè)vivian為sky,n為數(shù)字 :n,$s/vivian/sky/g 替換第n行開始到最后一行中每一行所有vivian為sky :.,$s/vivian/sky/g 替換當(dāng)前行開始到最后一行中每一行所有vivian為sky :%s/vivian/sky/(等同于 :g/vivian/s//sky/) 替換每一行的第一個(gè) vivian 為 sky,%表示所有行 :%s/vivian/sky/g(等同于 :g/vivian/s//sky/g)替換每一行中所有 vivian 為 sky :s#vivian/#sky/# 替換當(dāng)前行第一個(gè)vivian/為sky/,可以使用#作為分隔符,此時(shí)中間出現(xiàn)的/不會(huì)作為分隔符 :3,$s/^/some string/ 在文件的第一行至最后一行的行首前插入some string :%s/$/some string/g 在整個(gè)文件每一行的行尾添加some string :%s/s+$// 去掉所有的行尾空格,“s”表示空白字符(空格和制表符),“+”對(duì)前面的字符匹配一次或多次(越多越好),“$”匹配行尾(使用“$”表示單純的“$”字符) :%s/(s*n)+/r/ 去掉所有的空白行,“(”和“)”對(duì)表達(dá)式進(jìn)行分組,使其被視作一個(gè)不可分割的整體。 :%s!s*//.*!! 去掉所有的“//”注釋 :%s!s*/*_.{-}*/s*!!g 去掉所有的“”注釋 3、文件處理 :w /tmp/1 既然沒法存盤,不想放棄所做的所有修改,先臨時(shí)存到/tmp/1。 :20,59w /tmp/1 或者僅僅把第20到59行之間的內(nèi)容存盤成文件/tmp/1。 :X 文件加密,會(huì)提示輸入密碼。 vim -x exam.txt 新編輯的文件加密,會(huì)提示輸入密碼。 vim -R file 只讀方式打開文件。 vimdiff main.c~ main.c 顯示兩個(gè)文件的不同之處 :args 顯示文件列表 :n 切換到文件2 (n=next)。 :N 切換回文件1。 :scriptnames 顯示VIM加載的vimrc VIM命令的固定模式: 操作符命令+位移命令 :version 顯示VIM版本信息,包含特性、編譯方式及配置文件目錄 :map 列出當(dāng)前已定義的映射 ptions 打開一個(gè)新窗口, 在該窗口的最開頭的注釋下面是一個(gè)選項(xiàng)列表 :help E37 5、常用快捷方式: “.”:重復(fù)上次的修改命令 “Ctrl-X Ctrl-L”:搜索可匹配的行并完成 “Ctrl-X Ctrl-F”:搜索可匹配的文件名并完成 “Ctrl-G”:顯示文件名,當(dāng)前光標(biāo)所在行的行號(hào),總的行數(shù),以及當(dāng)前行所在文件中的百分比和當(dāng)前光標(biāo)所在的列的信息 “ZQ”:無(wú)條件退出 “ZZ”:(存盤退出) “ga”:顯示光標(biāo)下的字符在當(dāng)前使用的encoding下的內(nèi)碼 “guw”:光標(biāo)下的單詞變?yōu)樾?BR>“gUw”:光標(biāo)下的單詞變?yōu)榇髮?BR>“xp”:左右交換光標(biāo)處兩字符的位置 “ddp”:上下交換光標(biāo)處兩行的位置,p命令把它取回來(lái)(在Vim中這叫put) “J”:兩行合并為一行, 也就是說(shuō)兩行之間的換行符被刪除了 “u”:撤消上一次命令 “Ctrl+R”:重做上一次命令 “o”:在當(dāng)前行的下面另起一行, 并使當(dāng)前模式轉(zhuǎn)為Insert模式 6、執(zhí)行外部命令: “:!命令”:可以在 Vim 中執(zhí)行一個(gè)外部命令 “:r!”:命令可以在外部命令執(zhí)行的結(jié)果插入到當(dāng)前編輯的緩沖區(qū)中 “:%!nl”:要對(duì)包含空行的所有行進(jìn)行編號(hào) “:!echo $VIMRUNTIME” 顯示VIM的目錄(/usr/share/vim/vim63) “vimtutor” 顯示VIM的30分鐘的教程 7、set選項(xiàng): :set list 查看制表符,現(xiàn)在每個(gè)制表符都會(huì)以^I顯示. 同時(shí)每行行尾會(huì)有一個(gè)$字符。 :set key= 去掉文件加密。 :syntax enable 打開彩色 :set number? 顯示number的值 :set number& 恢復(fù)選項(xiàng)的默認(rèn)值 :set autoindent 讓Vim在開始一個(gè)新行時(shí)對(duì)該行施以上一行的縮進(jìn)方式 :set showcmd 在Vim窗口的右下角顯示一個(gè)完整的命令已經(jīng)完成的部分 :set autowrite 設(shè)置自動(dòng)存盤 :set backup 設(shè)置備份,生成的備份文件名將是原文件名后面附加一個(gè)~ :set backupext=.bak 設(shè)置備份文件名后輟 |
|
來(lái)自: xiaohua1314 > 《linux》