vi大全
xp 交換兩個(gè)字符位置 ddp 上下兩行調(diào)換 J 上下兩行合并 dG 刪除所有行 d$ 從當(dāng)前位置刪除到行尾 y$ 從當(dāng)前位置復(fù)制到行尾, 如果要粘貼到其他地方 p 就可以了 :ab string strings 例如 ":ab usa United States of America" , 當(dāng)你在文見(jiàn)里插入 usa 時(shí) United States of America 就蹦出來(lái)了 :g/^/m0 把文件內(nèi)容反轉(zhuǎn) :map keys new_seq 定義你當(dāng)前 鍵盤命令 :set [all] vi or ex 的編輯狀態(tài) 如 顯示每行 :set nu :X 然后系統(tǒng)會(huì)提示輸入密碼, 輸入密碼后存盤退出, 保存后就加密了 下次編輯時(shí)使用vi -x filename, 系統(tǒng)會(huì)提示你輸入密碼 在命令狀態(tài)下,nyy表示拷貝從光標(biāo)行起的下n行內(nèi)容,p表示paste,粘貼下來(lái)在光標(biāo)處。 我常用到的單個(gè)字符替換用r,覆蓋多個(gè)字符用R,用多個(gè)字符替換一個(gè)字符用s,整行替換用S :%s/old_word/new_word/g 這個(gè)指令是于在整個(gè)文件中替換特定字符串 將光標(biāo)移到第n行,按下 mk 將光標(biāo)移到第m行,按下 "ay'k 即將第n到m的行存到a寄存器,以此類推,b,c........寄存器等 不好意思,補(bǔ)充一下,想粘貼到某處,直接將光標(biāo)移到某地,按下 ‘ap 即可 刪除命令操作 d l 刪除當(dāng)前字符(與x命令功能相同) d 0 刪除到某一行的開始位置 d ^ 刪除到某一行的第一個(gè)字符位置(不包括空格或TA B字符) d w 刪除到某個(gè)單詞的結(jié)尾位置 d 3 w 刪除到第三個(gè)單詞的結(jié)尾位置 d b 刪除到某個(gè)單詞的開始位置 d W 刪除到某個(gè)以空格作為分隔符的單詞的結(jié)尾位置 d B 刪除到某個(gè)以空格作為分隔符的單詞的開始位置 刪除命令操作 d 7 B 刪除到前面7個(gè)以空格作為分隔符的單詞的開始位置 d) 刪除到某個(gè)語(yǔ)句的結(jié)尾位置 d 4) 刪除到第四個(gè)語(yǔ)句的結(jié)尾位置 d( 刪除到某個(gè)語(yǔ)句的開始位置 d } 刪除到某個(gè)段落的結(jié)尾位置 d { 刪除到某個(gè)段落的開始位置 d 7 { 刪除到當(dāng)前段落起始位置之前的第7個(gè)段落位置 d d 刪除當(dāng)前行 d /t e x t 刪除從文本中出現(xiàn)“ t e x t”中所指定字樣的位置,一直向前直到下一個(gè)該字樣所出現(xiàn)的 位置(但不包括該字樣)之間的內(nèi)容 d fc 刪除從文本中出現(xiàn)字符“c”的位置,一直向前直到下一個(gè)該字符所出現(xiàn)的位置(包括 該字符)之間的內(nèi)容 d tc 刪除當(dāng)前行直到下一個(gè)字符“ c”所出現(xiàn)位置之間的內(nèi)容 D 刪除到某一行的結(jié)尾 d $ 刪除到某一行的結(jié)尾 5 d d 刪除從當(dāng)前行所開始的5行內(nèi)容 d L 刪除直到屏幕上最后一行的內(nèi)容 d H 刪除直到屏幕上第一行的內(nèi)容 d G 刪除直到工作緩存區(qū)結(jié)尾的內(nèi)容 d 1 G 刪除直到工作緩存區(qū)開始的內(nèi)容 修改命令操作 c l 更改當(dāng)前字符 c w 修改到某個(gè)單詞的結(jié)尾位置 c 3 w 修改到第三個(gè)單詞的結(jié)尾位置 c b 修改到某個(gè)單詞的開始位置 c W 修改到某個(gè)以空格作為分隔符的單詞的結(jié)尾位置 c B 修改到某個(gè)以空格作為分隔符的單詞的開始位置 c 7 B 修改到前面7個(gè)以空格作為分隔符的單詞的開始位置 c 0 修改到某行的結(jié)尾位置 c) 修改到某個(gè)語(yǔ)句的結(jié)尾位置 c 4) 修改到第四個(gè)語(yǔ)句的結(jié)尾位置 c( 修改到某個(gè)語(yǔ)句的開始位置 c } 修改到某個(gè)段落的結(jié)尾位置 c { 修改到某個(gè)段落的開始位置 c 7 { 修改到當(dāng)前段落起始位置之前的第7個(gè)段落位置 c tc 修改當(dāng)前行直到下一個(gè)字符c所出現(xiàn)位置之間的內(nèi)容 C 修改到某一行的結(jié)尾 c c 修改當(dāng)前行 5 c c 修改從當(dāng)前行所開始的5行內(nèi)容 替換命令操作 s 將當(dāng)前字符替換為一個(gè)或多個(gè)字符 S 將當(dāng)前行替換為一個(gè)或多個(gè)字符 5 s 將從當(dāng)前字符開始的5個(gè)字符替換為一個(gè)或多個(gè)字符 下載 vi替換使用規(guī)則: :g/s1/s/s2/s3/g 第一個(gè)g表示對(duì)每一個(gè)包括s1的行都進(jìn)行替換,第二個(gè)g表示對(duì)每一行包括s1的行所有的s2都用s3替換 s表示替換,s2是要被替換的字符串,他可以和s1相同(如果相同的話用//代替),s3是替換字符串 fx 往右移動(dòng)到 x 字符上 Fx 往左移動(dòng)到 x 字符上 tx 往右移動(dòng)到 x 字符前 Tx 往左移動(dòng)到 x 字符后 ?。ㄗ⒁猓阂陨纤膫€(gè)命令中,其中x是鍵入的字符) ; 分號(hào),配合 f 和 t 使用,重復(fù)一次 , 逗號(hào),配合 f 和 t 使用,反方向重復(fù)一次 建議誰(shuí)把 :set all 出來(lái)的參數(shù)及其用法說(shuō)明一下。注意注明UNIX平臺(tái),我發(fā)現(xiàn)幾個(gè)平臺(tái)下有些差異。 加密碼我在8 上(bsh) 實(shí)驗(yàn)成功 所以大家最好還是加上 環(huán)境!! vi 環(huán)境選項(xiàng) Solaris ksh noautoindent nomodelines noshowmode autoprint nonumber noslowopen noautowrite nonovice tabstop=8 nobeautify nooptimize taglength=0 directory=/var/tmp paragraphs=IPLPPPQPP LIpplpipnpbtags=tags /usr/lib/tags noedcompatible prompt tagstack noerrorbells noreadonly term=vt100 noexrc redraw noterse flash remap timeout hardtabs=8 report=5 ttytype=vt100 noignorecase scroll=11 warn nolisp sections=NHSHH HUuhsh+c window=23 nolist shell=/bin/ksh wrapscan magic shiftwidth=8 wrapmargin=0 mesg noshowmatch nowriteany For C-Shell: setenv EXINIT "set nu" For Bourne or Korn Shell: EXINIT="set nu"; export EXINIT For Korn Shell Only (alternate method): typeset -x EXINIT="set nu" 在 .profile 里設(shè)置 vi 的環(huán)境選項(xiàng) , 以上均測(cè)試過(guò) 怎么沒(méi)有介紹標(biāo)記的,做標(biāo)記對(duì)那種大的程序文件閱讀十分有幫助。 建議大家使用。 標(biāo)記文本 mchar 用字母char標(biāo)記當(dāng)前光標(biāo)的位置 `char 移至char所標(biāo)記處 'char 移至char標(biāo)記所在行的開頭處 " 移至當(dāng)前行上一次所在位置(在光標(biāo)移動(dòng)之后)――一個(gè)雙引號(hào) '' 移至當(dāng)前行上第一次所在位置的行的開頭處(在光標(biāo)移動(dòng)之后)――兩個(gè)單引號(hào) .重復(fù)上一次修改! 大家都說(shuō)了這么多了,我也來(lái)說(shuō)兩句 在當(dāng)前屏幕中 H 跳到第一行 M 跳到中間一行 L 跳到最后一行 同時(shí)vi多個(gè)文件時(shí),CTRL-SHIFT-6回到上一個(gè)文件,在本次vi的文件和上次vi的文件之間切換。其實(shí)就是一些文檔寫的 ^^ 但是我發(fā)現(xiàn)一個(gè)BUG:在用CTRL-SHIFT-6切換到上一個(gè)文件后,用:args查看多文件vi狀態(tài)時(shí),屏幕底部仍然顯示目前vi的是剛才的文件。 (在HP-UX,Solaris,AIX上通過(guò)) 還是使用 :e# 切換比較好,呵呵 %s/^/要加的內(nèi)容/g 要在文本后同樣的字符加 %s/$/要加的內(nèi)容/g vi的使用確實(shí)太多,大家多多總結(jié)交流?。。?br> 追加到緩沖區(qū) 對(duì)于已經(jīng)有內(nèi)容的緩沖區(qū),可以繼續(xù)追加內(nèi)容在其后面,例如: "Ad4w 刪除光標(biāo)后4個(gè)字,并附加到緩沖區(qū)a "Ay) 取樣從光標(biāo)到文件尾的內(nèi)容,并附加到緩沖區(qū)a "K3yy 取樣從光標(biāo)所在行起的3行內(nèi)容,并附加到緩沖區(qū)k 注意:在追加緩沖區(qū)的命令中,原緩沖區(qū)的名字一定要大寫,才能將內(nèi)容追加進(jìn)去,否則是覆蓋原緩沖區(qū)的內(nèi)容。追加內(nèi)容在原緩沖區(qū)末尾另起一行。 清理掉DOS文本中的^M可以在:1,$s/^M//g,其中^M是CTRL+V, CTRL+M。 刪除從當(dāng)前行開始到最后一行的所有內(nèi)容 :.,$d 在:命令行模式下,首先可以確定命令的范圍 .表示當(dāng)前行;數(shù)字表示行號(hào),如1表示第一行,2表示第二行;$表示最后一行 范圍用,分隔 然后用命令 d表示刪除,y表示復(fù)制......大家都知道的 最后說(shuō)一句,%表示全文 :%d 是刪除全文 給“南非蜘蛛”補(bǔ)充一下,hehe 在:命令行模式下,首先可以確定命令的范圍 .表示當(dāng)前行;數(shù)字表示行號(hào),如1表示第一行,2表示第二行;$表示最后一行 范圍用,分隔 ... 慎用:$d :$d 只是刪除最后一行嘛,用錯(cuò)了還不算最壞的結(jié)果,呵呵 請(qǐng)教aix,ksh下: 一行>=2048個(gè)字符時(shí),無(wú)法顯示,怎么辦? 在vi中好像應(yīng)該沒(méi)有什么辦法了,這是vi的Program Limits中的Maximum Line Length限制。試一試用UltraEdit讀讀看吧 有的環(huán)境不能用uedit 可以折行嗎? 折行 :set wrapmargin=4 下面引用由bjchenxu在 2002/09/05 09:07am 發(fā)表的內(nèi)容: 折行 :set wrapmargin=4 怎么解釋?結(jié)果如何? 不行呀 A line cannot be longer than 2048 characters. 我的只能解決顯示問(wèn)題,如果說(shuō)vi里不能存放這么多字符,就比較麻煩了 另外問(wèn)一句,2048個(gè)字符已經(jīng)夠長(zhǎng)了,為什么要放更多的,沒(méi)準(zhǔn)我們可以從源頭上解決問(wèn)題 老外的程序的log文件,有些行就這么長(zhǎng),以至于影響了后面行的顯示; more,pg等可以折行 我還是不會(huì)用:X加密,能不能說(shuō)的詳細(xì)一點(diǎn),:X后,提示輸入key:然后呢?mark what 后輸入什么呢,下次如何在打開呢?more 可以正??磫? xiexie! 你使用的什么平臺(tái)的UNIX呢?我從來(lái)沒(méi)有見(jiàn)到mark what出現(xiàn)過(guò)啊 more是不能正??吹模胿i -x filename,然后輸入密碼就可以了 好像再另存不了不加密的了 用 :wq 或者 :wq! 另存 請(qǐng)高手指點(diǎn)迷精:vi中如何在每行的倒數(shù)第二個(gè)字符處插入一個(gè)字符?? 把Tab全部換成回車,應(yīng)該怎么作??? :1,$ s/ / /g 不行 ^M (Ctrl+V+M)就是回車。 vi加密不同的unix可能不同. 俺在HP-UX下,用X加密的文件只輸key(密鑰). vi -C 文件名,便會(huì)要求輸入密鑰,如正確,便打開了. littletiger的意思是不是這樣: 以HP-UX為例 1、加密 vi file :X (Are you sure?(y/n)[n]:)回答y 輸入密碼回車以后再保存,就加密成功了 2、解密 vi -C file 或者 vi -x file 在 Key: 后面輸入密碼進(jìn)入file :X (Are you sure?(y/n)[n]:)回答y 直接回車以后再用 wq 或者 wq! 保存,就把file解密成功了 :set number 顯示行號(hào) :g/$/s// ABC/g :g/^/s//def /g 在文本每行的頭和尾添加字符串. 用vi進(jìn)行coding時(shí)的使用技巧: 用ctags命令對(duì)當(dāng)前目錄下的c源程序掃描,生成tags文件 $ ctags *.c 這樣,在vi里通過(guò)命令 :ta fun_name 就可以直接打開函數(shù)fun_name所在的文件,并將光標(biāo)置于函數(shù)開頭 :n,n1 d n和n1都是行數(shù), d是刪除這些行 .表示當(dāng)前的行。 : n n是行數(shù),直接轉(zhuǎn)到n行。 : r 文件名 把文件添加到當(dāng)前的文件中 :n,n1 w 文件名 把從n行到n1行寫道另外一個(gè)文件中 查找: 在一個(gè)單詞上用*,就向下查找此單詞,#是向上 用/查找hello,就不會(huì)查找到hello_world(用此替換也很好用) 替換: 如有一文件,內(nèi)容為: aa bb cc dd 用:%s/.*/printf("& is :%d ",&)/ 文件內(nèi)容為變?yōu)椋?br> rintf("aa is :%d ",aa) printf("bb is :%d ",bb) printf("cc is :%d ",cc) printf("dd is :%d ",dd) &為查找到的內(nèi)容 用:~為重復(fù)上一次替換 用系統(tǒng)命令編輯: 如有一文件,內(nèi)容為: 333 222 334 444 111 553 554 233 運(yùn)行命令:%!sort 文件內(nèi)容為: 111 222 233 333 334 444 553 554 用此方法可以使用許多系統(tǒng)命令進(jìn)行編輯,大家可以靈活運(yùn)用 其他特殊用法: 用q: 看一看有什么 用? 可以編輯你用過(guò)的命令 程序中在一個(gè)調(diào)用函數(shù)(如:printf)上用K,可以直接調(diào)出printf的幫助 ctrl+f向下翻頁(yè),ctrl+b向上翻頁(yè)(對(duì)于telnet上去的時(shí)候比較有用) 1. vi中設(shè)置tab鍵的空格數(shù): :set ts=4 :set sw=4 將此兩句話加到當(dāng)前用戶目錄的文件.vimrc中,這樣當(dāng)前用戶用vi的時(shí)候就會(huì)啟動(dòng)該設(shè)置 2.拷貝: 將第2行到第9行的字copy到第11行 :2,9 co 10 將第2行到第9行的字move到第11行 :2,9 m 10 3.設(shè)置行號(hào): :se nu 取消行號(hào): :se nonu 4.當(dāng)前行與下一行換位置:ddp 5.當(dāng)前字與后面的字換位置:xp 用vi替換文件中的字符串 在vi界面下使用命令 :%s#/usr/bin#/bin#g 可以把文件中所有路徑/usr/bin換成/bin。也可以使用命令: :%s/usr/bin/bin/g 其中“”是轉(zhuǎn)義字符,表明其后的“/”字符是具有實(shí)際意義的字符,不是分隔符。 請(qǐng)問(wèn) vi 中的刪除緩沖區(qū)是怎么回事? 看到有一個(gè)資料說(shuō)到: “vi還有有編號(hào)的刪除緩沖區(qū)。撤消命令只能恢復(fù)上一次的刪除,當(dāng)且僅當(dāng)這個(gè)刪除是最后一次操作。但是,vi可以把最近9次刪除的內(nèi)容都放入9個(gè)編號(hào)從1到9的緩沖區(qū)內(nèi)。最近一次刪除保存在緩沖區(qū)1,次近的在緩沖區(qū)2,依此類推。例如,"2p可以放置第二個(gè)刪除緩沖區(qū)中的內(nèi)容。” 但是我沒(méi)有操作成功,請(qǐng)教各位。 既然是vi的問(wèn)題,我義不容辭 準(zhǔn)備文件test 1 2 3 4 5 將光標(biāo)定位在5上,連按5次dd 然后鍵入 "5p "4p "3p "2p "1p 看看發(fā)生了什么 明白了? 要注意" 謝謝你們的解釋! 再問(wèn),是否只有刪除的整行可以保存在刪除緩沖區(qū)中?比如刪除的字符呢? 字符也可以,用整行只是為了讓你好學(xué) 自己試試吧,找葫蘆畫瓢吧 wo 我照呢說(shuō)得作的 可是恢復(fù)的是5個(gè)1 啊 怎么回事 (solaris8) 比如在一行中連按5次dw,會(huì)將5個(gè)詞依次放入1~5的寄存器中嗎?我沒(méi)有試驗(yàn)成功,總提示寄存器為空。 [這個(gè)貼子最后由goodboy在 2002/08/22 09:29am 編輯] bjchenxu,能否把VI使用高級(jí)技巧的方法給大家講一講呀:) 很多的,比如:怎么一個(gè)文件中的幾行保存到另外一個(gè)文件中了, 或者把另外一個(gè)文件的插入到指定內(nèi)容的行后面了或者我在vi中拷貝 A文件的某5行(Esc下5yy拷貝),然后再:e b文件,怎么把A文件的5行拷過(guò)來(lái)? 然后又怎么回到原先的A文件中? 高級(jí)技巧太多太多,建議大家找本版valentine斑竹要書看,呵呵 你說(shuō)的幾個(gè)問(wèn)題我先回答一下: 1. 將一個(gè)文件中的幾行保存到另外一個(gè)文件中了 1.1 $vi file1 1.2 :3,5 y a 1.3 :e file2 1.4 "ap 2. 將另外一個(gè)文件插入到指定內(nèi)容的行后面 2.1 $vi file1 2.2 :/regularexpress/ r file2 3. 兩個(gè)文件的切換和拷貝 3.1 $vi file1 file2 3.2 :3,5 y a 3.3 :e# 3.4 "ap 3.5 :e# 在vim里面查看man頁(yè)面 在進(jìn)入vim后按??:”號(hào),輸入 source $VIMRUNTIME/ftplugin/man.vim 然后再按“:”號(hào),輸入 nmap K :Man 然后在vim里面輸入你要的命令,在這個(gè)命令上按K,就可以看到經(jīng)vim處理過(guò)后的man頁(yè)。 用vi在整個(gè)文件的各行或某幾行的行首或行尾加一些字符串 $vi file :3,$s/^/some string 在文件的第一行至最后一行的行首插入“some string”。 :%s/$/some string/g 在整個(gè)文件每一行的行尾添加“some string”。 :%s/string1/string2/g 在整個(gè)文件中替換“string1”成“string2”。 :3,7s/string1/string2/ 僅替換文件中的第3行到第7行中的“string1”成“string2”。 注意: 其中s為substitute,%表示所有行,g表示global。 用vi刪除大段的內(nèi)容 首先利用編輯命令“vi file”打開文件, 然后將光標(biāo)移到要?jiǎng)h除的行處按Ctrl+G顯示行 號(hào),再到結(jié)尾處再按Ctrl+G,顯示文件結(jié)尾的行號(hào)。 例如: :23,1045d 假定2次得到的行號(hào)為23和1045,則把這期間的內(nèi)容全刪除, 也可以在要?jiǎng)h除的開始行和 結(jié)束行中用ma、mb命令標(biāo)記,然后利用“:'a,'bd”命令刪除。 用vi實(shí)現(xiàn)“另存為”功能 $vi file :w /tmp/1 保存所做的所有修改,也可以將其中的某一部分修改保存到臨時(shí)文件。 如果僅僅把第20~59行之間的內(nèi)容存盤成文件/tmp/1,我們可以鍵入如下命令: :20,59w /tmp/1 用vi在一個(gè)新文件中讀其他文件的內(nèi)容 $vi file :r /etc/passwd 在打開的文件file中光標(biāo)所在處讀入/etc/passwd :%s/:.*//g 刪除/etc/passwd中用戶名后面的從冒號(hào)開始直到行尾的所有部分。 您也可以在指定的行號(hào)后讀入文件內(nèi)容,例如使用命令: :3r /etc/passwd 從新文件的第3行開始讀入 /etc/passwd的所有內(nèi)容。 我們還可以使用以下方法刪掉文件中所有的空行及以#開始的注釋行。 $cat squid.conf.default | grep -v '^$' | grep -v '^#' 用vi拷貝一個(gè)文件中的文本并粘貼到另一個(gè)文件中 $vi file1 file2 然后在vi界面下: yy <-在文件1的光標(biāo)處拷貝所在行 :n <-切換到文件2 (n=next) p <-在文件2的光標(biāo)所在處粘貼所拷貝的行 :n <-切換回文件1 使用vim對(duì)被編輯文件加密 在VIM當(dāng)中要對(duì)所編輯的文件進(jìn)行簡(jiǎn)單加密,可以在命令行模式下鍵入“:X”(無(wú)括號(hào), 只有冒號(hào)和X)然后在提示“Enter the encrypt key”時(shí)輸入口令字串就可以加密了。但是別 忘了要保存哦!保存的時(shí)候會(huì)發(fā)現(xiàn)在屏幕底部有“[crypted]”這樣的字樣。 下次打開該加密 文件會(huì)要求您輸入口令字串,這個(gè)總該記得的吧? 設(shè)置vim自動(dòng)顯示行號(hào) 在每個(gè)用戶的主目錄下,都有一個(gè) vi 的配置文件".vimrc"或".exrc", 用戶可以編輯它, 使這些設(shè)置在每次啟動(dòng) vi 時(shí),都有效。 例如,加入如下設(shè)置行: set nu 顯示行號(hào) set nonu 不顯示行號(hào) set ic 查找時(shí)不考慮大小寫 set noic 查找時(shí)考慮大小寫 在vi里搜索關(guān)鍵字 當(dāng)你用vi打開一個(gè)文件后,因?yàn)槲募L(zhǎng),如何才能找到你所要查找的關(guān)鍵字呢?在vi里 可沒(méi)有菜單-〉查找,不過(guò)沒(méi)關(guān)系,你在命令模式下敲斜桿(/)這時(shí)在狀態(tài)欄(也就是屏幕左下 角)就出現(xiàn)了 “/”然后輸入你要查找的關(guān)鍵字敲回車就可以了。 如果你要繼續(xù)查找此關(guān)鍵字,敲字符n就可以繼續(xù)查找了。值得注意的是“/”是向下查找, 而“?”是向上查找,而在鍵盤定義上“?”剛好是“/”的上檔符。 用彩色的vi寫程序 修改$HOME中的.vimrc,把color值設(shè)為true 把環(huán)境變量VIMRUNTIME設(shè)成vim的路徑名 例:/usr/share/vim 在vi中鍵入 :syntax on回車 :so $VIMRUNTIME/syntax/java.vim回車(現(xiàn)在版本的vi支持無(wú)數(shù)程序語(yǔ)法色彩檔,都在 syntax/下,看一眼吧:)) 如果不喜歡所用的xterm背景色,可以用xterm -bg LightBlue(或其他喜歡的顏色)啟動(dòng), 或者修改.Xresouce的xterm background項(xiàng)。 vi -o xxx.java xxxx.java vi 例如:Esc鍵在vi中輸入ctrl+v與Esc為^[ 請(qǐng)問(wèn)Delete鍵在vi中如何輸入? d 空一行 [Ctrl+V][Del] 輸這個(gè)鍵有什么用啊 輸不進(jìn)去 我想在shll里自動(dòng)telnet到另一臺(tái)機(jī)器終止.profile(自動(dòng)運(yùn)行了程序)執(zhí)行,好執(zhí)行我在shll中的一些命令。 輸不進(jìn)去 這種情況是因?yàn)镈EL在您的終端上被定義成某個(gè)中斷鍵,中斷是被操作系統(tǒng)優(yōu)先處理的。 使用stty -a 可以顯示出DEL被哪個(gè)中斷所用。 以下是兩種解決方法: 1。使用“stty 中斷名 新的中斷鍵”形式改變中斷鍵設(shè)置,然后調(diào)用vi,再使用ctrl+V的方法。如:stty intr ^E;vi 2。使用一個(gè)shell腳本myvi:stty raw ;vi $*;stty -raw 調(diào)用myvi 還有一種變通的解決方法,DEL鍵的ascii碼應(yīng)該是^?,0x7f, |
|