• <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>
            隨筆-145  評論-173  文章-70  trackbacks-0

            在前面一篇blog(Vim學習筆記)中介紹VIM的使用用法后,該文章達到了歷史性的最高訪問量。在上面的那篇文章中,介紹了VIM的基本用法,基本上是個人在聯系Vimtutor這個教程之后對不熟悉的指令的總結。但是,隨著學習的深入,發現掌握這些基本的命令還遠遠不夠,雖然網上有大批的資料可以下載學習,但是迫于沒有一種類似于入門級別的教程,所以還是希望有相關的從最常用最基本的知識講起的教程。目前看來,《Learn Vim Progressively》這篇文章應該是比較好的入門級教材了吧,而酷殼則進行了翻譯,網址在這里簡明 Vim 練級攻略(http://coolshell.cn/articles/5426.html)。以下是我的學習筆記:

            1. 插入:
            a: 在光標之后插入
            o: 在當前行后面插入一個新行
            O: 在當前行前面插入一個新行
            cw: 替換從光標到后一個單詞結尾的字符。

            2. 移動:

            0: 移動到行頭
            ^: 到本行第一個不是blank的字符。(blank字符即空格,tab,換行和回車)
            $: 到本行行尾
            g_: 到本行最后一個不是blank字符的位置
            /pattern: 搜索pattern的字符串。(搜索多個按n回到下一個)

            3. 拷貝:

            P:在當前位置之前拷貝(將緩沖區內的內容拷貝過來)
            p: 在當前位置之后拷貝
            yy: 拷貝當前行。(在某行使用之后,相當于拷貝了該行,然后到指定位置,使用P命令粘貼到指定的位置)


            4.Undo/Redo

            u : undo
            Ctrl + r : redo

            5. 打開保存
            e<path/file> : 打開一個文件
            w: 保存
            saveas<path/file>: 另存為某個地方
            x,wq: 保存(x表示僅需要保存時保存,wq則是保存)
            ZZ:不需要輸入前面的冒號即可保存,此時會退出。(不同于前面的冒號+回車)
            bn, bp: 同時打開多個文件的話,使用這個來切換到上一個或者下一個文件。

            6. 更好
            .: 輸入一個點號會重復執行上次的命令
            N<command>: 重復執行command命令N次。(比如2dd表示刪除兩行,3p表示粘貼三次)

            7. 更強
            NG: 到第N行(比如3G,表示跳轉到第三行)另外可以使用:137跳轉到137行(感覺更方便)
            gg: 跳轉到第一行(相當于1G,或者:1)
            G: 跳轉到最后一行
            單詞的移動:
            w: 到下一個單詞的開始
            e: 到下一個單詞的結尾
            (如果認為分號也是一個單詞的話,使用E/W)
            比如:x = (name_1, vision_3); 后面的這個分號就要注意。

            %: 匹配括號,先移動光標到一個括號處,然后在命令模式下輸入%,即可跳轉到匹配的括號。
            *:匹配光標到當前所在的單詞。(向下匹配)(匹配就是知道相同的單詞,比如在當前行有5個單詞test,那么按*就會尋找并跳轉到下一個單詞test的起始之處)
            #:匹配光標到當前所在單詞(向上匹配)


            8. 更快
            一定要記住光標的移動。
            eg:0y$:現跳轉到第一行,然后拷貝,拷貝到行末,
            類似的,ye:開始拷貝,拷貝到笨蛋次的最后一個(e其實就是end)
            y2/foo:拷貝兩個foo直接的字符串(這種用法很奇特,前面沒有講到)

            還有很多時間并不一定你就一定要按y才會拷貝,下面的命令也會被拷貝:
            d (刪除 )
            v (可視化的選擇)
            gU (變大寫)
            gu (變小寫)
            等等

            9.Vim超能力
            fa: 到下一個為a的字符處。同理,fs到下一個為s的字符處
            t,:到逗號前的第一個字符處。同理,ta就是到a前的第一個字符出。
            3fa:在當前行查找第三個出現的a
            F和T:作用和f與t一樣,只是相反的方向。
            dt": 刪除所有的內容,知道遇到了雙引號,類似的可以換成其他的如dt+任意字符。

            ==========================以下內容為以前沒接觸的,重點回顧===================
            1. 區域選擇
            <action>a<object> or <action>i<object>
            <action> 可以是任何命令,如d(刪除),y(拷貝),v(可視化模式選擇).
            <object>可以是:w表示一個單詞,s表示一個句子,p一個段落。也可以是特殊字符比如),}等等。

            對于(map (+)("foo")),光標在第一個o的位置。
            則:vi" ----對應的是<action>i<object>這種情況,v表示模式選擇,然后i表示的是不包括這個特殊字符,所以是從第一個o所在的包含在"符號中的。
            其他的類似,不同的是a是要包括內容的。
                    vi" → 會選擇 foo.
                    va" → 會選擇 "foo".
                    vi) → 會選擇 "foo".
                    va) → 會選擇("foo").
                    v2i) → 會選擇 map (+) ("foo")
                    v2a) → 會選擇 (map (+) ("foo"))


            塊操作
            塊操作,典型的操作: 0 <C-v> <C-d> I-- [ESC]
            Windows下面是Ctrl+q而不是Ctrl+v開始塊操作。
            做法是:
            1. 先移動光標到某個地方。
            2. Ctrl+V開始塊操作。
            3. 選擇塊的范圍(此時可以用hjkl,或者%,或者Ctrl+d等等)
            4. I-- Esc(選擇對應的操作,這里是插入ii,所以現I表示插入,然后--,但是這樣只是對最開始的那個起作用,要應用到所有的塊,需要使用Esc鍵)

            自動提示<Ctrl+n> <Ctrl+p>
            所謂的自動提示:實際上是Vim對用戶近期輸入的單詞進行統計記憶的結果,它的這個自動提示,是當你近期輸入某個單詞后,再次輸入的時候,如果輸入首單詞,使用該快捷鍵就能匹配相應單詞,從而自動補全。
            如輸入下面的兩個單詞:
            LaTeX
            XeLaText
            然后在輸入下面的這個,只輸入首單詞,在利用C+n組合,就會自動補齊。
            XeLaText LaTeX

            宏錄制:
            qa把你的操作記錄在寄存器a內
            然后@a就會重復這個被記錄的宏
            @@用來重復自己的一個宏(要指定某一個特定的就要用@xx,其中xx即前面保存的名)

            qaYp<C-a>q→
                    qa 開始錄制
                    Yp 復制行.
                    <C-a> 增加1.
                    q 停止錄制.
                @a → 在1下面寫下 2
                @@ → 在2 正面寫下3
                現在做 100@@ 會創建新的100行,并把數據增加到 103.


            可視化選擇v,V,Ctrl+V(這個在前面有講到)
            首先的工作自然是使用這個工具來選擇了,隨便哪一種都可以。
            其次選擇后就是對該模塊進行操作,編輯了。可以有
            J : 把所有行都連接起來
            < or > : 左右縮進
            =:自動完成縮進(原始動畫中就是這個效果,看了半天發現縮進變化了)

            如何在所有選中行的末尾都加入一個東東呢?
            就和在前面加入--的那個例子一樣,先選中模塊,然后跳到末尾$,然后加入的話是A,加入某個就是輸入字符串了,應用到所有模塊的部分就是按下Esc即可。


            分屏split和vsplit
            :split: 創建分配(vsplit則是創建垂直分屏)
            C-w<Direction>: Direction可以是hjkl或者方向鍵,用來不同屏幕切換
            C-w_或者C-w|: 用來最大化尺寸。
            C-w+或者C-w-: 增加尺寸。

            分屏的使用:
            1.使用大寫的O參數來垂直分屏。vim -On file1 file2
            2. 使用小寫的o參數來水平分屏。 vim -on file1 file2
            3. 上下分割,并打開一個新文件。 :sp filename
            4. 左右分割,并打開一個新文件。 :vsp filename
            5. 屏幕之間的移動:Ctrl + W + (h, j, k, l)(不同參數表示移動的方向)
               比如Ctrl + W + h表示向左邊的屏幕移動。
            6. 屏幕尺寸的變化。
               Ctrl + W + : 表示增加高度。
               Ctrl + W - : 表示減少高度
               Ctrl + w = : 使得所有的屏幕有相同的高度
            7. 具體的更加詳細的內容見help文檔或者http://coolshell.cn/articles/1679.html
               (注,酷殼上的部分命令可能由于版本原因已失效,應該有新的快捷鍵代替)

            VIM還有更多的功能需要學習,關鍵是在使用中不斷加深練習,還有強大的擴展插件,另外在瀏覽器中也有相應的擴展,可謂功能強大。后續會繼續學習,并做好筆記以及時總結學習所得。


            posted on 2011-10-30 20:27 deercoder 閱讀(3056) 評論(1)  編輯 收藏 引用 所屬分類: Vim

            評論:
            # re: Vim學習筆記(二) 2011-11-13 07:45 | tjhaven
            vim就不用提了,都是半截入土的東東。  回復  更多評論
              
            精品久久久久久国产三级| 国产精品久久久久久久午夜片| 久久国产福利免费| 久久九九兔免费精品6| 久久久久久久久波多野高潮| 久久久精品人妻一区二区三区蜜桃 | 久久99国产精品99久久| 久久99久久无码毛片一区二区 | 久久亚洲国产中v天仙www| 国内精品免费久久影院| 一本久久a久久精品综合香蕉| 色诱久久久久综合网ywww| 久久久久国色AV免费观看| 嫩草伊人久久精品少妇AV| 久久久久这里只有精品| 国产成年无码久久久久毛片| 久久受www免费人成_看片中文| 浪潮AV色综合久久天堂| 人妻少妇精品久久| 久久香蕉一级毛片| 久久久免费精品re6| 久久久久久久波多野结衣高潮| 久久99国产精品二区不卡| 欧美亚洲色综久久精品国产 | 少妇熟女久久综合网色欲| 2020最新久久久视精品爱| 日本人妻丰满熟妇久久久久久| 久久影视综合亚洲| 97精品国产97久久久久久免费| 中文字幕乱码久久午夜| 久久乐国产综合亚洲精品| 久久久精品久久久久久| 99热成人精品免费久久| 久久精品国产亚洲综合色| 99999久久久久久亚洲| 久久久av波多野一区二区| 国内高清久久久久久| 亚洲国产精品无码久久一区二区| 亚洲一级Av无码毛片久久精品| 精品久久久久中文字幕一区| 久久99久久成人免费播放|