日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Atom飞行手册翻译: 3.4 文本处理包

發布時間:2025/3/17 编程问答 17 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Atom飞行手册翻译: 3.4 文本处理包 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文本處理包

在我們寫完第一個包之后,讓我們看一看我們能寫出來的其它包的例子。這一節會引導你創建一個簡單的命令來將選中的文字替換為字符畫(ascii art)。在你在單詞“cool”選中的時候運行我們的命令,它會被替換為:

o888ooooooo ooooooo ooooooo 888888 888 888 888 888 888 888888 888 888 888 888 88888ooo888 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: nullactivate: ->@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 errorconsole.error(error)elseeditor.insertText("\n#{art}\n")

重新加載編輯器,選擇編輯器窗口中的一些文本,并按下ctrl-alt-a,取而代之的是,它會被替換成一個滑稽的字符畫版本。

在這個例子中,我們需要快速查看一些新的東西。首先是editor.getSelectedText(),像你猜的那樣,返回當前選中的文本。

之后我們調用Figlet的代碼,來將它轉換成別的東西,并使用editor.insertText()用它替換當前選中的文本。

小結

在這一節中,我們編寫了一個無UI的包,用于獲取選中文本并替換為處理過的版本。它可能會對創建文本提示和檢查工具有幫助。

總結

以上是生活随笔為你收集整理的Atom飞行手册翻译: 3.4 文本处理包的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。