Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 最新亚洲情黄在线网站,精品一区二区三区影片,日韩视频免费在线

          整合營銷服務商

          電腦端+手機端+微信端=數據同步管理

          免費咨詢熱線:

          開發你的酷炫裝備 Jetson TX1使用指南

          開發你的酷炫裝備 Jetson TX1使用指南

          能無人機、自主機器人、智能攝像機、自動駕駛……今年最令硬件創客們著迷的詞匯,想必就是這些一線“網紅”了。而這些網紅的背后,幾乎都和計算機視覺與深度學習密切相關。

          深度學習是人工智能領域一個最新的分支,可以幫助計算機理解圖像、聲音和文本,但需要強大的數據處理能力作為支撐。

          NVIDIA Jetson TX1

          在今年的Embedded World、SX Create、FIRST Championship等大型活動中,你都可以看到很多小型團隊或者創業公司,所打造的應用了深度學習技術的機器人和無人機系統。一套套完美的解決方案,背后都有一個共同點——NVIDIA JetsonTX1!

          如果說Arduino或者樹梅派是很多創客們此前的最愛,那么Jetson TX1就是今年他們眼中的最酷“玩具”!

          GoPro自動目標跟蹤

          觀看視頻點擊鏈接:http://v.qq.com/x/page/b0309rmqniy.html

          創客們對Jetson興趣十足,比如上面這個就是基于Jetson TX1,以GoPro為基礎,實現了運動拍攝中的目標自動跟蹤

          什么是Jetson TX1

          Jetson TX1是NVIDIA第二代嵌入式平臺開發者套件,雖然只有信用卡大小,但Jetson TX1 GPU模塊的浮點運算能力卻達到1 Teraflops,相比Jetson TK1有巨幅提升。如此強大的性能,Jetson TX1顯然是智能無人機、機器人最理想的嵌入式解決方案。

          Jetson TX1 核心模塊

          別看核心模塊只有信用卡大小,身體里可暗藏玄機:內建256個CUDA核心的NVIDIA Maxwell GPU,64位ARM A57 CPU,4GB LPDDR4內存、16GB閃存、藍牙、802.11ac Wi-Fi模塊和千兆以太網卡,運行Linux for Tegra操作系統。

          Jetson TX1 開發者套件

          配上坐騎后的Jetson TX1是這個樣子的。主板提供了USB 3.0 Type A、USB 2.0、HDMI、M.2 Key E、PCI-E x4、千兆以太網、SD、SATA數據和供電等接口,儼然是臺全功能的PC;既然是開發者套件,怎能少了針對硬件創客的擴展接口:GPIO、I2C、I2S、SPI、帶流控制的TTL UART、顯示器擴展頭和攝像頭擴展頭一個不少。

          Jetson TX1 開發者套件內容詳情

          作為上一代Jetson TK1的用戶,自然不會放過性能如此強悍的Jetson TX1。經過了一段時間的使用和體驗,這里向大家分享一下粗淺的使用體驗,同時以個人觀點聊聊Jetson TX1到底能為我們帶來哪些想象空間!

          開箱體驗與基本使用

          1、開箱體驗

          Jetson TX1自帶了底座,十分貼心。雖然包裝盒內沒有附帶任何光盤等介質,但Jetson TX1線上資源十分豐富,囊括文檔及軟件工具,并且獲取十分方便。

          Jetson TX1 開發者套件廬山真面目

          Jetson TX1模塊已預先安裝在主板上,Wi-Fi天線連接線也已接好,同時整個核心模塊由一個巨大的散熱片覆蓋,并配備了風扇,為了保證系統運行穩定和兼顧控制能耗,按照系統設定,該風扇僅在系統高負荷運行時才會啟動,平時系統主要依靠散熱片被動散熱,由此可見NVIDIA在保證系統穩定并兼顧控制能耗上的細致,畢竟這樣一塊計算能力達到1 Teraflops的Jetson TX1,功耗峰值才10W。

          Jetson TX1與Jetson TK1

          由于配備了更多的擴展接口,所以Jetson TX1比Jetson TK1主板面積要大一些。較大的外形也暗示著TX1擁有的更強性能和帶給開發者的想象空間。

          2、開發環境搭建

          在正式進入Jetson TX1開發的奇幻之旅前,先簡單介紹一下Jetson TX1開發環境的配置,在這里我們需要預先準備下列項目:

          NVIDIA開發者賬號

          該賬號需要在NVIDIA官網的開發者頁面進行注冊,并同時加入“Embedded Development Program”。這樣就可以獲取Jetson TX1相關的全部文檔和軟件包資源,包括嵌入式系統鏡像、開發工具以及NVIDIA提供的各種工具和軟件庫。

          注冊NVIDIA開發者帳號并加入“Embedded Development Program”

          NVIDIA為開發者提供了涵蓋Jetson TX1方方面面的文檔資源和軟件資源

          Jetson TX1相關的文檔和軟件工具都可以通過Embedded Download Center下載

          安裝妥當的Jetson TX1

          正確的電源、鼠標、鍵盤,網絡和顯示器連接。Jetson TX1開發套件提供了2個USB接口,包括一個USB 2.0 Micro,雖然通過轉接器可以連接標準USB接口的設備,但是開發過程中經常需要將Jetson TX1通過USB連接至Host電腦,所以這里我推薦大家可以使用USB 3.0 HUB來解決USB接口不足的問題。

          安裝妥當的Jetson TX1

          JetPack開發工具套件

          可以登錄NVIDIA EmbeddedDownload Center下載。

          一臺運行Ubuntu Linux 64位操作系統的Host電腦

          操作系統推薦使用Ubuntu 14.04 LTS64位版本,同時至少有10GB硬盤空閑空間。

          準備完畢后,在Host電腦為JetPack安裝包增加運行權限并執行,JetPack安裝程序將通過圖形界面引導開發者完成開發環境的配置,開發者只需依照自己的開發配置在安裝程序的引導下做出選擇即可,整個過程非常簡約,界面友好。

          值得注意的是JetPack安裝程序不僅可以在Host電腦和Jetson TX1上搭建開發環境,同時還可以對Jetson TX1進行刷機,用來恢復出場設置和升級最新的操作系統版本,使用JetPack刷機比用命令行工具更加簡便和不易出錯。

          在Host電腦上為JetPack安裝包添加運行權限并執行

          全程只需要依據安裝引導進行配置即可

          在Jetson TX1上測試開發編譯環境是否安裝成功

          運行/開發環境初探

          運行環境方面,JetPack搭建好開發環境后,Jetson TX1將重啟并引導之圖形界面。目前Jetson TX1上最新的操作系統為Linux For Tegra R24.1,該操作系統在用于ARM架構的Ubuntu 14.04 LTS版本基礎上定制開發。Ubuntu在國內擁有龐大的用戶基礎和社區環境,基于Ubuntu定制開發的Linux For Tegra對于發者們來說,在界面,命令和操作習慣等方面非常熟悉,極易上手;與此同時,開發者使用過程中遇到的問題,除了官方論壇外,也可以在更廣泛的Ubuntu操作系統社區環境內向眾大神尋求幫助。

          Jetson TX1操作系統 Linux for Tegra概覽

          一般來說,針對嵌入式平臺的開發有兩種編譯模式:原生編譯和交叉編譯。原生編譯就是直接在嵌入式平臺上編譯代碼并運行,而交叉編譯就是在個人電腦等平臺編譯代碼,然后加載到嵌入式平臺運行。我們在Jetson TX1開發上使用交叉編譯。這里需要提醒一下各位小伙伴,交叉編譯需要在Jetson TX1和Host電腦間同步代碼,所以需要提前安裝和配置Git,否則在后續編譯執行的時候會報錯的呦,開發工具會深情地問你“Can you tell me who you are”。

          NVDIA Nsight啟動界面

          NVDIA Nsight操作界面

          Jetson TX1使用的開發工具NVDIA Nsight是基于eclipse定制開發,其界面和操作習慣于eclipse基本保持一致,消除了開發人員的熟悉工具的時間和精力消耗。

          接下來分享下在Jetson TX上創建,編輯,生成和運行一個項目的過程。

          新建項目

          NVIDIA Nsight新建項目中目標系統設置

          由于使用交叉編譯模式,所以在新建項目時,需要指定目標系統,即實際編譯運行程序的系統——Jetson TX1。這里按提示輸入Jetson TX1的網絡地址,用戶名,以及Jetson TX1上CUDA Toolkit的安裝路徑就可以了。

          如果不知道Jetson TX1上CUDA Toolkit的路徑也沒有關系,新建項目向導很貼心的設置了一個“自動檢測”的功能,只要輕輕一點,向導會自動搜尋CUDA Toolkit的路徑,非常方便。

          編輯代碼

          NVIDIA Nsight代碼編輯視圖

          NVIDIA Nsight代碼編輯與eclipse完全一致,只是增加針對CUDA代碼的代碼補全,高亮提示以及語法檢查,用慣eclipse的開發者絕對能感覺到屠龍在手,天下我有。

          生成/運行項目

          NVIDIA Nsight遠程運行項目對話框

          同樣的,在按照工具的提示配置好Jetson TX1后,就可以完成程序的編譯,運行,然后坐等收獲結果!

          軟硬件配置概覽

          在簡單介紹了Jetson TX1以及它的開發環境后,現在從Jetson TX1的軟硬件配置入手,來探索Jetson TX1開發者套件帶給廣大開發者的無限可能。

          CUDA

          CUDA是整套平臺的核心,保證了Jetson TX1超高的計算性能。同時,Jetson TX1也支持各種基于CUDA跨架的軟件庫,從而可以用于多種高并行度計算和高數據密度的應用場景,如機器學習,深度學習,大數據實施分析以及物聯網邊緣計算等。

          GPIO、I2C、I2S、SPI、帶流控制的TTL UART等接口

          豐富的接口給了今后基于Jetson TX1進行擴展開發的無限可能,即可以通過TTL UART、GPIO等接口實現其它單片機、嵌入式系統的所有功能外,還能通過自身強大的性能,升任其它單片機、嵌入式系統,如樹梅派等無力支撐的高數據密度業務和高處理實時性業務,如智能機器人,機器人,無人駕駛汽車等。

          攝像頭擴展頭

          通過將攝像頭(最高支持4K)與Jetson TX1連接,并借助OpenCV和Visionworks進行視覺計算。

          PCIe x4接口

          這使得Jetson TX1與其它擴展板卡得以結合,并碰撞出創新的火花。如可以通過PCIe x4接口將可編程的FPGA接入系統,協助處理通信,加解密等業務,從而進一步提升Jetson TX1針對特殊應用場景的性能。

          USB 2.0 Client/Host接口

          USB2.0 Client/Host口也為很多應用提供便利。一方面通過USB Host可以將各種USB外設連接在Jetson TX1上,此外,也可以通過 USB Client 將Jetson TX1作為外設連接至電腦或其它設備,開發者完全可以隨意定義這個USB Client的具體行為和功能,即可以將Jetson TX1開發為具備任何希望功能的外設連接至電腦或其它設備。

          初步的使用感受

          在基礎開發環境配置過程中,最令人映像深刻的感受有以下兩點:

          Jetson TX1規格

          NVIDIA提供的工具軟件包強大且易用

          首先,JetPack為用戶提供了從Jetson TX1系統鏡像燒錄,到Jetson TX1和Host電腦開發環境安裝配置的一站式解決方案,省去了用戶用在分別安裝、配置各個組件,解決版本匹配和組件間依賴關系上的時間和精力,使用戶可以方便快捷的完成環境的準備,并將精力集中在產品的研發上。相比之下,我之前在PC和其他嵌入式平臺上,往往總要在環境配置上耗費很多時間,需要想方設法地去解決組件版本不匹配和軟件依賴關系不滿足等問題。

          其次,JetPack在安裝配置過程中向用戶提供了非常詳盡的操作引導,使用戶,尤其是新手可以很順利的完成基礎環境的配置。例如在Jetson TX1操作系統映像燒錄過程開始時,安裝程序會彈出提示窗口,詳細的介紹了如何將Jetson TX1設置為recovery模式以及相應的注意事項,并要求用戶確認準備妥當后按鍵繼續,最大程度的避免了用戶操作不當造成的系統損壞;再例如在配置Jetson TX1軟件環境時,安裝程序會以圖示的形式讓用戶選擇Jetson TX1與Host電腦的連接方式,直觀易懂。

          Jetson TX1開發套件

          Jetson TX1相關的輔助資源非常豐富

          NVIDIA圍繞Jetson TX1提供了從用戶手冊,產品設計文檔,到工具軟件和內核源碼等全套資料,便于不同水平的用戶查閱;同時還有專門針對Jetson嵌入式平臺的開發者論壇,方便用戶針對文檔中未涉及的問題和使用經驗進行提問和交流,NVIDIA的官方支持人員也會在論壇中回復大家提出的各種技術問題,為用戶的開發過程提供有力支持。在本次編譯環境的配置過程中,我就曾遇到交叉編譯報錯,eclipse提示在Jetson TX1上找不到對應路徑的問題,當時查閱了很多文檔但都沒有找到問題所在,最終在開發者論壇中通過查閱開發者的歷史提問找到的問題所在,是Jetson TX1端的Git沒有正確配置,最終配置好Git后,編譯錯誤也迎刃而解。

          Jetson TX1憑借強悍的計算性能,相對超低的能耗,豐富的文檔和資源和多樣化的擴展接口,得以成為開發者和創客們的有力工具。后面,作者還將深入到不同的應用場景,深入探索Jetson TX1究竟如何幫助開發者實現無限可能,敬請期待!

          者 | Hugo Di Francesco

          譯者 | 無明

          Visual Studio Code 結合了輕量級文本編輯器的易用性和大型 IDE 風格的功能,只需要極少的配置,但充其量也只能說它“還湊合”。

          在過去的幾年,我做了很多 PHP、JavaScript 以及其他與 Web 相關的開發工作(HTML、CSS、React、Python、Ruby)。對于開發人員來說,代碼編輯器是工具箱中最重要的組成部分之一。好的編輯器可以保護你的手腕和手指免受重復性勞損的傷害,在經歷長時間的編碼之后,它可以讓你的眼睛免受失明的風險。

          與其他 Web 開發人員一樣,我也是從 Sublime 開始的。當時,代碼編輯器領域的競爭還沒有這么激烈。當 Atom 變得更加成熟時,我轉向了 Atom。我很快就在 Atom 中使用 Nuclide 來協助 React 和 PHP 開發。我還使用過 VIM。我也嘗試了 Eclipse 和 IntelliJ 一小段時間,但我已經習慣了 Atom 和 Sublime 的按鍵綁定,所以感覺 Eclipse 和 IntelliJ 的不太好用。這就是我的編輯器選擇之旅。作為開發人員,我們有時喜歡走很長的路。我的意思是,它畢竟只是一款編輯器,又何必要如此煞費苦心呢?

          我最新的代碼編輯器冒險之旅是 Visual Studio Code。它帶來了 IDE 風格的功能,不僅具有經典輕量級代碼編輯器的簡單性,還提供了一些我想要但 Atom 可能永遠不會提供的功能。

          它是跨平臺的,并且是免費和開源的,可以在這里下載到:

          https://code.visualstudio.com/

          精心設計的 GUI

          VSCode 的 GUI 設計與 Atom 或 Sublime 完全不同,它從一個突出的側邊欄開始:


          側邊欄包含了以下項目:

          1. 資源管理器(文件樹)
          2. 搜索
          3. Git
          4. 調試
          5. 擴展

          你可以通過這個菜單進行搜索,并查找能夠滿足你需求的擴展程序。我從來不在 Atom 中使用擴展搜索,但因為 VSCode 的擴展功能如此突出,我還是通過菜單安裝了一些擴展程序。

          你似乎總能看到你需要使用的功能,你不需要知道所有的鍵盤快捷鍵才能成為高級用戶。

          強大的默認設置

          VSCode 提供了開箱即用的“JavaScript、TypeScript、JSON、HTML、CSS、Less 和 Sass”智能感知,這一點很不錯。在 Atom 中,我并沒有使用代碼提示插件,所以 VSCode 的智能感知顯得有點啰嗦,不過,這也是我之前錯過的東西。它會根據你安裝的擴展程序告訴你代碼的哪些部分是無效的。例如,當代碼中的每個 const 都被標記為錯誤時,你就該知道它不支持 ES6。

          高度可發現的擴展程序

          當你意識到需要安裝 ES6 插件時,它會根據當前的 workspace 向你推薦擴展程序,例如,對于 ES5/ES6,它會建議安裝“Babel ES6/ES7”擴展程序。這比在網上尋找安裝哪個插件要好得多。

          VSCode 的生態系統還沒有那么碎片化,可能是因為它還比較新。對于某項任務,通常只有一個包可用(比如用于 ES6 高亮和提示的包)。

          輕松分屏

          我老是記不住分屏的快捷鍵。VSCode 在打開文檔選項卡的右上角提供了一個圖標,可用它來切換屏幕模式。我會在編寫測試代碼時用到它,也就是說,我可以同時打開應用程序代碼和測試代碼。在將代碼從一個框架(或語言)移植到另一個框架(或語言)時,這個功能也很有用。

          我從來不知道還能這么做。為了偶爾用到的功能記住一個快捷鍵并不會帶來多大幫助,但是有了這個功能,就可以讓我避免老是來回切換選項卡。這樣可以減少上下文切換,更好的注意力聚焦可以提高生產力。

          git diff 視圖

          我沒有使用 git GUI,這對我來說通常不是一個大問題。在終端中使用大多數 git 命令(pull、commit、add、status、rebase)都沒有問題,只是 git diff 不太好用。VSCode 提供了 diff 視圖,我因此可以編寫更好的提交日志消息,因為現在可以看到每個文件的全部代碼差異,而不是像以前那樣運行 git diff,然后還有記住使用 git commit 時 diff 中都包含了哪些內容。

          單擊導入包

          我從不在 Atom 中使用單擊導入包,因為用得不多。但一旦用到了,你就會覺得無需重新輸入文件名這一點其實是很棒的。

          內置的終端 / 調試器

          我會對 Atom 和 iTerm 進行分屏。但事實證明,iTerm 用得并不多。在 VSCode 中,你只需要使用 cmd +或 ctrl +就可以召喚出終端。

          智能感知

          能夠查看類型函數定義是非常有用的。之前,如果忘記一個函數(比如 PHP 中的 array_push)的參數順序是怎樣的,我都需要去查找 API 文檔。現在,VSCode 可以直接告訴我應該按照怎樣的順序傳遞參數,那么我就可以繼續專注于手頭的任務。

          你還可以按住 cmd 或 ctrl 鍵來查看自己定義的變量和導入的引用。

          所有這些功能都有一些共同點:它們是開發工作流程的一部分,但不會一直被用到。當你需要使用它們時,它們就能幫助你提高工作效率。

          一些插件

          VSCode 具有很高的定制化能力和可擴展性,以下這些是我目前安裝過的一些插件:

          • VSCode Atom 按鍵映射:
          • https://github.com/waderyan/vscode-atom-keybindings
          • Sublime 3 模式下自動關閉標簽,比如你輸入</,它會自動填充與之匹配的關閉標簽:
          • https://marketplace.visualstudio.com/items?staticName=formaulahendry.auto-close-tag
          • 用于 VSCode 的 EditorConfig,用于設定每個 tab 的空格數量或去除尾部空格:
          • https://github.com/editorconfig/editorconfig-vscode
          • PHP IntelliSense:
          • https://marketplace.visualstudio.com/items?staticName=felixfbecker.php-intellisense
          • Babel ES6/ES7 用于現代 JavaScript 代碼的語法高亮:
          • https://marketplace.visualstudio.com/items?itemName=dzannotti.vscode-babel-coloring

          結 論

          VSCode 是跨平臺、免費和開源的。即使你是一個頑固的 Atom 或 Sublime 粉絲,也要試一試 VSCode。它可能會讓你大吃一驚。

          英文原文

          https://hackernoon.com/virtualstudio-code-the-editor-i-didnt-think-i-needed-16970c8356d5

          者:lucida

          鏈接:http://lucida.me/blog/sublime-text-complete-guide/


          # 摘要(Abstract)


          本文系統全面的介紹了 Sublime Text,旨在成為最優秀的 Sublime Text 中文教程。


          # 更新記錄


          1.2014/09/27:完成初稿


          2.2014/09/28:


          更正打開控制臺的快捷鍵為 Ctrl + `

          更正全局替換的快捷鍵為 Ctrl + Alt + Enter


          3.2016/09/15:作者已全面轉向 Visual Studio Code


          # 前言(Prologue)


          Sublime Text 是一款跨平臺代碼編輯器(Code Editor),從最初的 Sublime Text 1.0,到現在的 Sublime Text 3.0,Sublime Text 從一個不知名的編輯器演變到現在幾乎是各平臺首選的 GUI 編輯器。而這樣優秀的編輯器卻沒有一個靠譜的中文教程,所以我試圖通過本文彌補這個缺陷。


          # 編輯器的選擇(Editor Choices)


          從初學編程到現在,我用過的編輯器有 EditPlus、UltraEdit、Notepad++、Vim、TextMate 和 Sublime Text,如果讓我從中推薦,我會毫不猶豫的推薦 Vim 和 Sublime Text,原因有下面幾點:


          1.跨平臺:Vim 和 Sublime Text 均為跨平臺編輯器(在 Linux、OS X 和 Windows 下均可使用)。作為一個程序員,切換系統是常有的事情,為了減少重復學習,使用一個跨平臺的編輯器是很有必要的。


          2.可擴展:Vim 和 Sublime Text 都是可擴展的(Extensible),并包含大量實用插件,我們可以通過安裝自己領域的插件來成倍提高工作效率。


          3.互補:Vim 和 Sublime Text 分別是命令行環境(CLI)和圖形界面環境(GUI)下的最佳選擇,同時使用兩者會大大提高工作效率。


          # 個人背景(Personal Background)


          我是一名非常典型的程序員:平時工作主要在 Linux 環境下使用 Java 和 Python,偶爾會用 HTML+CSS+JavaScript 編寫網頁;業余時會在 Windows 環境編寫一些 C# 程序(包括控制臺程序(Console Application)和移動應用(Mobile App),也會玩一些非主流語言(比如 Haskell,ML 和 Ruby 等)以拓展見識。


          所以這篇文章會我的個人工作內容為主要使用場景(Scenario),盡管無法覆蓋到所有的使用場景,但我認為依然可以覆蓋到絕大部分,如果您認為我遺漏了什么內容,請在文章下面回復,我會盡量更新。


          # 本文風格(Writing Style)


          受益于 K&R C 的寫作風格,我傾向于以實際案例來講解 Sublime Text 的功能,所以本文中的例子均源于我在實際開發時遇到的問題。


          此外,把本文會使用大量動畫(GIF)演示 Sublime Text 的編輯功能,因為我發現圖片難以演示完整的編輯流程(Workflow),而視頻又過于重量級。本文的GIF動畫均使用 ScreenToGif 進行錄制。


          # 編輯器(Editor) vs 集成開發環境(Integrated Development Environment,下文簡稱 IDE)


          我經常看到一些程序員拿編輯器和 IDE 進行比較,諸如 Vim 比 Eclipse 強大或是 Visual Studio 太慢不如 Notepad++ 好使之類的討論比比皆是,個人認為這些討論沒有意義,因為編輯器和 IDE 根本是面向兩種不同使用場景的工具:


          1.編輯器面向無語義的純文本,不涉及領域邏輯,因此速度快體積小,適合編寫單獨的配置文件和動態語言腳本(Shell、Python 和 Ruby 等)。


          2.IDE 面向有語義的代碼,會涉及到大量領域邏輯,因此速度偏慢體積龐大,適合編寫靜態語言項目(Java、C++ 和 C# 等)。


          我認為應當使用正確的工具去做有價值的事情,并把效率最大化,所以我會用 Eclipse 編寫 Java 項目,用 Vim 編寫Shell,用 Sublime Text 編寫 JavaScript/HTML/Python,用 Visual Studio 編寫C#。


          前言到此結束,下面進入正題。


          # 安裝(Installation)


          Sublime Text 官方網站 提供了 Sublime Text 各系統各版本的下載,目前Sublime Text 的最新版本是 Sublime Text 3。這里以 Windows 版本的 Sublime Text 安裝為例。


          注意在安裝時勾選 Add to explorer context menu,這樣在右鍵單擊文件時就可以直接使用 Sublime Text 打開。



          # 添加 Sublime Text 到環境變量


          使用 Win + R 運行 sysdm.cpl 打開 “系統屬性”。



          然后在 “高級” 選項卡里選擇 “環境變量”,編輯 “Path”,增加 Sublime Text 的安裝目錄(例如 D:\Program Files\Sublime Text 3)。



          接下來你就可以在命令行里面利用 subl 命令直接使用 Sublime Text 了:


          subl file    :: 使用 Sublime Text 打開 file 文件
          subl folder  :: 使用 Sublime Text 打開 folder 文件夾
          subl .       :: 使用 Sublime Text 當前文件夾


          # 安裝 Package Control


          前文提到 Sublime Text 支持大量插件,如何找到并管理這些插件就成了一個問題,Package Control 正是為了解決這個問題而出現的,利用它我們可以很方便的瀏覽、安裝和卸載 Sublime Text 中的插件。


          進入 Package Control 的 官網,里面有詳細的 安裝教程。Package Control 支持 Sublime Text 2 和 3,本文只給出 3 的安裝流程:


          1.使用 Ctrl + ` 打開 Sublime Text 控制臺。

          2.將下面的代碼粘貼到控制臺里:

          import?urllib.request,os,hashlib;?h?=?'7183a2d3e96f11eeadd761d777e62404'?+?'e330c659d4bb41d3bdf022e94cab3cd0';?pf?=?'Package?Control.sublime-package';?ipp?=?sublime.installed_packages_path();?urllib.request.install_opener(?urllib.request.build_opener(?urllib.request.ProxyHandler())?);?by?=?urllib.request.urlopen(?'http://sublime.wbond.net/'?+?pf.replace('?',?'%20')).read();?dh?=?hashlib.sha256(by).hexdigest();?print('Error?validating?download?(got?%s?instead?of?%s),?please?try?manual?install'?%?(dh,?h))?if?dh?!=?h?else?open(os.path.join(?ipp,?pf),?'wb'?).write(by)


          3.等待 Package Control 安裝完成。之后使用 Ctrl + Shift + P 打開命令板,輸入 PC 應出現 Package Control:



          成功安裝 Package Control 之后,我們就可以方便的安裝使用 Sublime Text 的各種插件:


          # 購買(Purchase)


          Sublime Text 是一個收費閉源軟件,這在一定程度上成為了我支持 Sublime Text 的理由(我心中的軟件靠譜程度:免費開源 << 免費閉源 < 收費開源 < 收費閉源):在 這里 購買。


          不過不購買 Sublime Text 也可以 “正常” 使用它,只是 Sublime Text 會時不時的彈出一個對話框提醒你購買,此外窗口處會有一個很屌絲很 low 逼的 (UNREGISTERED)。(在高頻操作下,一般 20 分鐘提示一次,個人認為算是很厚道了)


          也許不少人會覺著 Sublime Text 70 刀的價格太貴,但相比它的功能和帶來的效率提升,70 刀真的不值一提,如果你不方便使用 Paypal 付款可以郵件聯系我,你支付寶給我打款然后我幫你付款,價格按當日匯率折算(450 元左右)。



          概覽(Tour)


          # 基本概念(Basic Concepts)


          Sublime Text 的界面如下:



          1.標簽(Tab):無需介紹。

          2.編輯區(Editing Area):無需介紹。

          3.側欄(Side Bar):包含當前打開的文件以及文件夾視圖。

          4.縮略圖(Minimap):如其名。

          5.命令板(Command Palette):Sublime Text 的操作中心,它使得我們基本可以脫離鼠標和菜單欄進行操作。

          6.控制臺(Console):使用 Ctrl + ` 調出,它既是一個標準的 Python REPL,也可以直接對 Sublime Text 進行配置。

          7.狀態欄(Status Bar):顯示當前行號、當前語言和Tab格式等信息。


          # 配置(Settings)


          與其他 GUI 環境下的編輯器不同,Sublime Text 并沒有一個專門的配置界面,與之相反,Sublime Text 使用 JSON 配置文件,例如:

          {  
            "font_size": 12,  
              "highlight_line": true,
          }


          會將默認字體大小調整為 12,并高亮當前行。

          JSON 配置文件的引入簡化了 Sublime Text 的界面,但也使得配置變的復雜,一般我會到 這里 查看可用的 Sublime Text 配置。


          # 編輯(Editing)


          Sublime Text 的編輯十分人性化——它不像 Vim 那樣反人類(盡管我也用 Vim 但我還是要說 Vim 的快捷鍵設定絕壁連代謝產物都不如),少量的快捷鍵就可以完成絕大多數編輯任務。


          # 基本編輯(Basic Editing)


          ↑↓←→ 就是 ↑↓←→,不是 KJHL,(沒錯我就是在吐槽 Vim,尼瑪設成 WSAD 也比這個強?。?,粘貼剪切復制均和系統一致。


          Ctrl + Enter 在當前行下面新增一行然后跳至該行;Ctrl + Shift + Enter 在當前行上面增加一行并跳至該行。



          Ctrl + ←/→ 進行逐詞移動,相應的,Ctrl + Shift + ←/→ 進行逐詞選擇。



          Ctrl + ↑/↓ 移動當前顯示區域,Ctrl + Shift + ↑/↓ 移動當前行。




          # 選擇(Selecting)


          Sublime Text 的一大亮點是支持多重選擇——同時選擇多個區域,然后同時進行編輯。


          Ctrl + D 選擇當前光標所在的詞并高亮該詞所有出現的位置,再次 Ctrl + D 選擇該詞出現的下一個位置,在多重選詞的過程中,使用 Ctrl + K 進行跳過,使用 Ctrl + U 進行回退,使用 Esc 退出多重編輯。


          多重選詞的一大應用場景就是重命名——從而使得代碼更加整潔。盡管 Sublime Text 無法像 IDE(例如 Eclipse)那樣進行自動重命名,但我們可以通過多重選詞+多重編輯進行直觀且便捷的重命名:



          有時我們需要對一片區域的所有行進行同時編輯,Ctrl + Shift + L 可以將當前選中區域打散,然后進行同時編輯:



          有打散自然就有合并,Ctrl + J 可以把當前選中區域合并為一行:



          # 查找&替換(Finding&Replacing)


          Sublime Text 提供了強大的查找(和替換)功能,為了提供一個清晰的介紹,我將 Sublime Text 的查找功能分為 快速查找、標準查找 和 多文件查找 三種類型。


          # 快速查找&替換


          多數情況下,我們需要查找文中某個關鍵字出現的其它位置,這時并不需要重新將該關鍵字重新輸入一遍然后搜索,我們只需要使用 Shift + ←/→ 或 Ctrl + D 選中關鍵字,然后 F3 跳到其下一個出現位置, Shift + F3 跳到其上一個出現位置,此外還可以用 Alt + F3 選中其出現的所有位置(之后可以進行多重編輯,也就是快速替換)。



          # 標準查找&替換


          另一種常見的使用場景是搜索某個已知但不在當前顯示區域的關鍵字,這時可以使用 Ctrl + F 調出搜索框進行搜索:


          以及使用 Ctrl + H 進行替換:


          # 關鍵字查找&替換


          對于普通用戶來說,常規的關鍵字搜索就可以滿足其需求:在搜索框輸入關鍵字后 Enter 跳至關鍵字當前光標的下一個位置, Shift + Enter 跳至上一個位置, Alt + Enter 選中其出現的所有位置(同樣的,接下來可以進行快速替換)。


          Sublime Text 的查找有不同的模式:Alt + C 切換大小寫敏感(Case-sensitive)模式, Alt + W 切換整字匹配(Whole matching)模式,除此之外Sublime Text還支持在選中范圍內搜索(Search in selection),這個功能沒有對應的快捷鍵,但可以通過以下配置項自動開啟。

          "auto_find_in_selection": true


          這樣之后在選中文本的狀態下范圍內搜索就會自動開啟,配合這個功能,局部重命名(Local Renaming)變的非常方便:



          使用 Ctrl + H 進行標準替換,輸入替換內容后,使用 Ctrl + Shift + H 替換當前關鍵字, Ctrl + Alt + Enter 替換所有匹配關鍵字。


          # 正則表達式查找&替換


          正則表達式 是非常強大的文本查找&替換工具,Sublime Text中使用 Alt + R 切換正則匹配模式的開啟/關閉。Sublime Text的使用Boost里的Perl正則表達式風格。


          出于篇幅原因,本文不會對正則表達式進行詳細介紹,Mastering Regex(中譯本:精通正則表達式)對正則表達式的原理和各語言下的使用進行了詳細介紹。此外網上有大量正則表達式的優秀教程(“正則表達式30分鐘入門教程” 和 MSDN正則表達式教程.aspx)),以及在線測試工具(regexpal 和 regexer)。


          # 多文件搜索&替換


          使用 Ctrl + Shift + F 開啟多文件搜索&替換(注意此快捷鍵和搜狗輸入法的簡繁切換快捷鍵有沖突):



          多文件搜索&替換默認在當前打開的文件和文件夾進行搜索/替換,我們也可以指定文件/文件夾進行搜索/替換。


          # 跳轉(Jumping)


          Sublime Text 提供了強大的跳轉功能使得我們可以在不同的文件/方法/函數中無縫切換。就我的使用經驗而言,目前還沒有哪一款編輯器可以在這個方面超越Sublime Text。


          # 跳轉到文件


          Ctrl + P 會列出當前打開的文件(或者是當前文件夾的文件),輸入文件名然后 Enter 跳轉至該文件。


          需要注意的是,Sublime Text使用模糊字符串匹配(Fuzzy String Matching),這也就意味著你可以通過文件名的前綴、首字母或是某部分進行匹配:例如, EIS 、 Eclip 和 Stupid 都可以匹配 EclipseIsStupid.java 。



          # 跳轉到符號


          盡管是一個文本編輯器,Sublime Text 能夠對代碼符號進行一定程度的索引。Ctrl + R 會列出當前文件中的符號(例如類名和函數名,但無法深入到變量名),輸入符號名稱 Enter 即可以跳轉到該處。


          此外,還可以使用 F12 快速跳轉到當前光標所在符號的定義處(Jump to Definition)。



          比較有意思的是,對于 Markdown, Ctrl + R 會列出其大綱,非常實用。



          # 跳轉到某行


          Ctrl + G 然后輸入行號以跳轉到指定行:



          # 組合跳轉


          在 Ctrl + P 匹配到文件后,我們可以進行后續輸入以跳轉到更精確的位置:


          1.@ 符號跳轉:輸入 @symbol 跳轉到 symbol 符號所在的位置

          2.# 關鍵字跳轉:輸入 #keyword 跳轉到 keyword 所在的位置

          3.: 行號跳轉:輸入 :12 跳轉到文件的第12行。



          所以 Sublime Text 把 Ctrl + P 稱之為 “Go To Anything”,這個功能如此好用,以至于我認為沒有其它編輯器能夠超越它。


          # 中文輸入法的問題


          從 Sublime Text 的初版(1.0)到現在(3.0 3065),中文輸入法(包括日文輸入法)都有一個問題:輸入框不跟隨。



          目前官方還沒有修復這個 bug,解決方法是安裝 IMESupport 插件,之后重啟 Sublime Text 問題就解決了。



          # 文件夾(Folders)


          Sublime Text 支持以文件夾做為單位進行編輯,這在編輯一個文件夾下的代碼時尤其有用。在 File 下 Open Folder :



          你會發現右邊多了一個側欄,這個側欄列出了當前打開的文件和文件夾的文件,使用 Ctrl + K, Ctrl + B 顯示或隱藏側欄,使用 Ctrl + P 快速跳轉到文件夾里的文件。


          # 窗口&標簽(Windows & Tabs)


          Sublime Text 是一個多窗口多標簽編輯器:我們既可以開多個Sublime Text窗口,也可以在一個Sublime Text窗口內開多個標簽。



          # 窗口(Window)


          使用 Ctrl + Shift + N 創建一個新窗口(該快捷鍵再次和搜狗輸入法快捷鍵沖突,個人建議禁用所有搜狗輸入法快捷鍵)。


          當窗口內沒有標簽時,使用 Ctrl + W 關閉該窗口。


          # 標簽(Tab)


          使用 Ctrl + N 在當前窗口創建一個新標簽, Ctrl + W 關閉當前標簽, Ctrl + Shift + T 恢復剛剛關閉的標簽。


          編輯代碼時我們經常會開多個窗口,所以分屏很重要。Alt + Shift + 2 進行左右分屏, Alt + Shift + 8 進行上下分屏, Alt + Shift + 5 進行上下左右分屏(即分為四屏)。



          分屏之后,使用 Ctrl + 數字鍵 跳轉到指定屏,使用 Ctrl + Shift + 數字鍵 將當前屏移動到指定屏。例如, Ctrl + 1 會跳轉到1屏,而 Ctrl + Shift + 2 會將當前屏移動到2屏。


          # 全屏(Full Screen)


          Sublime Text 有兩種全屏模式:普通全屏和無干擾全屏。


          個人強烈建議在開啟全屏前關閉菜單欄(Toggle Menu),否則全屏效果會大打折扣。


          F11 切換普通全屏:



          Shift + F11 切換無干擾全屏:



          # 風格(Styles)


          風格對于任何軟件都很重要,對編輯器也是如此,尤其是GUI環境下的編輯器。作為一個程序員,我希望我的編輯器足夠簡潔且足夠個性。


          Notepad++ 默認界面



          Sublime Text 默認界面



          所以在用過 Sublime Text 之后,我立刻就卸掉了 Notepad++。


          Sublime Text 自帶的風格是我喜歡的深色風格(也可以調成淺色),默認主題是Monokai Bright,這兩者的搭配已經很不錯了,不過我們還可以做得更好:接下來我將會展示如何通過設置偏好項和添加自定義風格/主題使得 Sublime Text 更加 Stylish。


          # 一些設置(Miscellaneous Settings)


          下面是我個人使用的設置項。



          設置之后的效果如下:



          # 主題(Themes)


          Sublime Text 有大量第三方主題:[https://sublime.wbond.net/browse/labels/theme],這里我給出幾個個人感覺不錯的主題:


          Soda Light

          Soda Dark

          Nexus



          Flatland

          Spacegray Light



          Spacegray Dark


          # 配色(Color)


          colorsublime 包含了大量 Sublime Text 配色方案,并支持在線預覽,配色方案的安裝教程在 這里,恕不贅述。


          我個人使用的是 Nexus 主題和 Flatland Dark 配色,配置如下:

          "theme": "Nexus.sublime-theme","
          color_scheme": "Packages/Theme - Flatland/Flatland Dark.tmTheme",

          效果如下:


          # 編碼(Coding)


          優秀的編輯器使編碼變的更加容易,所以 Sublime Text 提供了一系列功能以提高開發效率。



          # 良好實踐(Good Practices)


          良好的代碼應該是規范的,所以Google為每一門主流語言都設置了其代碼規范(Code Style Guideline)。我自己通過下面的設置使以規范化自己的代碼。


          # 代碼段(Code Snippets)


          Sublime Text 支持代碼段(Code Snippet),輸入代碼段名稱后 Tab 即可生成代碼段。



          你可以通過Package Control安裝第三方代碼段,也可以自己創建代碼段,參考這里。


          # 格式化(Formatting)


          Sublime Text 基本的手動格式化操作包括:Ctrl + [ 向左縮進, Ctrl + ] 向右縮進,此外 Ctrl + Shift + V 可以以當前縮進粘貼代碼(非常實用)。


          除了手動格式化,我們也可以通過安裝插件實現自動縮進和智能對齊:

          1.HTMLBeautify:格式化HTML。

          2.AutoPEP8:格式化Python代碼。

          3.Alignment:進行智能對齊。


          # 自動完成(Auto Completion)


          Sublime Text 支持一定的自動完成,按 Tab 自動補全。



          # 括號(Brackets)


          編寫代碼時會碰到大量的括號,利用 Ctrl + M 可以快速的在起始括號和結尾括號間切換, Ctrl + Shift + M 則可以快速選擇括號間的內容,對于縮進型語言(例如Python)則可以使用 Ctrl + Shift + J 。



          此外,我使用 BracketHighlighter 插件以高亮顯示配對括號以及當前光標所在區域,效果如下:



          # 命令行(Command Line)


          盡管提供了 Python 控制臺,但 Sublime Text 的控制臺僅支持單行輸入,十分不方便,所以我使用 SublimeREPL 以進行一些編碼實驗(Experiments)。



          # 其它(Miscellaneous)


          盡管我試圖在本文包含盡可能多的 Sublime Text 實用技能,但受限于篇幅和我的個人經驗,本文仍不免有所遺漏,歡迎在評論里指出本文的錯誤及遺漏。


          下面是一些可能有用但我很少用到的功能:


          1.宏(Macro):Sublime Text 支持錄制宏,但我在實際工作中并未發現宏有多大用處。


          2.其它平臺(Other Platforms):本文只介紹了 Windows 平臺上 Sublime Text 的使用,不過 Linux 和 OS X 上Sublime Text的使用方式和Windows差別不大,只是在快捷鍵上有所差異,請參考 Windows/Linux快捷鍵 和 OS X 快捷鍵。


          3.項目(Projects):Sublime Text支持簡單的 項目管理,但我一般只用到文件夾。


          4.Vim模式(Vintage):Sublime Text自帶 Vim模式。


          5.構建(Build):通過配置,Sublime Text可以進行 源碼構建。


          6.調試(Debug):通過安裝 插件,Sublime Text 可以對代碼進行調試。


          # 快捷鍵列表(Shortcuts Cheatsheet)


          我把本文出現的Sublime Text按其類型整理在這里,以便查閱。

          通用(General)

          1.↑↓←→:上下左右移動光標,注意不是不是 KJHL !

          2.Alt:調出菜單

          3.Ctrl + Shift + P:調出命令板(Command Palette)

          4.Ctrl + ` :調出控制臺


          # 編輯(Editing)


          1.Ctrl + Enter:在當前行下面新增一行然后跳至該行

          2.Ctrl + Shift + Enter:在當前行上面增加一行并跳至該行

          3.Ctrl + ←/→:進行逐詞移動

          4.Ctrl + Shift + ←/→進行逐詞選擇

          5.Ctrl + ↑/↓移動當前顯示區域

          6.Ctrl + Shift + ↑/↓移動當前行


          #選擇(Selecting)


          1.Ctrl + D:選擇當前光標所在的詞并高亮該詞所有出現的位置,再次 Ctrl + D 選擇該詞出現的下一個位置,在多重選詞的過程中,使用 Ctrl + K 進行跳過,使用 Ctrl + U 進行回退,使用 Esc 退出多重編輯

          2.Ctrl + Shift + L:將當前選中區域打散

          3.Ctrl + J:把當前選中區域合并為一行

          4.Ctrl + M:在起始括號和結尾括號間切換

          5.Ctrl + Shift + M:快速選擇括號間的內容

          6.Ctrl + Shift + J:快速選擇同縮進的內容

          7.Ctrl + Shift + Space:快速選擇當前作用域(Scope)的內容


          # 查找&替換(Finding&Replacing)


          1.F3:跳至當前關鍵字下一個位置

          2.Shift + F3:跳到當前關鍵字上一個位置

          3.Alt + F3:選中當前關鍵字出現的所有位置

          4.Ctrl + F/H:進行標準查找/替換,之后:

          5.Alt + C:切換大小寫敏感(Case-sensitive)模式

          6.Alt + W:切換整字匹配(Whole matching)模式

          7.Alt + R:切換正則匹配(Regex matching)模式

          8.Ctrl + Shift + H:替換當前關鍵字

          9.Ctrl + Alt + Enter:替換所有關鍵字匹配

          10.Ctrl + Shift + F:多文件搜索&替換


          # 跳轉(Jumping)


          1.Ctrl + P:跳轉到指定文件,輸入文件名后可以:

          2.@ 符號跳轉:輸入 @symbol 跳轉到 symbol 符號所在的位置

          3.# 關鍵字跳轉:輸入 #keyword 跳轉到 keyword 所在的位置

          4.: 行號跳轉:輸入 :12 跳轉到文件的第12行。

          5.Ctrl + R:跳轉到指定符號

          6.Ctrl + G:跳轉到指定行號


          # 窗口(Window)


          1.Ctrl + Shift + N:創建一個新窗口

          2.Ctrl + N:在當前窗口創建一個新標簽

          3.Ctrl + W:關閉當前標簽,當窗口內沒有標簽時會關閉該窗口

          4.Ctrl + Shift + T:恢復剛剛關閉的標簽


          # 屏幕(Screen)


          1.F11:切換普通全屏

          2.Shift + F11:切換無干擾全屏

          3.Alt + Shift + 2:進行左右分屏

          4.Alt + Shift + 8:進行上下分屏

          5.Alt + Shift + 5:進行上下左右分屏

          6.分屏之后,使用 Ctrl + 數字鍵 跳轉到指定屏,使用 Ctrl + Shift + 數字鍵 將當前屏移動到指定屏


          主站蜘蛛池模板: 精品无码一区二区三区在线| 免费视频一区二区| 糖心vlog精品一区二区三区| 岛国无码av不卡一区二区| 亚洲AV无码一区二区三区电影| 韩日午夜在线资源一区二区| 高清一区高清二区视频| 怡红院美国分院一区二区| 免费精品一区二区三区在线观看| 亚洲av无码片区一区二区三区| 精品国产一区二区三区四区 | 国产午夜福利精品一区二区三区| 国产美女露脸口爆吞精一区二区 | 国产在线一区二区三区| 精品人无码一区二区三区| 亚洲国产精品无码第一区二区三区 | 中文字幕一区二区三区有限公司 | 欧洲无码一区二区三区在线观看 | 中文字幕乱码一区久久麻豆樱花| 另类ts人妖一区二区三区| 无码8090精品久久一区| 中文字幕AV一区二区三区人妻少妇| 国产精品免费综合一区视频| 精品国产日韩亚洲一区| 韩国资源视频一区二区三区| 国内自拍视频一区二区三区| 日韩精品无码一区二区三区AV| 国产精品久久无码一区二区三区网| 日本免费一区二区在线观看| 91久久精品国产免费一区| 亚洲电影一区二区三区| 亚洲午夜一区二区三区| 国产一区二区在线| 国产成人一区二区三区电影网站 | 免费av一区二区三区| 亚洲爆乳精品无码一区二区三区| 亚洲国产激情在线一区| 日本一区二区三区久久| 亚洲日韩精品无码一区二区三区| 亚洲国产成人久久综合一区 | 国语精品一区二区三区|