• <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 美洲豹 閱讀(620) 評論(0)  編輯 收藏 引用

            vim FAQ

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

            轉(zhuǎn)貼如下:


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

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

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

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

            Ctrl+O?(按兩次)

            (3)?如何復制粘貼?

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

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

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

            一般可以用sed或者vim來做。比如要對當前目錄下的*.c文件進行替換:
            方法一:
            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)?如何選擇、復制或者查找光標所在的單詞?

            在VIM中用iw或者aw表示一個單詞,兩者稍有區(qū)別。
            選擇光標所在的單詞:viw?(v進入visual模式,然后iw)
            復制光標所在的單詞: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
            你可能希望復位?''hlsearch''?或者使用?":nohlsearch"。

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

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

            (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無關

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

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

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

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

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

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

            在.vimrc中作如下設置,可以實現(xiàn)界面以及顯示字體采用gb2312,遇到utf8文件時
            自動做轉(zhuǎn)換:
            set?encoding=prc
            set?fileencoding=prc
            set?fileencodings=utf8,prc
            需要注意的是,按照上面的設置,如果你打開一個空的(0字節(jié))或者是純7bits的文件,
            這時VIM將認為是utf8編碼的文件,如果你往里面輸入中文,存盤的時候也將是utf8。
            因此你可能需要在存盤之前?:set?fileencoding=prc?把編碼改回來。
            另外,對于純7bits的文件,由于認成了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)
            對于文本的“換行”概念解釋不同。所以,還有一個解決方法就是對這類文本進行
            轉(zhuǎn)換。vim內(nèi)部就可以做這件事情。首先打開文本,然后
            set?fileformat=unix
            再從新保存該文件覆蓋原文件就可以去除:^M了

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

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

            (15)?如何合并兩行?

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

            (16)?如何設置縮進距離(tab寬度)?

            set?tabstop=8
            set?shiftwidth=8

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

            Copyright © 美洲豹

            伊人伊成久久人综合网777| 欧美一区二区久久精品| A级毛片无码久久精品免费| 欧美午夜A∨大片久久 | 久久久久夜夜夜精品国产| 亚洲精品美女久久久久99| 国产精品久久久久免费a∨| 亚洲人成无码久久电影网站| 理论片午午伦夜理片久久 | 久久中文字幕一区二区| 久久精品亚洲日本波多野结衣 | 国产69精品久久久久99| 青青青国产精品国产精品久久久久 | 国产三级久久久精品麻豆三级 | 久久国产影院| 性做久久久久久久久老女人| 色综合久久夜色精品国产| 久久久久久精品免费免费自慰| 久久无码AV一区二区三区| 偷偷做久久久久网站| 一本久道久久综合狠狠爱| 久久婷婷五月综合色奶水99啪| 精品人妻久久久久久888| 久久精品9988| 亚洲日韩欧美一区久久久久我| 欧美亚洲国产精品久久| 久久精品亚洲精品国产色婷| 久久夜色tv网站| 免费一级做a爰片久久毛片潮| 精品久久久中文字幕人妻| 蜜臀久久99精品久久久久久小说| 久久综合丁香激情久久| 久久无码人妻精品一区二区三区 | 久久综合中文字幕| 色99久久久久高潮综合影院| 亚洲va久久久噜噜噜久久狠狠 | 久久精品无码av| 国产精品99久久久精品无码| 欧美777精品久久久久网| 久久婷婷五月综合成人D啪| 久久综合九色综合欧美狠狠|