




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、linux教程Vi使用教程(2008-09-02 23:12)vi FileName 打開文件 FileName,并將光標置于第一行首。vi +n FileName 打開文件 FileName,并將光標置于第 n 行首。vi + FileName 打開文件 FileName,并將光標置于最后一行。vi + /pattern File 打開文件 File,并將光標置于其中第一個于 pattern 匹配的字符串處。vi r FileName 在上次正用 vi 編輯 FileName 發生系統崩潰后,恢復FileName。vi File1 Filen 打開多個文件,依次對之進行編輯。:%!xxd 按
2、十六進制查看當前文件:%!xxd -r 從十六進制返回正常模式:n1,n2 co n3 將 n1 行到 n2 行之間的內容拷貝到第 n3 行下。:n1,n2 m m3 將 n1 行到 n2 行之間的內容移至第 n3 行下。:n1,n2 d 將 n1 行到 n2 行之間的內容刪除。:n1,n2 w filename 將 n1 行到 n2 行之間的內容保存到文件 filename 中:n1,n2 w! Command 將文件中n1行到n2行的內容作為 Command的輸入并執行之, 若不指定 n1、n2,則將整個文件內容作為 Command 的輸入。:r! Command 將命令 Command
3、的輸出結果放到當前行。:nr <文件> 把<文件>插入到第n行:so <文件> 讀取<文件>,再執行文件里面的命令(文件中的命令應該都是一些ex命令):l1,l2w <文件> 把第l1和第l2行之間的文本寫到<文件>中去:w >> <文件> 添加到<文件>末尾. 也可以使用行號:e! 重新編輯當前文件,忽略所有的修改·(、)對應顯示 % 顯示當前(、 、 、)的對應項 ) 顯示對應的 ( ) 顯示對應的 顯示對應的 ·(、)內數據選擇 daB 刪除及其內的內容 (在非
4、v可視模式下) diB 刪除中的內容 ab 選擇()中的內容 ib 選擇()中的內容( 不含() ) aB 選擇中的內容 iB 選擇中的內容( 不含 )·語法提示與自動補齊 <C-N><C-P> 插入模式下的單詞自動完成 <C-X><C-L> 行自動完成(超級有用)·設置ctags#ctags -f /usr/share/vim/vim63/funcs.tags -R /opt/j2sdk/src /usr/src/kernels/2.6.9-5.EL-i686p 自動補齊上下文已有相近項n 自動補齊/.tags中的相近函數
5、顯示/.tags中的光標下的函數的原型,按t退出函數:pta 函數名 預覽窗口快速打開相應函數所在文件,并將光標定位在對應函數的開頭K 顯示光標下的C函數的man說明手冊·變量定位gd 轉到光標下局部變量的定義處Gd 轉到光標下全局變量的定義處·編譯選項:cn 命令會把你帶到下一個出錯地點,而不考慮它在什么文件里。:cc 命令會向你顯示當前錯誤的編譯器輸出信息;:cl 會生成一個列有項目所有錯誤的列表,以供瀏覽這些錯誤3光標移動 h 光標左移一個字符。 l 光標右移一個字符。 w 或 W 光標右移一個字至字首。 B 或 b 光標左移一個字至字首。 E 或 e 光標右移一個字
6、至字尾。 光標移至句尾。 ( 光標移至句首。 ) 光標移至段落開頭。 光標移至段落結尾。 k 或 Ctrl+p 光標上移一行。 j 或 Ctrl+n 光標下移一行。 Enter 光標下移一行。 nG 光標移至第 n 行首。 n+ 光標下移 n 行。 n- 光標上移 n 行。 n$ 光標移至第 n 行尾。 0 光標移至當前行首。 $ 光標移至當前行尾。 H 光標移至屏幕頂行。 M 光標移至屏幕中間行。 L 光標移至屏幕最后行。 Ctrl+u 向文件首翻半屏。 Ctrl+d 向文件尾翻半屏。 Ctrl+f 向文件尾翻一屏。 Ctrl+b 向文件首翻一屏。nz 將第 n 行滾至屏幕頂部。不指定 n
7、時將當前行滾至屏幕頂。4插入# 在文件中插入行號(不是顯示行號,是插入!):g/exec "s/".strpart(line(".")." ", 0, 4)·光標i 在光標前插入。a 在光標后插入。·行I 在當前行首插入。A 在當前行尾插入。o 在當前行之下一新行插入。O 在當前行之上新開一行插入。5)替換r 替換當前字符。R 替換當前字符及其后的字符,直至按 ESC 鍵。s 從當前光標位置處開始,以輸入的文本代替指定數目的字符。S 刪除指定數目的行,并以所輸入的文本代替。6)修改ncw 或 nCW 修改指定數目的
8、字符。nCC 修改指定數目的行。:r filename 將文件 filename 插入在當前行之下7)查找替換/<C-R><C-W> 把狹義單詞 <cword> 寫到 搜索命令 行/<C-R><C-A> 把廣義單詞 <cWORD> 寫到 搜索命令 行:g/str/s/str1/str2/g第一個g表示對每一個包括s1的行都進行替換,第二個g表示對每一行的所有進行替換包括str的行所有的str1都用str2替換:%s/f $/for$/g 將每一行尾部的“f ”(f鍵和空格鍵)替換為for:%s/mv /g 在每一行的頭部添
9、加“mv ”(mv鍵和空格鍵):s/fred/<c-r>a/g 替換fred成register a中的內容,呵呵:g/<input|<form/p 顯示含<input或<form的行# 替換一個visual區域# 選擇一個區域,然后輸入 :s/Emacs/Vim/ 等等,vim會自動進入:模式:'<,'>s/Emacs/Vim/g 前面的'<,'>是vim自動添加的# 在多個文檔中搜索:bufdo /searchstr:argdo /searchstr復制與剪切xp 交換前后兩個字符的位置ddp 上下兩
10、行的位置交換:g/fred/t$ 拷貝行,從fred到文件末尾(EOF)9)窗口操作:vne filename:sp filename:S filename:new filename:w + r 交換兩個窗口的位置w = 窗口等寬:res -n 窗口高度減小n:res +n 窗口高度增大n:vert res -n:vert res +n10)DOS格式文本轉成Unix格式文本:1,$s/M/g11)書簽在閱讀和編寫大的程序文件時,利用標記(書簽)功能定位是十分有幫助的。將光標移到想做標記的位置。假如做一個名為“debug1”的標記,那么用戶可在命令模式下輸入做標記的命令“mdebug1”,然后
11、敲入回車鍵,一個名為“debug1”的標記就做好了。接下來用戶可以隨意將光標移到其它的位置,當在命令模式下輸入“debug1”后,就能快速回到“debug1”的標記所在行的行首。12)刪除操作:%s/r/g 刪除DOS方式的回車M:%s= *$= 刪除行尾空白:%s/(.*)n1/1$/ 刪除重復行:%s/.pdf/new.pdf/ 只是刪除第一個pdf:%s/<!-_.->/ 又是刪除多行注釋(咦?為什么要說又呢?):g/s*$/d 刪除所有空行:g!/dd/d 刪除不含字符串'dd'的行:v/dd/d 同上 (譯釋:v = g!,就是不匹配!):g/str1/,
12、/str2/d 刪除所有第一個含str1到第一個含str2之間的行:v/./.,/./-1join 壓縮空行:g/$/,/./-j 壓縮空行ndw 或 ndW 刪除光標處開始及其后的 n-1 個字符。d0 刪至行首。d$ 刪至行尾。ndd 刪除當前行及其后 n-1 行。x 或 X 刪除一個字符。Ctrl+u 刪除輸入方式下所輸入的文本。R 恢復u的操作J 把下一行合并到當前行尾V 選擇一行V 按下V后即可進行矩形的選擇了aw 選擇單詞iw 內部單詞(無空格)as 選擇句子is 選擇句子(無空格)ap 選擇段落ip 選擇段落(無空格)D 刪除到行尾x,y 刪除與復制包含高亮區dl 刪除當前字符(
13、與x命令功能相同)d0 刪除到某一行的開始位置d 刪除到某一行的第一個字符位置(不包括空格或TAB字符)dw 刪除到某個單詞的結尾位置d3w 刪除到第三個單詞的結尾位置db 刪除到某個單詞的開始位置dW 刪除到某個以空格作為分隔符的單詞的結尾位置dB 刪除到某個以空格作為分隔符的單詞的開始位置d7B 刪除到前面7個以空格作為分隔符的單詞的開始位置d) 刪除到某個語句的結尾位置d4) 刪除到第四個語句的結尾位置d( 刪除到某個語句的開始位置d) 刪除到某個段落的結尾位置d 刪除到某個段落的開始位置d7 刪除到當前段落起始位置之前的第7個段落位置dd 刪除當前行d/text 刪除從文本中出現“te
14、xt”中所指定字樣的位置,一直向前直到下一個該字樣所出現的位置(但不包括該字樣)之間的內容dfc 刪除從文本中出現字符“c”的位置,一直向前直到下一個該字符所出現的位置(包括該字符)之間的內容dtc 刪除當前行直到下一個字符“c”所出現位置之間的內容D 刪除到某一行的結尾d$ 刪除到某一行的結尾5dd 刪除從當前行所開始的5行內容dL 刪除直到屏幕上最后一行的內容dH 刪除直到屏幕上第一行的內容dG 刪除直到工作緩存區結尾的內容d1G 刪除直到工作緩存區開始的內容修改命令操作r 更改當前字符cw 修改到某個單詞的結尾位置c3w 修改到第三個單詞的結尾位置cb 修改到某個單詞的開始位置cW 修改
15、到某個以空格作為分隔符的單詞的結尾位置cB 修改到某個以空格作為分隔符的單詞的開始位置c7B 修改到前面7個以空格作為分隔符的單詞的開始位置c0 修改到某行的結尾位置c 修改到某個語句的結尾位置c4 修改到第四個語句的結尾位置c( 修改到某個語句的開始位置c) 修改到某個段落的結尾位置c 修改到某個段落的開始位置c7 修改到當前段落起始位置之前的第7個段落位置ctc 修改當前行直到下一個字符c所出現位置之間的內容C 修改到某一行的結尾cc 修改當前行5cc 修改從當前行所開始的5行內容. 重復上一次修改!13Set 選項設置set all 列出所有選項設置情況。set term 設置終端類型。
16、set ignorecase 在搜索中忽略大小寫。set list 顯示制表位(I)和行尾標志($)。set number 顯示行號。set showmode 示用戶處在什么模式下set report 顯示由面向行的命令修改國的行數目。set terse 顯示簡短的警告信息。set warn 在轉到別的文件時,若沒有保存當前文件則顯示 No write 信息。set autowrite 在“:n”和“:!”命令之前都自動保存文件set nomagic 允許在搜索模式中,使用前面不帶的特殊字符。set nowrapscan 禁止 vi 在搜索到達文件兩端時,又從另一端開始。set mesg 允許
17、 vi 顯示其他用戶用 write 寫到自己終端上的信息。autoindent (ai) noai 使新行自動縮進,和上(下)行的位置對齊autoprint (ap) ap 每條命令之后都顯示出修改之處autowrite (aw) noaw 在:n,:!命令之前都自動保存文件beautify (bf) nobf 在輸入的時候忽略所有的控制字符(除了制表鍵(tab),換行(newline),進紙(formfeed)directory= (dir=) /tmp 存放緩沖區的目錄名edcompatible noedcompatible 在替換的時候使用類ed的用法errorbells (eb) er
18、rorbells 出錯的時候響鈴exrc (ex) noexrc 允許在主目錄(home)外面之外放.exrc文件hardtabs= (ht=) 8 設置硬制表的邊界ignore case (ic) noic 正規式里忽略大小寫lisp nolisp 打開lisp模式list nolist 顯示所有的制表鍵和行的結尾magic agic 可以使用更多的正規表達式mesg mesg 允許向終端發送消息number (nu) nonumber 顯示行號open open 允許開放和可視化optimize (opt) optimize 優化吞吐量,打印時不發回車paragraphs= (para=)
19、 IPLPPPQPPLIbp 設置 & 的分界符prompt prompt 命令模式下的輸入給出:的提示符readonly (ro) noro 除非用!號否則不準保存文件redraw noredraw 當編輯的時候重繪屏幕remap remap 允許宏指向其他的宏report= 5 如果影響的行數>這個數的話就報告scroll 1/2 window 下卷屏幕時滾動屏幕的數目, 同樣這也是z命令輸出的行數(z 輸出2倍滾屏的大小)sections= SHNHH HU 定義節的末尾(當使用命令 和 時)shell= (sh=) /bin/sh 缺省的SHELL,如果設置了環境變量SH
20、ELL的話,就使用變量shiftwidth= (sw=) 8 當使用移動(shift)命令時移動的字符數showmatch (sm) nosm 顯示, , (, ), , 或者 的匹配情況showmode noshowmode 顯示你處在什么模式下面slowopen (slow) 插入之后不要立刻更新顯示tabstop= (ts=) 8 設置制表停止位(tabstop)的長度taglength= (tl=) 0 重要標記的字符個數(0表示所有的字符)tags= tag, /usr/lib/tags 定義包含標記的文件路徑term= 設置終端類型terse noterse 顯示簡短的錯誤信息ti
21、meout (to) timeout 一秒鐘后鍵盤映射超時ttytype= 設置終端類型warn warn 顯示"No write since last change"信息window= (w=) 可視模式下窗口的行數wrapmargin= (wm=) 0 右邊距,大于0的話最右邊的單詞將折行,留出n個空白位置wrapscan (ws) ws 查找到文件尾后再重頭開始writeany (wa) nowa 可以保存到任意一個文件去14特殊字符 匹配字符串位于行首。$ 匹配字符串位于行尾。. 用在模式串中,表示任何單個字符。在命令模式下,重復上次的命令。* 在模式串中,表示其前
22、字符可出現任意多次。 用在模式串中,表示指定方位內字符,其中可用-表示一個字符范圍,用表示不在某個范圍內的字符。ESC 從插入狀態轉換到命令狀態 功能同 ESC15大小寫轉換guu 行小寫gUU 行大寫g 行翻轉(當然指大小寫啦)guw 字小寫(狹義字) 譯注:建議對比iwgUw 字大寫(狹義字)gw 字翻轉(狹義字)vEU 字大寫(廣義字)vE 字翻轉(廣義字)ggguG 把整個文章全部小寫(ft!bt!)16) 跳轉足跡'. 跳到最后修改的那一行 (超級有用)(ft,怎么又是這個評價). 不僅跳到最后修改的那一行,還要定位到修改點<C-O> 依次沿著你的跳轉記錄向回跳
23、(從最近的一次開始)<C-I> 依次沿著你的跳轉記錄向前跳:ju(mps) 列出你跳轉的足跡17)命令歷史:history 列出歷史命令記錄:his c 命令行命令歷史:his s 搜索命令歷史q/ 搜索命令歷史的窗口q 命令行命令歷史的窗口:<C-F> 歷史命令記錄的窗口18寄存器# 列出寄存器(Registers):reg 顯示所有當前的registers"1p 表示引用register,1表示一個名字叫做1的register,p就是粘貼(paste)命令譯釋:"也用來定義register先輸入 ",表示定義register然后輸入名字
24、,如09,az然后執行刪除或復制命令,如dd或y,或者是visual模式下的d(刪除選中的部分)或y(復制選中的部分)則被刪除或復制的部分就被存入了這個命名的register觀察:一個特殊的register, "" ,里面存儲了一個匿名的刪除/復制在你執行dd或y的時候,被作用的部分被存到了""中19命令行"ayya 把當前行作為一個Vim命令來執行譯釋:"ayy 是定義當前行到register a,然后a是執行register a中存儲的指令10yy copy 當前行以下10行11 排序:%!sort -u 使用sort程序排序整個
25、文件(用結果重寫文件)!1) sort -u 排序當前段落 (只能在normal模式下使用!):.,+5!sort 排序當前行及以下5行20) 列操作:%s= +$=&&= 復制最后一列:%s= f+$=&&= 一樣的功能:%s= S+$=&& ft,還是一樣:s/(.*).*)/2"1/ 顛倒用:分割的兩個字段:%s(w+s+)str1:1str2: 處理列,替換所有在第三列中的str1:%sw+)(.*s+)(w+)$:321: 交換第一列和最后一列 (共4列)·.vimrc" Use Vim settings,
26、 rather then Vi settings (much better!).set nocompatible"c風格的縮進:set expandtab "不使用tab只使用空格:set cindent shiftwidth=4"自動縮進:set ai"語法":set filetype=java:set syntax=java"鍵入)、 、,顯示(、:set showmatch"手工定義折疊:set foldmethod=manual"標簽文件位置set tags=/usr/share/vim/vim63/fun
27、cs.tags"在插入模式下通過按CtrlN自動地將任何類、方法或者字段名補齊set complete+=k" 不要用聲音煩我!set visualbell"歷史:set history=50"顯示行列位置:set ruler"設置字符編碼set fileencodings=gb2312"set encoding=euc-cn"設置rulerset ruler"顯示當前命令set showcmd"incsearchset incsearch" allow backspacing over eve
28、rything in insert modeset backspace=indent,eol,start"自動檢測文件類型:filetype on"""""""""""快捷鍵定義"""""""""""""""""""""""""&
29、quot;"""""""""""""""""""""""""""""""""if version >= 600"查找"map <C-H> /"查找函數原型map <C-H> yiw/(s)*(sub)|(fun
30、ction)(s)*<C-r>"<CR>"繼續查找map <F3> n"使用<F10>顯示類、屬性、方法列表map <F2> :Tlist<CR>" 用compiler定義的編譯程序來編譯當前程序"map <F9> :make "%"<CR>"使用<F11>來進行php語法檢測map <F11> :!php -l "%" <CR>map ;w :call Forma
31、tText()<CR>"查找當前光標下的字map <F4> /<C-R><C-W><CR>endif""""""""""":快捷鍵定義""""""""""""""""""""""""
32、;""""""""""""""""""""""""""""""""""""""""""""格式化文件"""""
33、""""""""""""""""""""""""""""""""""""""""""""""""""
34、""""function FormatText():%s/t/ /g "把t換成4個空格:%s/ *$/g "去掉行尾空格endfunction"""""""""""格式化文件"""""""""""""""""""""&
35、quot;"""""""""""""""""""""""""""""""""""""""""""""""顯示行尾的tab和多余空格
36、"""""""""""""""""""""""""""""""""""""""""""""""set listchars=tab:
37、>-,trail:set listsyntax match Trail " +$"highlight def link Trail Todo"""""""""":顯示行尾的tab和多余空格""""""""""""""""""""""""
38、;"""""""""""""""""""""function LastMod()if line("$") > 5let l = 5elselet l = line("$")endifexe "1," . l . "/CnsProgCMTime/s/CnsProgCMTime .*/CnsProgCMTime &q
39、uot; . strftime("%Y-%m-%d %H:%M:%S")."/e"endfunction"map <F5> :call LastMod()<CR>"""""""""""自動加注釋的*星號"""""""""""""""""""""""""""""""""""""""""""""""""""""使用如/* . */ 的注釋時,r在插入模式下回車時插入* ;"o 在普通模式下,
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年中國有線領夾式麥克風市場調查研究報告
- 2025至2031年中國純氮行業投資前景及策略咨詢研究報告
- 2025年中國數控打圈機市場調查研究報告
- 2025至2031年中國精密沖模行業投資前景及策略咨詢研究報告
- 新疆科信職業技術學院《鄂南竹木工藝文創》2023-2024學年第一學期期末試卷
- 肇慶市實驗中學高中生物三:生態系統的結構第課時導學案
- 肇慶市實驗中學高中歷史三:第一單元測驗題
- 新疆科信職業技術學院《智慧物流設施與設備》2023-2024學年第一學期期末試卷
- 新疆農業職業技術學院《國際商務英語》2023-2024學年第二學期期末試卷
- 新疆維吾爾烏魯木齊市2025屆數學五年級第二學期期末預測試題含答案
- 高級貨檢員3選擇題試題
- 防雷檢測能力評價考試題庫大全-中(判斷、填空題匯總)
- 2022年地理學業水平測驗復習鄉土地理濟寧地理歸納點
- 新概念英語青少版入門級Starter A 結業測試 含答案
- 煙草原料學-煙草的品質課件
- GB∕T 4490-2021 織物芯輸送帶 寬度和長度
- 寢室文化節優秀寢室宿舍展示PPT模板
- 跌倒的預防及護理預防跌倒的步驟通用課程PPT課件
- (完整版)電力排管專項施工方案
- 第三章業績評價
- 電子皮帶秤檢定規程
評論
0/150
提交評論