午夜视频在线网站,日韩视频精品在线,中文字幕精品一区二区三区在线,在线播放精品,1024你懂我懂的旧版人,欧美日韩一级黄色片,一区二区三区在线观看视频

分享

VI 命令使用及實(shí)例操作...

 昵稱90415 2009-02-25

VI 命令使用及實(shí)例操作

 

作者:grid.tsinghua.edu.cn  出處:grid.tsinghua.edu.cn  更新時(shí)間: 2007年06月07日 

vi的搜索和替換

  • 搜索中進(jìn)行替換
    /which  #搜索which
                                                    cwthat  #替換成that
                                                    n       #重復(fù)搜索
                                                    .       #重復(fù)替換
                                                    
  • 一種類型的替換命令
    g/pattern/s/old/new/g
                                                    
    第一個(gè) g 表示是有選擇的操作, pattern 指定選擇行的模式, s 表示替換操作, old 是要替換的內(nèi)容, new 是新內(nèi)容, g 表示全局替換下面是一些例子:
    #給第一到十行加上括弧
                                                    :1,10/.*/(&)/
                                                    
    其中的
     &    代表的是搜索模式
                                                    ~    代表上一次替換命令中制定的替換文本
                                                    \u   改成大寫
                                                    \l   改成小寫
                                                    \U或者\(yùn)L和\e或者\(yùn)E配合 將后面開始到被替換串結(jié)束或者到\e和\E為止的所有支付變成大寫或者小寫
                                                    另外在vi中可以使用除了\,",和|之外的任何非字母表字符做替換命令的分隔符, 這在進(jìn)行路徑替換的時(shí)候非常的有用
                                                    
    下面時(shí)一些例子:
       #將That or this 換成 This or that
                                                    :%s/\(That\) or \(this\)/\u\2 or \l\1/
                                                    ----
                                                    #將句尾的child換成children
                                                    :%s/child\([ ,.;!:?]\)/children\1/g
                                                    ----
                                                    #將mgi/r/abox換成mgi/r/asquare
                                                    :g/mg\([ira]\)box/s//mg//my\1square/g    <=>  :g/mg[ira]box/s/box/square/g
                                                    ----
                                                    #將多個(gè)空格換成一個(gè)空格
                                                    :%s/  */ /g
                                                    ----
                                                    #使用空格替換句號或者冒號后面的一個(gè)或者多個(gè)空格
                                                    :%s/\([:.]\)  */\1 /g
                                                    ----
                                                    #刪除所有空行
                                                    :g/^$/d
                                                    ----
                                                    #刪除所有的空白行和空行
                                                    :g/^[ 	][ 	]*$/d
                                                    ----
                                                    #在每行的開始插入兩個(gè)空白
                                                    :%s/^/>  /
                                                    ----
                                                    #在接下來的6行末尾加入.
                                                    :.,5/$/./
                                                    ----
                                                    #顛倒文件的行序
                                                    :g/.*/m0O  <=> :g/^/m0O
                                                    ----
                                                    #尋找不是數(shù)字的開始行,并將其移到文件尾部
                                                    :g!/^[0-9]/m$ <=> g/^[^0-9]/m$
                                                    ----
                                                    #將文件的第12到17行內(nèi)容復(fù)制10詞放到當(dāng)前文件的尾部
                                                    :1,10g/^/12,17t$
                                                    ~~~~重復(fù)次數(shù)的作用
                                                    ----
                                                    #將chapter開始行下面的第二行的內(nèi)容寫道begin文件中
                                                    :g/^chapter/.+2w>>begin
                                                    ----
                                                    :/^part2/,/^part3/g/^chapter/.+2w>>begin
                                                    ----
                                                    :/^part2/,/^part3/g/^chapter/.+2w>>begin|+t$
                                                    

ex的命令

d 刪除
                                            m 移動
                                            co 復(fù)制
                                            t 復(fù)制行
                                            p 打印
                                            nu 顯示行號
                                            g 命令用于尋找匹配的行,然后執(zhí)行相應(yīng)的操作
                                            v 反向?qū)ふ移ヅ涞牡男?然后執(zhí)行相應(yīng)的操作
                                            
ex中用;代替,做行分界符時(shí)會將;前面的行改變成當(dāng)前行

 

選項(xiàng)設(shè)置

#設(shè)置tab寬度
                                            :set tabstop=4
                                            #設(shè)置縮進(jìn)時(shí)移動的寬度
                                            :set shiftwidth=4
                                            #設(shè)置語法高亮模式
                                            :set syntax=fvwm
                                            #關(guān)閉備份
                                            :set nobackup
                                            :set nowritebackup
                                            #建議按照如下的方式使用備份
                                            :set backup
                                            :set backupdir=/var/bak
                                            :set backupext=.bak
                                            #下面一些選項(xiàng)是一次聽講座的時(shí)候記錄的, 具體什么意思沒有記清楚, 但應(yīng)該很有用的
                                            :set nocp
                                            :set su
                                            :set his
                                            :set cin
                                            :set sm    #顯示匹配的括號
                                            :set ai    #自動縮進(jìn)
                                            :set cino=:ogotocsus
                                            :set paste/nopaste
                                            :set lbr
                                            :set font=mb
                                            :set cindent #打開c縮進(jìn)模式
                                            #打開語法高亮顯示
                                            :syntax on
                                            #格式重排
                                            =
                                            
建議的主題配置:
colo torte #圖形模式
                                            colo else  #字符模式
                                            

命令與鍵

  • 為了防止ex對特殊鍵進(jìn)行解釋, vi中可以用C-v對其進(jìn)行跳脫.如下所示:
    [RETURN]      ^M
                                                    [ESC]         ^[
                                                    [BACKSPACE]   ^H
                                                    C-T           ^T
                                                    C-W           ^W
                                                    C-x           ^X
                                                    |             不能轉(zhuǎn)義
                                                    
  • map!用于在插入模式下強(qiáng)制映射, unmap!用于在插入模式下取消映射
  • 映射一個(gè)功能鍵
    :map #1 command #映射第一個(gè)功能鍵, 即F1
                                                    :map [C-v][Home] command #映射home鍵
                                                    
  • od命令可以用來以8進(jìn)制方式查看文件
  • @register 執(zhí)行register中的文本作為命令
  • r命令可以用于讀入文件或者將命令的輸出讀入當(dāng)前的緩沖區(qū)
    r file #讀入文件
                                                    r! ls  #讀入命令輸出
                                                    
  • 增加和減少縮進(jìn)級別在vi的自動縮進(jìn)模式中,可以通過下面的命令更改縮進(jìn)級別
    C-T     增加一個(gè)縮進(jìn)級別
                                                    C-D     減少一個(gè)縮進(jìn)級別
                                                    ^ ^D    光標(biāo)移到開始,并保留縮進(jìn)級別
                                                    0 ^D    光標(biāo)移到開始,并重置縮進(jìn)級別
                                                    
    可以通過下面的命令設(shè)置自動縮進(jìn)模式
    :set autoindent
                                                    
  • <<和>>是進(jìn)行縮進(jìn)和反縮進(jìn)的命令
    >>     把行或者塊右移8個(gè)空格
                                                    <<     把行或者塊左移8個(gè)空格
                                                    
  • 顯示控制字符
    :set list   #臨時(shí)的等價(jià)命令是l
                                                    
  • 啟用括號匹配
    :set showmatch #:set sm
                                                    
    -設(shè)置顯示模式
    :normal     #正常模式
                                                    :syntax     #語法高亮模式
                                                    :hex        #十六進(jìn)制模式
                                                    :html       #html模式
                                                    :man        #man模式
                                                    :set binary #二進(jìn)制模式
                                                    :set incsearch  #增量搜索模式
                                                    :set showmode   #可視模式
                                                    
  • cindent 按照c的格式縮進(jìn)
  • 在vi中查看c源碼的時(shí)候, 可以在#include "hell.h" 在雙引號中間安gf就可以打開頭文件, C-o(C-t)返回.
  • 窗體分割命令
     [N] sp[lit] [position] [file]
                                                    [N] new     [position] [file]
                                                    [N] sv[iew] [position] [file]
                                                    
  • 縮寫文本
    #用myurl代表http:://localhost/
                                                    :ab myurl http:://localhost/
                                                    #取消縮寫
                                                    :una myurl
                                                    

使用ctags

:! ctags *.c      #建立tags文件
                                            : tag name
                                            ^]                #查看tag定義
                                            
命令的選項(xiàng):
-d
                                            -g
                                            -l                #指定語言
                                            -m                #為結(jié)構(gòu)的成員建立索引
                                            -t                #為c的typedef建立索引
                                            -T                #為C++的typedef建立索引
                                            

  • vi中在全文前植入行號的宏
    :%s/^/^|/
                                                    :$
                                                    :let end=line(".")
                                                    :|
                                                    :let num=1
                                                    :while num<=end
                                                    :let line=getline(".")
                                                    :let line=substitude(line,$,num," ")
                                                    :call setline(".", line)
                                                    :+
                                                    :let num=num+1
                                                    :endwhile
                                                    

插件

  • tip of the day
  • calendar
  • jad
  • sketch

其他

  • 加密
    :X #之后輸入密碼, :wq退出即可, 去掉密碼只要在輸入提示輸入密碼的時(shí)候輸入回車即可
                                                    
  • 將dos文件轉(zhuǎn)化為linux文件
    :1,$s///g
                                                    
  • 在每行的行首/尾插入newstring
    #行首
                                                    :g/^/s//newstring/g
                                                    :%s/^/newstring/g
                                                    行尾
                                                    :g/$/s//newstring/g
                                                    :%s/$/newstring/g
                                                    

    本站是提供個(gè)人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多