• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            VIM FAQ(轉(zhuǎn))

            Posted on 2007-01-16 23:31 美洲豹 閱讀(625) 評論(0)  編輯 收藏 引用

            vim FAQ

            Linux /linuxman?
            轉(zhuǎn)自水木清華:VIM FAQ

            轉(zhuǎn)貼如下:


            (1)?為什么別人的方法在我這里行不通?
            (2)?如何找到上次編輯的文件?
            (3)?如何復(fù)制粘貼?
            (4)?如何在多個文件中進(jìn)行替換?
            (5)?如何把fold一次全部打開?
            (6)?如何選擇、復(fù)制或者查找光標(biāo)所在的單詞?
            (7)?如何計數(shù)搜索的字符串?
            (8)?如何去掉高亮搜索?
            (9)?如何解決linux下gvim中文菜單亂碼的問題?
            (10)?如何對所編輯的文件語法高亮顯示?
            (11)?如何快速插入多行數(shù)字0-99?
            (12)?如何設(shè)置中文編碼?
            (13)?如何去掉或者插入^M這樣的字符?
            (14)?如何整體縮進(jìn)一段代碼(插入tab)?
            (15)?如何合并兩行?
            (16)?如何設(shè)置縮進(jìn)距離(tab寬度)?

            ==============================================================================
            (1)?為什么別人的方法在我這里行不通?

            估計這是最難回答的一個問題了。:-)
            不過首先應(yīng)該確定你的VIM版本是否足夠新,功能是否完整。使用?:version?命令查看你
            的VIM版本以及功能。一個常見的情況,如果你用的是RedHat系統(tǒng),請確定安裝了
            vim-enhance的rpm包,否則將是不完整的VIM。

            (2)?如何找到上次編輯的文件?

            Ctrl+O?(按兩次)

            (3)?如何復(fù)制粘貼?

            復(fù)制
            方法一:先ma標(biāo)記當(dāng)前位置為a,移動到新的位置,再y`a或者y''a復(fù)制從標(biāo)記位置a到
            當(dāng)前位置的內(nèi)容。`和''的區(qū)別:`以字符為單位,''以行為單位。這個方法應(yīng)該是所有vi
            都適用的。(如果不對請指正。)
            方法二:按v或V或Ctrl+V進(jìn)入visual模式,移動光標(biāo)選擇一段內(nèi)容,按y。三者的區(qū)別:
            v以字符為單位,V以行為單位,Ctrl+V是塊選擇。這個方法只在VIM下適用。

            粘貼
            p或P。區(qū)別:前者粘貼到光標(biāo)后面,后者粘貼到光標(biāo)前面。

            (4)?如何在多個文件中進(jìn)行替換?

            一般可以用sed或者vim來做。比如要對當(dāng)前目錄下的*.c文件進(jìn)行替換:
            方法一:
            for?i?in?*.c;?do
            ??sed?-i?-e?''s/oldvalue/newvalue/g''?$i
            done
            方法二:
            vim?*.c
            :argdo?%s/oldvalue/newvalue/g

            (5)?如何把fold一次全部打開?

            zR?或者?:set?foldlevel=999

            (6)?如何選擇、復(fù)制或者查找光標(biāo)所在的單詞?

            在VIM中用iw或者aw表示一個單詞,兩者稍有區(qū)別。
            選擇光標(biāo)所在的單詞:viw?(v進(jìn)入visual模式,然后iw)
            復(fù)制光標(biāo)所在的單詞:yiw

            查找的話就是兩個很常用的明令:#?和?*

            (7)?如何計數(shù)搜索的字符串?

            如果需要統(tǒng)計緩沖中一個模式(pattern)出現(xiàn)的頻率,需要把?''report''?置為0,然后
            用替換命令把模式替換成它自己。Vim?報告的已替換的數(shù)目就是模式出現(xiàn)的次數(shù)。例:
            ????????:set?report=0
            ????????:%s/./&/g???????????????characters
            ????????:%s/i+/&/g????????????words
            ????????:%s/^???????????????????lines
            ????????:%s/the/&/g?????????????"the"?anywhere
            ????????:%s/<the>/&/g?????????"the"?as?a?word
            你可能希望復(fù)位?''hlsearch''?或者使用?":nohlsearch"。

            (8)?如何去掉高亮搜索?

            方法一::nohlsearch
            方法二:/awertgvcxz?(查找一個肯定不存在的字符串)
            設(shè)置了高亮搜索(:set?hlsearch)以后,可以通過?:set?nohlsearch?永久地關(guān)閉高亮
            顯示,也可以通過?:nohlsearch?暫時關(guān)閉高亮顯示,下次搜索時將自動恢復(fù)高亮。

            (9)?如何解決linux下gvim中文菜單亂碼問題?

            以vim6.3為例
            :source?$VIMRUNTIME/delmenu.vim
            :source?$VIMRUNTIME/menu.vim

            也可以將以上內(nèi)容加入.vimrc

            光source一個menu.vim或者啥也不source都是亂碼
            另外,也有網(wǎng)友報告說沒有遇到此類問題

            注:這里的source指的是vim自己的source命令,和bash?shell的source無關(guān)

            (10)?如何對所編輯的文件語法高亮顯示?

            需要解釋的是,VI有很多變種,它本身并沒有這種功能,提供這種功能
            往往是其各種衍生版本,比如說vim。下面就vim中如何語法高亮簡單解釋一下。

            首先,確定一下你所用的操作系統(tǒng),如果是windows,那么默認(rèn)的配置文件
            就可以工作了。如果還不行,可以用鼠標(biāo)從syntax菜單下選擇一下適合你的
            文件類型(新版本的gvim默認(rèn)把文件類型選擇關(guān)閉了,需要點(diǎn)開,然后按照
            開頭字母選擇類型)
            如果是linux,那么確認(rèn)一下是否是redhat。如果是redhat,那么需要安裝
            vim-enhanced的rpm包。這些都做了以后,可以用:syntax?on來打開語法高亮。
            必要時可以用:set?filetype=...來設(shè)定你的文件類型。
            如果使用圖形界面,比如gvim,那么syntax?on和set?filetype的操作可以
            用鼠標(biāo)在菜單中選擇,同windows下。
            如果是在控制臺中使用vim,還應(yīng)當(dāng)確定你的終端設(shè)置支持顏色。

            (11)?如何快速插入多行數(shù)字0-99?

            在命令行中輸入以下代碼,或者先把代碼保存到一個外部文件,然后source這個文件:
            let?i?=?0
            while?i?<?100
            ??put?=?i
            ??let?i?=?i?+?1
            ??endw
            如果位數(shù)不足需要在前面補(bǔ)零,可以用Ctrl-V塊選擇,然后I插入0。

            (12)?如何設(shè)置中文編碼?

            在.vimrc中作如下設(shè)置,可以實現(xiàn)界面以及顯示字體采用gb2312,遇到utf8文件時
            自動做轉(zhuǎn)換:
            set?encoding=prc
            set?fileencoding=prc
            set?fileencodings=utf8,prc
            需要注意的是,按照上面的設(shè)置,如果你打開一個空的(0字節(jié))或者是純7bits的文件,
            這時VIM將認(rèn)為是utf8編碼的文件,如果你往里面輸入中文,存盤的時候也將是utf8。
            因此你可能需要在存盤之前?:set?fileencoding=prc?把編碼改回來。
            另外,對于純7bits的文件,由于認(rèn)成了utf8,每次打開存盤的時候都要做一次轉(zhuǎn)換,
            會比較慢,所以如果你很長一段時間不會接觸utf8的話,可能暫時把?fileencodings
            一行注釋掉比較好。
            [警告]:轉(zhuǎn)換可能會造成信息丟失!如果你需要編輯的是重要的系統(tǒng)文件,最好把
            fileencodings?一行暫時注釋掉。

            (13)?如何去掉或者插入^M這樣的字符?

            在VIM的插入模式或者命令行中用<C-V>輸入^M這樣的特殊字符,例如輸入
            :s/<C-V><C-M>//g
            實際顯示是
            :s/^M//g
            就可以去掉文件中所有的^M。同理,要在文件中輸入^M只要按<C-V><C-M>即可。

            這個問題往往發(fā)生在WINDOWS/DOS系統(tǒng)和UNIX系統(tǒng)之間交換文件時,因為這兩類系統(tǒng)
            對于文本的“換行”概念解釋不同。所以,還有一個解決方法就是對這類文本進(jìn)行
            轉(zhuǎn)換。vim內(nèi)部就可以做這件事情。首先打開文本,然后
            set?fileformat=unix
            再從新保存該文件覆蓋原文件就可以去除:^M了

            (14)?如何整體縮進(jìn)一段代碼(插入tab)?

            選中一段代碼,<?或?>?或?2<?或?3>?……

            (15)?如何合并兩行?

            合并兩行的鍵是?J
            另外,如果你設(shè)置了
            set?backspace=2
            你就可以用backspace或者delete很方便的刪到上一行或者下一行。

            (16)?如何設(shè)置縮進(jìn)距離(tab寬度)?

            set?tabstop=8
            set?shiftwidth=8

            只有注冊用戶登錄后才能發(fā)表評論。
            網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


            posts - 15, comments - 2, trackbacks - 0, articles - 29

            Copyright © 美洲豹

            99久久综合国产精品二区| 亚洲AV日韩AV永久无码久久| 久久99国产精一区二区三区| 成人国内精品久久久久影院| 国产亚洲精品自在久久| 国产精品美女久久久久网| 一级做a爱片久久毛片| 伊人久久大香线蕉成人| 午夜精品久久久久久久| 亚洲国产二区三区久久| 久久九九兔免费精品6| 色综合久久天天综合| 欧美亚洲日本久久精品| 久久久噜噜噜www成人网| 久久久久亚洲精品天堂久久久久久| 亚洲欧洲精品成人久久奇米网| 欧美精品国产综合久久| 久久国产高潮流白浆免费观看| 久久国产香蕉视频| 久久精品国产网红主播| 日本加勒比久久精品| 久久99热精品| 久久综合久久自在自线精品自 | 久久乐国产综合亚洲精品| 久久国产乱子伦免费精品| av色综合久久天堂av色综合在| 国产精品永久久久久久久久久 | 精品久久久久久成人AV| 久久人妻少妇嫩草AV蜜桃| 久久精品成人国产午夜| 国产精品久久久久AV福利动漫 | 91精品国产91久久久久久| 久久人妻AV中文字幕| 狠狠色丁香久久婷婷综合_中 | 热99RE久久精品这里都是精品免费 | 久久只这里是精品66| 日韩久久久久中文字幕人妻| 国产精品一区二区久久精品无码 | 品成人欧美大片久久国产欧美...| 久久久精品国产sm调教网站 | 久久精品无码专区免费|