當前位置:
首頁 > 最新 > 文本編輯利器 Notepad+10 個強大而又鮮為人知的特性

文本編輯利器 Notepad+10 個強大而又鮮為人知的特性

摘要: 子曰:「工欲善其事,必先利其器。」 對程序員來說,工具是第一生產力。

Notepad++ 顧名思義就是 windows 內置 Notepad 的增強版,它採用 C++ 編寫,性能優秀,不僅小巧(完整安裝包僅 3.8MB),功能眾多,插件豐富,而且最關鍵的是「完全免費」!這一點比起Editplus、UltraEdit、Sublime Text等其它文本處理軟體來說,算是個大的賣點。

說了這麼多咱們言歸正傳,在日常的研發、數據處理過程中,免不了和各種文本、數據、代碼打交道,今天就來細數 Notepad++ 10個強大而又鮮為人知的特性,教你如何快速用它處理各種文本問題,做到事半功倍。


1、自動保存

文本編輯過程中最怕的就是各種意外情況還沒來得急保存,比如死機、進程僵死、奔潰等,如果你用了 Notepad++,完全不用擔心,默認情況下它會實時的將正在編輯的內容保存一份副本到 %appdata% 下,每次打開未保存的文件都會自動從副本中恢復,完全不用擔心任何編輯數據丟失!除非磁碟損壞,對於個人用戶而言,我想Notepad++配合雲盤的實時同步功能,做到數據三個九或者四個九的可靠性也就不難了吧?

2、編輯只讀文件

偶爾會編輯一些系統文件,比如 C:WindowsSystem32driversetchosts,編輯完成要保存時才知道文件只讀,沒有許可權,在 linux vim 下,咱們可以 :w !sudo tee % 直接編輯只讀文件,但是在 windows 下怎麼辦呢?難道再把文件翻出來右鍵去除屬性?這麼做太繁瑣了!Notepad++下【編輯】→【去除只讀標記】即可快速解決。


3、列編輯

現在要給一段文本的每行開頭加一個 tab 怎麼辦?要不要來個 shell 命令 sed -r "/^/ /" 處理下?Notepad++里按下 alt 鍵即可進入列編輯模式,然後按下 tab 即可為選中的每一行執行相同的操作。

那如果要給每行的開頭加一個連續的數字做行號呢?要不要在 excel 里自動填充後 copy 過來?Notepad++里按下 alt+c 組合鍵即可進入列編輯插入模式,設置相應的初始值、步長即可。


4、監視日誌

如果日誌文件發生變化了,如何獲取最新的日誌?如果是低頻的修改,notepad++ 會自動檢測到內容變更,提示你是否要載入最新的文件,但如果是頻繁的變更,例如一秒一次 :

while sleep 1; do echo $((i++)) >> 111.txt; done

又該如何處理呢?難道只能 shell 下 tail -f ?

幸運的是,notepad++ 已為咱們內置了這個功能:【視圖】→【監視日誌】


5、查找替換

notepad++ 的查找替換非常強大,完全支持 PCRE 風格正則,並能在單獨窗口輸出匹配內容,或者更友好的方式標記出查找結果。

比如需要將多行合併為一行怎麼辦?只需要勾選擴展模式然後輸入
即可。

再比如如何對某個文件進行重複行去重,難道要上傳到linux下 sort|uniq 來一發?

Notepad++下只需要輸入正則表達式 ^(.*?)$s+?^(?=.*^1$),並勾選匹配新行即可。


6、格式、編碼與符號

Notepad++ 在【編碼】菜單里內置了幾乎所有的編碼支持,可以自由切換,調試編碼問題非常方便。

針對linux和mac、windows換行符不兼容問題,notepad++ 也可以很方便的支持,在底部狀態欄雙擊可以很容易的切換:

有時候文本中包含一些肉眼不可見的特殊字元,導致程序處理過程中出現一些莫名其妙的問題,比如回車換行符、utf8 BOM 標記等,咱們可以開啟 【視圖】→【顯示符號】→【顯示所有字元】,讓所有的字元無所遁形,一目了然:


7、自定義語法高亮

在 notepad++ 里內置了幾十種語言的語法高亮,用戶可以任意的修改和自定義主題,但是目前還是有些語言未獲支持,比如 scala,咱們可以從 GitHub 找到其他人配置好的導入即可:

https://gist.github.com/MihailJP/4563140

Download userDefineLang.xml

If this is the first user-defined language you are adding, move the entire file (userDefineLang.xml) to %APPDATA%Notepad++. If you have already installed other languages, just copy the content from to and paste it at the end of userDefineLang.xml right before

Save the userDefineLang.xml and restart Notepad++

https://github.com/nfang/scala-syntax-highlighter

當然你也可以重新定義一個適合自己的語言主題。


8、去重

如果有個文件需要去重你會怎麼做?要不寫個小腳本,比如 awk "! a[$0] ++" 試試?

在 notepad++ 下這個解決方案變得異常簡單,只需要按下 ctrl + u 即可!

其實這個是 notepad 自帶的插件 TextFX 提供的功能,這是一個很強大的插件,提供了很多文本處理、轉換小功能,有興趣的同學可以探索下。


9、比較文件

linux下有 diff,windows 下專門用於文件比較的軟體也不少,但是大多都是收費的,比如 Beyond Compare,而在 notepad++下,這個問題異常簡單:只需要按下 Alt+D 即可!

這一切的背後其實是 notepad++ 利用了自帶的插件 compare:


10、在 PPT 中插入格式化高亮代碼

有時候技術分享需要在 PPT 中插入一段語法高亮、格式整齊的代碼,但你發現沒有,無論是從 IDE 編輯器還是 HTML 網頁複製粘貼到 PPT 里,格式、顏色都會錯亂或丟失,本質原因是在 office 內部 PPT 的定位不是做一個強大的文本編輯器(Word),而是以圖片可視化輸出為主讓用戶表達觀點(Power + Point)的一個產品,所以網上也有同學想出了各種辦法來「曲線救國」,比如先粘貼到 word,然後再複製粘貼到 PPT,或者直接 截圖粘貼到 PPT 里,但這都不是我們想要的。

這裡藉助 notepad++ 我們可以很方便的實現這個需求:

(1)首先藉助 notepad++ 自帶的 NppExport 複製代碼內容及格式為 RTF 到剪貼板

(2)然後在 PPT 中,按下 Ctrl+Alt+V 粘貼即可,顏色及排版不會有任何變化

看到沒?一共就兩步,按下兩組快捷鍵即可輕鬆解決 PPT 里粘貼代碼格式錯亂或丟失這個惱人的問題。


11、總結

上面介紹的 notepad++ 的一些 feature 或者 功能,也許別的軟體有另外的解法,但是能像 notepad++ 這樣集大成者卻鳳毛麟角。除此之外 notepad++ 還有一些實用的功能,本文就不展開了,有興趣的同學可以探索挖掘,比如:宏錄製、自定義快捷鍵、tab轉換、運行命令、獲取文件路徑、插件管理等。

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 開源中國 的精彩文章:

OSChina 周三亂彈——逃離帝都,去杭州如何?
來了!微軟將 OpenSSH 客戶端添加到 Win10,帶來原生 SSH 支持
可能是目前最完整的前端框架 Vue.js 全面介紹

TAG:開源中國 |