<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是用來編輯文本的,你將頻繁地跟這一類型打交道。 執行下面的代碼: ~~~ :echom "Hello" ~~~ Vim將輸出`Hello`。目前為止,依然如此。 ## 連接(Concatenation) 在日常編程中你經常需要把字符串連接到一起。執行下面的命令: ~~~ :echom "Hello, " + "world" ~~~ 發生什么了?不知為何,Vim顯示`0`! 這就是問題所在:Vim的`+`運算符_僅僅_適用于數值。當你把一個字符串作為`+`的參數時, Vim會在執行加法前嘗試把它強制轉換成一個Number。(譯注:在21章的練習里你真的喝了啤酒沒) 執行下面的命令: ~~~ :echom "3 mice" + "2 cats" ~~~ 這次Vim顯示`5`,因為字符串被相應地轉換成`3`和`2`。 當提到"Number"時,我明確_指的是_Number類型。Vim不會強制轉換字符串為Float類型! 為求證我的話,試試下面的命令: ~~~ :echom 10 + "10.10" ~~~ Vim顯示`20`,因為在強制轉換`10.10`成一個Number時,小數點后的內容都被丟棄了。 你需要使用連結運算符來連接字符串。執行下面命令: ~~~ :echom "Hello, " . "world" ~~~ 這次Vim顯示`Hello, world`。`.`是Vim中的"連接字符串"運算符,可以用來連接字符串。 它不會在其間插入空格或別的什么東西。 Vim會在`.`兩邊進行強制轉換。試試這個命令: ~~~ :echom 10 . "foo" ~~~ Vim將顯示`10foo`。首先它把`10`強制轉換成字符串,接著把它跟右邊的字符串連接在一起。 不過當涉及到Float類型時,情況有點糟糕。執行這個命令: ~~~ :echom 10.1 . "foo" ~~~ 這次Vim拋出一個錯誤,聲稱我們把Float當作String了。Vim樂于讓你在執行加法時把String當作Float, 卻_不爽_你在連接字符串時把Float當作String。 故事的最后告訴我們一個道理:Vim酷似Javascript:它有時允許你逍遙自在地馬虎對待類型差異, 但切莫這樣做:因為出來混,遲早都要還的。(because it will come back to bite you at some point) 寫Vimscript的時候,確信你清楚寫下的每一個變量的類型。如果需要改變變量類型,你就得使用一個函數顯式改變它, 即使那不是必要的。不要依賴Vim的強制轉換,畢竟世上_沒有_后悔藥。 ## 特殊字符 就像大多數編程語言,Vimscript允許你在字符串中使用轉義字符串來表示"打不了"的字符。 執行下面命令: ~~~ :echom "foo \"bar\"" ~~~ 字符串中的`\"`將如你所愿地被替換成雙引號。轉義字符串在大多數情況下都會如你所愿。 執行下面的命令: ~~~ :echom "foo\\bar" ~~~ Vim顯示`foo\bar`,因為`\\`是表示'\'的轉義字符串,一如大多數編程語言。 現在執行下面的命令(注意那是`echo`而_不是_`echom`): ~~~ :echo "foo\nbar" ~~~ 這次Vim將顯示兩行,`foo`和`bar`,因為`\n`會被替換為換行。現在試試下面的命令: ~~~ :echom "foo\nbar" ~~~ Vim將顯示類似`foo^@bar`的詭異信息。當你對字符串使用`echom`而不是`echo`時, Vim將輸出字符串中_額外的_字符,這意味著有時`echom`的輸出跟`echo`的會有所不同。?`^@`在Vim里表示"換行符"。 ## 字符串字面量 Vim也允許你使用"字符串字面量"(譯注:如Python中的r"")來避免轉義字符串的濫用。 執行下面命令: ~~~ :echom '\n\\' ~~~ Vim顯示`\n\\`。使用單引號將告訴Vim,你希望字符串_所見即所得_,無視轉義字符串。 一個例外是一行中連續兩個單引號將產生一個單引號。(譯注:相當于某種轉義)試試這個命令: ~~~ :echom 'That''s enough.' ~~~ Vim將顯示`That's enough.`。兩個單引號是字符串字面量里_唯一_的特殊序列。 在本書稍后的部分,我們將重新審視字符串字面量的更多內容。(那時我們會深陷于正則表達式) ## 真值(Truthiness) 你可能想知道Vim怎么對待用在`if`語句中的字符串。執行下面的命令: ~~~ :if "foo" : echo "yes" :else : echo "no" :endif ~~~ Vim將顯示`no`。如果你搞不懂為何如此,你應該重讀關于條件語句的那一章(譯注:第21章), 因為我們在那里已經討論過了。 ## 練習 閱讀`:help expr-quote`。查看在一般的Vim字符串中允許的轉義字符串列表。找出如何插入一個tab字符。 嘗試找出一種方法,_不_使用轉義字符串來插入一個tab字符。提示:閱讀`:help i_CTRL-V`。 閱讀`:help literal-string`。
                  <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>

                              哎呀哎呀视频在线观看