<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                如果從未在Vim里使用過代碼折疊,你不知道你都錯過了什么。 閱讀`:help usr_28`并花費時間在日常工作中使用它。 一旦到了銘記于指的程度,你就可以繼續本章了。 ## 折疊類型 Vim支持六種不同的決定如何折疊你的文本的折疊類型。 ### Manual 你手動創建折疊并且折疊將被Vim儲存在內存中。 當你關閉Vim時,它們也將一并煙消云散,而下次你編輯文件時將不得不重新創建。 在你把它跟一些自定義的創建折疊的映射結合起來時,這種方式會很方便。 在本書中,我們不會這么做,但當你想這么做的時候,它會幫上忙。 ### Marker Vim基于特定的字符組合折疊你的代碼。 這些字符通常放置于注釋中(比如`// {{{`), 不過在有些語言里,你可以使用該語言自己的語法代替,比如javascript的`{`和`}`。 純粹為了你的編輯器,用注釋割裂你的代碼看上去有點丑,但好處是你可以定制特定的折疊。 如果你想以特定的方式組織一個大文件,這個類型將是非常棒的選擇。 ### Diff 在diff文件時使用該特定的折疊類型。我們不會討論它,因為Vim會自動使用它。 ### Expr 這讓你可以用自定義的Vimscript來決定折疊的位置。它是最為強大的方式,不過也需要最繁重的工作。 下一章我們將講到它。 ### Indent Vim使用你的代碼的縮進來折疊。同樣縮進等級的代碼折疊到一塊,空行則被折疊到周圍的行一起去。 這是最便捷的方式,因為你的代碼已經縮進過了;你僅僅需要啟動它。 這將是我們用來折疊Potion代碼的第一種方式。 ## Potion折疊 讓我們再一次看一下Potion實例代碼: ~~~ factorial = (n): total = 1 n to 1 (i): total *= i. total. 10 times (i): i string print '! is: ' print factorial (i) string print "\n" print. ~~~ 函數體和循環體已經縮進好了。這意味著我們可以不怎么費力就能實現一些基本的縮進。 在我們開始之前,在`total *= i`上添加一個注釋,這樣我們就有一個供測試的多行內部塊。 你將在做練習的時候學到為什么我們需要這么做,但暫時先信任我。現在文件看上去就像這樣: ~~~ factorial = (n): total = 1 n to 1 (i): # Multiply the running total. total *= i. total. 10 times (i): i string print '! is: ' print factorial (i) string print "\n" print. ~~~ 在你的Potion插件的版本庫下創建一個`ftplugin`文件夾,然后在里面創建一個`potion`文件夾。 最后,在_`potion`文件夾_里面創建一個`folding.vim`文件。 不要忘了每次Vim設置一個buffer的`filetype`為`potion`時,它都會執行這個文件中的代碼。 (因為它位于一個叫`potion`的文件夾) 將所有的折疊相關的代碼放在同一個文件顯然是一個好主意,它能幫我們維護我們的插件的繁多的功能。 在這個文件中加入下面一行: ~~~ setlocal foldmethod=indent ~~~ 關閉Vim,重新打開`factoria.pn`。用`zR`,`zM`和`za`嘗試折疊功能。 一行Vimscript代碼就能帶來一些有用的折疊!這真是太酷了! 你可能注意到`factorial`函數的內循環里面的那幾行不能折疊,盡管它們縮進了。 為什么會這樣? 事實上,在使用`indent`折疊時,Vim默認忽略以`#`字符開頭的行。 這在編輯C文件時很有用(這時`#`表示一個預編譯指令),但在編輯其他文件時不怎么有意義。 讓我們在`ftplugin/potion/folding.vim`中添加多一行來修復問題: ~~~ setlocal foldmethod=indent setlocal foldignore= ~~~ 關閉并重新打開`factorial.pn`,現在內部塊可以正常地折疊了。 ## 練習 閱讀`:help foldmethod`. 閱讀`:help fold-manual`. 閱讀`:help fold-marker`和`:help foldmarker`. 閱讀`:help fold-indent`. 閱讀`:help fdl`和`:help foldlevelstart`. 閱讀`:help foldminlines`. 閱讀`:help foldignore`.
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看