<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>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                <!-- 譯者:Github@wizardforcel --> # 文本處理包 # 在我們寫完第一個包之后,讓我們看一看我們能寫出來的其它包的例子。這一節會引導你創建一個簡單的命令來將選中的文字替換為字符畫(ascii art)。在你在單詞“cool”選中的時候運行我們的命令,它會被替換為: ``` o888 ooooooo ooooooo ooooooo 888 888 888 888 888 888 888 888 888 888 888 888 888 888 88ooo888 88ooo88 88ooo88 o888o ``` 這個例子應該展示了如何在當前的文本緩沖區做基本的文字操作,以及如何處理選擇。 最后的包在 https://github.com/atom/ascii-art 中查看。 ## 基本的文字插入 ## 首先按下`cmd-shift-P`來彈出命令面板。然后輸入“generate package”并且選擇“Package Generator: Generate Package”命令,就像我們在“包生成器”一節中做的那樣。輸入`ascii-art`作為包的名字。 現在讓我們編輯包中的文件,來讓我們的字符畫包做一些有意思的事情。由于這個包并不需要任何UI,我們可以把所有視圖相關的移除,所以可以放心刪除`lib/ascii-art-view.coffee`、`spec/ascii-art-view-spec.coffee`和`styles/`。 接下來,打開`lib/ascii-art.coffee`并刪除所有視圖代碼,所以它看起來像這樣: ``` {CompositeDisposable} = require 'atom' module.exports = subscriptions: null activate: -> @subscriptions = new CompositeDisposable @subscriptions.add atom.commands.add 'atom-workspace', 'ascii-art:convert': => @convert() deactivate: -> @subscriptions.dispose() convert: -> console.log 'Convert text!' ``` ### 創建命令 ### 現在讓我們添加一個命令。強烈建議你為你的命令取一個命名空間,使用包名后面帶著一個`:`。所以你可以看到在代碼中,我們把命令叫做`ascii-art:convert`,并且當它調用時會調用`convert()`方法。 到目前為止,它只會在控制臺中記錄。讓我們使它向文本緩沖區插入一些字符來開始。 ``` convert: -> if editor = atom.workspace.getActiveTextEditor() editor.insertText('Hello, World!') ``` 就像在“字數統計”中那樣,我們使用`atom.workspace.getActiveTextEditor()`來獲取表示當前活動編輯器的對象。如果`convert()`方法在沒有編輯器獲取焦點時調用,它會簡單地返回一個空白的字符串,所以我們可以跳過下一行。 接下來我們使用`insertText()`方法,向當前的文本編輯器插入一個字符串。無論光標當前在編輯器的哪里,都會在光標處插入文本。如果有文本被選中,會把選中文本替換成“Hello, World!”文本。 ### 重新加載包 ### 在我們能夠觸發`ascii-art:convert`之前,我們需要通過重新加載窗口,來加載我們的包的最新代碼。從命令面板或按下`ctrl-alt-cmd-l`來運行“Window: Reload”命令。 ### 觸發命令 ### 現在可以打開命令面板并搜索“Ascii Art: Convert”命令了。但是根本找不到。要修正它,打開`package.json`并找到`activationCommands`屬性。活動命令通過在命令不使用時延遲它們的加載,來加快Atom的啟動。所以把現有的命令移除,并在`activationCommands`中添加`ascii-art:convert`: ``` "activationCommands": { "atom-workspace": "ascii-art:convert" } ``` 首先,通過命令面板中的“Window: Reload”命令重新加載窗口,現在你可以執行“Ascii Art: Convert”命令了,它會輸出“Hello, World!”。 ### 添加快捷鍵 ### 現在我們來添加用于觸發“ascii-art:convert”命令的快捷鍵。打開`keymaps/ascii-art.cson`,添加一個鍵綁定來將`ctrl-alt-a`鏈接到`ascii-art:convert`命令上。由于你不需要預設的鍵綁定,你可以刪除它們。 完成之后它應該像這樣: ``` 'atom-text-editor': 'ctrl-alt-a': 'ascii-art:convert' ``` 現在重新加載窗口,并驗證快捷鍵是否工作。 ## 添加字符畫 ## 現在我們需要將被選字符轉換為字符畫。為了完成它我們使用npm中的`figlet` node模塊。打開`package.json`,添加figlet的最新版本到`dependencies`中: ``` "dependencies": { "figlet": "1.0.8" } ``` 保存文件之后從命令面板運行“Update Package Dependencies: Update”。這會自動安裝包的node模塊依賴,在這個例子中只有figlet。無論什么時候你更新了`package.json`文件中的`dependencies`字段,你都要需要運行“Update Package Dependencies: Update”命令。 如果由于某種原因沒有生效,你會看到“Failed to update package dependencies”這樣的消息,并且會找到一個你的目錄下有個新的`npm-debug.log`文件。這個文件會告訴你具體哪里有錯誤。 現在在`lib/ascii-art.coffee`中請求(require)`figlet` node模塊,并且將被選文本轉換成字符畫來代替插入“Hello, World!”。 ``` convert: -> if editor = atom.workspace.getActiveTextEditor() selection = editor.getSelectedText() figlet = require 'figlet' font = "o8" figlet selection, {font: font}, (error, art) -> if error console.error(error) else editor.insertText("\n#{art}\n") ``` 重新加載編輯器,選擇編輯器窗口中的一些文本,并按下`ctrl-alt-a`,取而代之的是,它會被替換成一個滑稽的字符畫版本。 在這個例子中,我們需要快速查看一些新的東西。首先是`editor.getSelectedText()`,像你猜的那樣,返回當前選中的文本。 之后我們調用Figlet的代碼,來將它轉換成別的東西,并使用`editor.insertText()`用它替換當前選中的文本。 ## 小結 ## 在這一節中,我們編寫了一個無UI的包,用于獲取選中文本并替換為處理過的版本。它可能會對創建文本提示和檢查工具有幫助。
                  <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>

                              哎呀哎呀视频在线观看