文件高級命令_第1頁
文件高級命令_第2頁
文件高級命令_第3頁
文件高級命令_第4頁
文件高級命令_第5頁
已閱讀5頁,還剩11頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

UNIX操作系統(tǒng)及應用 vi的模 vi的配 vim資 本章部分內(nèi)容來自于:SMTHBBS,y vi/vimedUNIXUNIXKenThompson編寫的,他第一次ed(regularexpression)REUNIX界造這里畢業(yè)的。ed是一種行模式編輯器,下面是一個ed會話的例子:##ed0a#因為新創(chuàng)建文件,所以讀入了個字節(jié)#進入編輯模式owr,e #q#2345.#6#顯示(print第一行7oworl,e8#最后一個詞寫錯了,修改(change第一行9oworl,e # #重新顯示第一行,oworl,eq#退出?#?w#保存(e#提示寫了個字節(jié)在70年代,許多使用UNIX的人都是用廉價的終端機通過 線連到UNIX服務器上的,因為傳輸速率慢,所以這種簡潔的行模式編輯就很有意義,現(xiàn)在雖然硬件有了長足的發(fā)展,ed編輯器下面這個有一些ed的笑話,從中我們或多或少能體會到那個時代人們的某種精神。

GNUed:Reference:,.html,http: /cm/cs/who/dmr/qed.html,http exed的擴展,實際上viex之上,vi隨著硬件的發(fā)展,UNIXpico,nano,joe,jed,jove,但是最為廣泛使用的無疑就是vi(nvi,elvis,vim等)emacs(GNUEmacs,XEmacs等)。1976BillJoyviSunMicrosystemsSunBillex,vi作為exvisualinterface,也就是說vi允許一次能看到一屏的文本而非一行,vi也因此得名。在的UNIX系統(tǒng)上,可能沒有缺省安裝emacs,但是肯定會有vi,當然,ed編輯器也必定存在:-)?vi?Bill’s技術(shù)不斷進步,需求也在不斷提高,vinvielvisvimyzis,其中移植性最好、特性最多、使用最廣的當屬vim,vim主要是BramMoolenaar2010AugUndoforever,text2008AugFloatingpointin2006May2000Jul Folding(andmore), 1998FebSyntax1996MayGraphicalUserInterface1994AugSupportformultiplebuffersandvi.ThiswaswhenVIMbecame1991Nov?LearningtheviEditor,6thEdition,O’Rei p: books/unix2/vi/index.htm(中國電力 ? vi:vi:f.:version4:version5:version61234基本語法:vioptions][+[n]][ - 用于恢復系統(tǒng)突 時正在編輯的文 vi無論用戶處于什么模式,按Esc鍵或組合鍵Ctrl+[就可以進入命令模式。當用戶初始進入vi時,vi內(nèi)部命令,這些命令不會回顯,而且不需要回車就會在命令模式下使用某些命令會導致vi馬上進入文本插入模式,這些命令包括:iIaAoO命令執(zhí)行完畢后,viEscCtrl+[、或用退在命令模式下按Ctrl-vEsc鍵或組合鍵Ctrl+[vi里面用最后行命令:helpmode可以看到vi由于區(qū)分了模式,導致vi令非常簡潔,而無模式編輯器比如emacs,所有令都需要加上控制鍵Ctrl或AltVIvs.Emacs:vied的理念,另外也有歷史原因,vi—啟動程序迅速、編輯文件、上組、聽mp3login→emacs→logoutviEmacs都是程序員的編輯器,相比而言,Emacs更是提供了一種程序員的生活氛圍。

l vi中“字”狹義:空格是“字的定界符,并且所有標點和非字母字符均被當成一個“字例 o,world\n");廣義時為兩個字,狹義時為11個字 跳到前/ 跳到前/ Ctrl- Ctrl- Ctrl- Ctrl- Ctrl-d1/2Ctrl-bCtrl- Ctrl- 用字符char代替光標處的字符,n指定字nR<text>text的內(nèi)容替換當前行n次。n缺省為1。命令執(zhí)行完后處于插入方式,必須按Esc鍵或組合鍵Ctrl+[回到命令方式:n將光標移到第n.”.+5”5:45345 Ao O在光標所在行的上一行增添新行 上述四個命令分別表示向下/向上搜索指定的正則表達式[paern],并將光標停留在相對搜索offset]n或N%[addr1,addr2|g]s/findexp/repladdr1行到addr2行的范圍內(nèi)將字符串findexpreplexpn表示替換每行的第n個匹配,cviqvi,如果文件作過改動但還沒有保存,系統(tǒng)將作出提示并取消此次退出動作。行命令x相當于wq命令。在命令方式下使用命令ZZ:x命令。如果由于讀寫權(quán)限或是更新方面的問題,導致vi執(zhí)行保存文件或退出vi令,那么可以在命令后加一個!號表示強制執(zhí)行。文件操作命令a][將編輯緩沖區(qū)的addr1行到addr2行之間的內(nèi)容寫回到介質(zhì)上的名為filename的文件中去,w的!rr filenamee filenameffilename 將當前文件重命名為filename 打印當前文件名稱和狀態(tài),如文件的行[addr1,addr2]m[addr3]上述行方式下令分別表示將第addr1行至第addr2行之間的內(nèi)容移動/拷貝到第addr3行的后命令方式下令J將當前行的下面一行合并到當前行的末”入這些寄存器,存器是循環(huán)使用的,每次存入內(nèi)容到寄存1時,-4個只讀寄存器 用于與系統(tǒng)剪切板交器/ ?wReference::helpvivi的過程中不用退出viUNIX:!<unixNormalmodeq<reg>,<reg>指{a-zA-Z0-9”37個寄存器中的一個,然后可以進行任何操Reference::helpNormalmode下按m<reg>作書簽,<reg>26個命名寄存器中的一個,然后可以用'<reg>`<reg>Reference::help:abbr|abstr1str2命令用用戶自定義的字符串str1來代替字符串:unab|unastr1取消縮寫Reference::help:mapkeycmdskey必須是一個單獨的字母。或是一個Ctrl:map!keystringkey必須是一個單獨的字母,或是一個CtrlCtrl+key的轉(zhuǎn)義序列時必須先按下下列組合鍵:Ctrl-如果cmdslist是行方式下令,那么在其末尾必須加上一個回車,輸入方法為先輸入Ctrl-v,然后輸入Ctrl-m。Ctrl-m代表回車。Reference::help:s//和:g//,。:s是替換操作,:g:!gtip:g找到的行拷貝到一個新的Reference::help:s:helpvim有許多配色方案,下面這個有許多配色方案效果的圖樣ctags,這方面可以利用ctagscscopeExuberantctags支持的語言種類非常多,UltraEdit的tags功能也是利用的Reference:ExuberantctagscscopeforWin32:helpctags:helpcscopetabpage跟現(xiàn)在許多編輯器上常見的頁意義并不一樣,可以將tabpage理解為一個windows個tabpage,把新窗口放到這個新的tabpage里頭Reference::helpwindows:helpbuffers:helpReference::helpReference::helpcindent:helpautoindent:helpvimInsertmode下輸入一個單詞的前幾個字符,然后用Ctrl-pCtrl-n些字符開頭的單詞,特別在配置了ctags:set:sete=t::set2Tab(以輸入字符為前綴補全)Ctrl-d(列出包含輸Reference::helpvim支持折疊代碼,還可以根據(jù)文件中特殊的標記對文件中的行折疊,可以實現(xiàn)大綱Reference::help許多人對于UNIX開發(fā)的印象都是“遍輯代碼,退出編輯器,編譯,用gdb調(diào)試,再編輯代碼”,這是古老的vim時代的事情了,vimquickfix特性可以經(jīng)配置后支持不同的編譯器以及不同的語言:只vimgdbvimhttp:///mikolaj/vimgdb/和,在http://php中的scripts處搜索gdb也可以找到一些插件。這方面Emacs的GUD(GrandUnifiedDebugger)調(diào)試界面要更強大,畢竟GCC/GDB/Emacs是一家。Reference::help將“(1),(2(100)”替換成“(2),3),(101)”在文本中一處處找到并修改是很累的,在vi下一條命令就可以搞定%%s/d+\))/\="(".(h./ 字符字符/)(submatch(1)(submatch(1)+ 回 %%s\-\$-命令的含義就是把“\n-$-\n:g:g/-\$-/命令g/-\$-/的含義就是找到所有的斷行標記,然后norm表示在找到的每一個行上執(zhí)行后面令ininteger,dimension(:,:),allocatablerA_very_long_name_var,&&234中,想把每行的&符號定位到固定的一列,比如第78列,手動對齊也是很麻煩的,這個問題可以:set:set &結(jié)尾的行,&前至少一個空白字符0或 插入& 插入&執(zhí)行一萬遍寄存器a中保執(zhí)行一萬遍寄存器a中保 :set 恢復ve 移動光標到需要注釋掉的第一行開頭,然后按Ctrl-v(如果開啟了vim的mswin行為,則Ctrl-v表Ctrl-q代替)VisualblockwiseVisualmode的一種,相UltraEditj(看起來效果是選擇了第一列),輸入I//再按ESC就可以在每一行開頭插入“//”了。vivi的配置共有三種方法,一種是在運行vi時使用行命令set來設(shè)置;一種是使用EXINIT環(huán)境變量; 下的.exrc文件(或.vimrc文件。vi的顯示是輸出到終端上的,所以終端的類型會對vi的顯示造成影響。終端類型阿設(shè)置是使用為控制不同的編輯功能,visetvi的各基本語法::set命令set ) viwrite autoindent 設(shè)置按Tab鍵跳過的空格數(shù)。例如:settabstop=n,n默認值為8上面所說的:set命令在退出vi后就失效了,下次進入vi:set?/.exrc?/.vimrcvi就會自動或者將需要用到的:set命令保存在EXINIT設(shè)而已,而vim的幫助的確是考慮到了自己“help”的 vim的幫助是超形式的,它使用的就是tags,所以可以跟ctags功能一樣按Ctrl-]跳轉(zhuǎn)到所指處,按Ctrl-o返回。 ,:help normalmode命令,:help:helpi insertmode命令比如:helpiCtrl-:help command-linemode命令,比如:help::help' 查找選項比如:help'

:help如果你記不清命令或者選項的全稱,Tab或者Ctrl-d的自動補全功能。:help 中的一種變量,類似s 的變量以$符號,vim的選項以& ,另外vim的寄存器

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論