posts - 122,  comments - 25,  trackbacks - 0
          進(jìn)入vi的命令
          vi filename :打開或新建文件,并將光標(biāo)置于第一行首
          vi +n filename :打開文件,并將光標(biāo)置于第n行首
          vi + filename :打開文件,并將光標(biāo)置于最后一行首
          vi +/pattern filename:打開文件,并將光標(biāo)置于第一個(gè)與pattern匹配的串處
          vi -r filename :在上次正用vi編輯時(shí)發(fā)生系統(tǒng)崩潰,恢復(fù)filename
          vi filename....filename :打開多個(gè)文件,依次編輯

          移動(dòng)光標(biāo)類命令
          h :光標(biāo)左移一個(gè)字符
          l :光標(biāo)右移一個(gè)字符
          space:光標(biāo)右移一個(gè)字符
          Backspace:光標(biāo)左移一個(gè)字符
          k或Ctrl+p:光標(biāo)上移一行
          j或Ctrl+n :光標(biāo)下移一行
          Enter :光標(biāo)下移一行
          w或W :光標(biāo)右移一個(gè)字至字首
          b或B :光標(biāo)左移一個(gè)字至字首
          e或E :光標(biāo)右移一個(gè)字j至字尾
          ) :光標(biāo)移至句尾
          ( :光標(biāo)移至句首
          }:光標(biāo)移至段落開頭
          {:光標(biāo)移至段落結(jié)尾
          nG:光標(biāo)移至第n行首
          n+:光標(biāo)下移n行
          n-:光標(biāo)上移n行
          n$:光標(biāo)移至第n行尾
          H :光標(biāo)移至屏幕頂行
          M :光標(biāo)移至屏幕中間行
          L :光標(biāo)移至屏幕最后行
          0:(注意是數(shù)字零)光標(biāo)移至當(dāng)前行首
          $:光標(biāo)移至當(dāng)前行尾

          屏幕翻滾類命令
          Ctrl+u:向文件首翻半屏
          Ctrl+d:向文件尾翻半屏
          Ctrl+f:向文件尾翻一屏
          Ctrl+b;向文件首翻一屏
          nz:將第n行滾至屏幕頂部,不指定n時(shí)將當(dāng)前行滾至屏幕頂部。

          插入文本類命令
          i :在光標(biāo)前
          I :在當(dāng)前行首
          a:光標(biāo)后
          A:在當(dāng)前行尾
          o:在當(dāng)前行之下新開一行
          O:在當(dāng)前行之上新開一行
          r:替換當(dāng)前字符
          R:替換當(dāng)前字符及其后的字符,直至按ESC鍵
          s:從當(dāng)前光標(biāo)位置處開始,以輸入的文本替代指定數(shù)目的字符
          S:刪除指定數(shù)目的行,并以所輸入文本代替之
          ncw或nCW:修改指定數(shù)目的字
          nCC:修改指定數(shù)目的行

          刪除命令
          ndw或ndW:刪除光標(biāo)處開始及其后的n-1個(gè)字
          do:刪至行首
          d$:刪至行尾
          ndd:刪除當(dāng)前行及其后n-1行
          x或X:刪除一個(gè)字符,x刪除光標(biāo)后的,而X刪除光標(biāo)前的
          Ctrl+u:刪除輸入方式下所輸入的文本

          搜索及替換命令 :
          /pattern:從光標(biāo)開始處向文件尾搜索pattern
          ?pattern:從光標(biāo)開始處向文件首搜索pattern
          n:在同一方向重復(fù)上一次搜索命令
          N:在反方向上重復(fù)上一次搜索命令
          :s/p1/p2/g:將當(dāng)前行中所有p1均用p2替代
          :n1,n2s/p1/p2/g:將第n1至n2行中所有p1均用p2替代
          :g/p1/s//p2/g:將文件中所有p1均用p2替換

          選項(xiàng)設(shè)置
          all:列出所有選項(xiàng)設(shè)置情況
          term:設(shè)置終端類型
          ignorance:在搜索中忽略大小寫
          list:顯示制表位(Ctrl+I)和行尾標(biāo)志($)
          number:顯示行號
          report:顯示由面向行的命令修改過的數(shù)目
          terse:顯示簡短的警告信息
          warn:在轉(zhuǎn)到別的文件時(shí)若沒保存當(dāng)前文件則顯示NO write信息
          nomagic:允許在搜索模式中,使用前面不帶“\\”的特殊字符
          nowrapscan:禁止vi在搜索到達(dá)文件兩端時(shí),又從另一端開始
          mesg:允許vi顯示其他用戶用write寫到自己終端上的信息

          最后行方式命令
          :n1,n2 co n3:將n1行到n2行之間的內(nèi)容拷貝到第n3行下
          :n1,n2 m n3:將n1行到n2行之間的內(nèi)容移至到第n3行下
          :n1,n2 d :將n1行到n2行之間的內(nèi)容刪除
          :w :保存當(dāng)前文件
          :e filename:打開文件filename進(jìn)行編輯
          :x:保存當(dāng)前文件并退出
          :q:退出vi
          :q!:不保存文件并退出vi
          :!command:執(zhí)行shell命令command
          :n1,n2 w!command:將文件中n1行至n2行的內(nèi)容作為command的輸入并執(zhí)行之,若不指
          定n1,n2,則表示將整個(gè)文件內(nèi)容作為command的輸入
          :r!command:將命令command的輸出結(jié)果放到當(dāng)前行 。

           

          1.交換兩個(gè)字符位置

          xp
          2.上下兩行調(diào)換
          ddp
          3.把文件內(nèi)容反轉(zhuǎn)
          :g/^/m0/ (未通過)

          4.上下兩行合并
          J
          5.刪除所有行
          dG
          6.從當(dāng)前位置刪除到行尾
          d$
          7.從當(dāng)前位置復(fù)制到行尾
          y$ 如果要粘貼到其他地方 p 就可以了


          由于vi 是建立在 EX 上的 所以 當(dāng)鍵入 : 時(shí)就來到了 EX 命令狀態(tài)
          8.
          :ab string strings
          例如 ":ab usa United States of America" ,
          當(dāng)你在文見里插入 usa 時(shí)
          United States of America 就蹦出來了
          9.
          :map keys new_seq
          定義你當(dāng)前 鍵盤命令
          10.
          :set [all]
          vi or ex 的編輯狀態(tài)
          如 顯示每行 :set nu
          11.
          在命令狀態(tài)下,nyy表示拷貝從光標(biāo)行起的下n行內(nèi)容,p表示paste,可剛復(fù)制的內(nèi)容粘貼在光標(biāo)處的
          下面。

          12.
          單個(gè)字符替換用r,覆蓋多個(gè)字符用R,用多個(gè)字符替換一個(gè)字符用s,整行替換用S

          13.

          :%s/old_word/new_word/g
          這個(gè)指令是于在整個(gè)文件中替換特定字符串

          14.光標(biāo)控制

          k:上移 nk 上移n行
          j:下移 nj 下移n行


          將光標(biāo)移到第n行,按下 mk
          將光標(biāo)移到第m行,按下 "ay'k
          即將第n到m的行存到a寄存器,以此類推,b,c........寄存器等

          這樣就可以將你常用的需要復(fù)用的內(nèi)容粘貼到不同的寄存器中以備用


          想粘貼到某處,直接將光標(biāo)移到某地,按下 ‘ap 即可,以此類推,b,c........寄存器等

          在當(dāng)前屏幕中
          H 跳到第一行
          M 跳到中間一行
          L 跳到最后一行

          15.
          表8-2 刪除命令
          刪除命令操作
          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è)語句的結(jié)尾位置
          d 4) 刪除到第四個(gè)語句的結(jié)尾位置
          d( 刪除到某個(gè)語句的開始位置
          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è)語句的結(jié)尾位置
          c 4) 修改到第四個(gè)語句的結(jié)尾位置
          c( 修改到某個(gè)語句的開始位置
          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)容


          .重復(fù)上一次修改!


          表8-4 替換命令
          替換命令操作
          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表示對每一個(gè)包括s1的行都進(jìn)行替換,第二個(gè)g表示對每一行包括s1的行所有的s2都用s3替換
          s表示替換,s2是要被替換的字符串,他可以和s1相同(如果相同的話用//代替),s3是替換字符串


          16.

          fx
          往右移動(dòng)到 x 字符上
          Fx
          往左移動(dòng)到 x 字符上
          tx
          往右移動(dòng)到 x 字符前
          Tx
          往左移動(dòng)到 x 字符后
          (注意:以上四個(gè)命令中,其中x是鍵入的字符)
          ;
          分號,配合 f 和 t 使用,重復(fù)一次
          ,
          逗號,配合 f 和 t 使用,反方向重復(fù)一次


          17. 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) , 以上均測試過


          18.標(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è)雙引號
            ''    移至當(dāng)前行上第一次所在位置的行的開頭處(在光標(biāo)移動(dòng)之后)――兩個(gè)單引號


          19.
          同時(shí)vi多個(gè)文件時(shí),CTRL-SHIFT-6回到上一個(gè)文件,在本次vi的文件和上次vi的文件之間切換。
          但是我發(fā)現(xiàn)一個(gè)BUG:在用CTRL-SHIFT-6切換到上一個(gè)文件后,用:args查看多文件vi狀態(tài)時(shí),
          屏幕底部仍然顯示目前vi的是剛才的文件。
          (在HP-UX,Solaris,AIX上通過)

          也可以使用:
          :e#
          進(jìn)行切換

          20.
          sco 下VI 要在文本前同樣的字符加用
          %s/^/要加的內(nèi)容/g 要在文本后同樣的字符加
          %s/$/要加的內(nèi)容/g

          21.
          如何去掉文本中的 ^M 硬回車?不必用binary傳回去再ascii傳回來的方式,用shell或者unix語句實(shí)現(xiàn)。

          cat filename |tr -d '\015' >newfile
          不同的unix系統(tǒng)還存在一些其他不同的命令,如:doscp
          sed 也可以實(shí)現(xiàn)這個(gè)功能.

          dos2unix filename filename2
          反之
          unix2dos filename filename2

          在vi 中用:$s/^M//g
          ^是crtl-V crtl-M


          22.如何在“unix命令行”下將一個(gè)文件的某字符串用另一個(gè)串換掉

          sed 's/string1/string2/gp' file1 > file2

          23.將/etc/hosts下所有的地址都ping 2次

          1 #/usr/bin/sh
          2 #grad /etc/hosts and ping each address
          3 cat /etc/hosts|grep -v '^#' | while read LINE
          4 do
          5 ADDR=`awk '{print $1}'`
          6 for MACHINE in $ADDR
          7 do
          8 ping $MACHINE -n 2
          9 done
          10 done
          posted on 2007-07-05 10:52 josson 閱讀(360) 評論(0)  編輯  收藏 所屬分類: Linux
          <2007年7月>
          24252627282930
          1234567
          891011121314
          15161718192021
          22232425262728
          2930311234

          常用鏈接

          留言簿(3)

          隨筆分類

          隨筆檔案

          收藏夾

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 崇信县| 牙克石市| 齐河县| 东丽区| 汨罗市| 合肥市| 平泉县| 库车县| 盐城市| 东方市| 宾川县| 富源县| 贺州市| 东平县| 郁南县| 湘阴县| 利川市| 威远县| 兴城市| 吉林省| 萨迦县| 从化市| 乾安县| 且末县| 弥勒县| 文成县| 西藏| 祁连县| 清新县| 米脂县| 电白县| 星座| 陆丰市| 甘德县| 泰安市| 潢川县| 汝城县| 绥阳县| 剑川县| 萨迦县| 施秉县|