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

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

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

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

            Ctrl+O?(按兩次)

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

            復(fù)制
            方法一:先ma標記當前位置為a,移動到新的位置,再y`a或者y''a復(fù)制從標記位置a到
            當前位置的內(nèi)容。`和''的區(qū)別:`以字符為單位,''以行為單位。這個方法應(yīng)該是所有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)?如何選擇、復(fù)制或者查找光標所在的單詞?

            在VIM中用iw或者aw表示一個單詞,兩者稍有區(qū)別。
            選擇光標所在的單詞:viw?(v進入visual模式,然后iw)
            復(fù)制光標所在的單詞: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,那么默認的配置文件
            就可以工作了。如果還不行,可以用鼠標從syntax菜單下選擇一下適合你的
            文件類型(新版本的gvim默認把文件類型選擇關(guān)閉了,需要點開,然后按照
            開頭字母選擇類型)
            如果是linux,那么確認一下是否是redhat。如果是redhat,那么需要安裝
            vim-enhanced的rpm包。這些都做了以后,可以用:syntax?on來打開語法高亮。
            必要時可以用:set?filetype=...來設(shè)定你的文件類型。
            如果使用圖形界面,比如gvim,那么syntax?on和set?filetype的操作可以
            用鼠標在菜單中選擇,同windows下。
            如果是在控制臺中使用vim,還應(yīng)當確定你的終端設(shè)置支持顏色。

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

            在命令行中輸入以下代碼,或者先把代碼保存到一個外部文件,然后source這個文件:
            let?i?=?0
            while?i?<?100
            ??put?=?i
            ??let?i?=?i?+?1
            ??endw
            如果位數(shù)不足需要在前面補零,可以用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將認為是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
            另外,如果你設(shè)置了
            set?backspace=2
            你就可以用backspace或者delete很方便的刪到上一行或者下一行。

            (16)?如何設(shè)置縮進距離(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久久久久久老狼| 久久婷婷五月综合97色一本一本 | 久久精品国产亚洲一区二区| 99久久精品这里只有精品 | 久久亚洲AV成人无码国产| 人妻久久久一区二区三区| 精品久久久久久亚洲| 亚洲欧洲久久av| 久久ZYZ资源站无码中文动漫| 7国产欧美日韩综合天堂中文久久久久 | 精品无码久久久久国产动漫3d| a高清免费毛片久久| 亚洲国产成人精品91久久久 | 无码日韩人妻精品久久蜜桃| 亚洲午夜无码AV毛片久久| 久久亚洲日韩精品一区二区三区| 99久久精品国产一区二区蜜芽| 亚洲一区精品伊人久久伊人| 一本久久久久久久| 奇米影视7777久久精品| 久久无码国产| 狠狠色丁香婷综合久久| 久久狠狠高潮亚洲精品| 久久精品人人做人人爽电影| 久久不见久久见免费影院www日本| a高清免费毛片久久| 狼狼综合久久久久综合网| 亚洲国产天堂久久综合| 久久久久免费视频| 东方aⅴ免费观看久久av| 国产亚洲精品自在久久| 亚洲AV日韩精品久久久久| 久久亚洲色一区二区三区| 99热精品久久只有精品| 亚洲欧洲精品成人久久奇米网| 丰满少妇人妻久久久久久4| 久久精品国产精品青草| 99久久精品国产一区二区三区| 狠狠色丁香婷婷久久综合不卡| 国产精品久久久久久搜索|