【轉】輕量級文本編輯器,Notepad最佳替代品:Notepad++--不錯


原文網址:http://www.crifan.com/files/doc/docbook/rec_soft_npp/release/htmls/npp_function_column_mode.html

3.6. Notepad++的列編輯功能

下面來解釋Notepad++中的強大且好用的列編輯功能。

3.6.1. 什么是列編輯模式

普通編輯器,編輯文本的時候,選中一部分內容,都是在一行或多行的范圍內操作,從左到右的,所以,可以看做是行模式。

與此相對應的,就是上下方向的列模式了。

進入列模式后,操作順序和范圍,是在所選范圍內,從上到下的,比如全部插入某些字符等等,是在所選的列模式操作區域內,所涉及的每一行,都對應的插入這些字符。

當有些高級的操作,需要對不同的列,同時進行編輯的話,那么列編輯模式,就非常有用了。

3.6.2. Notepad++的列編輯模式的基本操作

在Notepad++中,按住Alt鍵之后,就處於列(編輯)模式了。

比如,按住Alt鍵,此處從上到下,選擇多列:

例 3.20. 列編輯:多行輸入同樣內容

然后多行同時輸入同樣的內容,效果如下:


例 3.21. 列編輯:刪除多行內容

然后也可以同時刪除多行內容:

先按住Alt鍵,選后同時選取多列:

然后松掉Alt鍵,點擊右鍵選擇刪除,或者直接按鍵盤上面的Delete鍵,都可以實現刪除所選的多行中對應部分的內容:


例 3.22. 列編輯:多行中插入相同或不同的內容

進入列編輯模式后,除了可以手動輸入內容外,也可以通過插入,實現輸入多行內容:

按住Alt鍵進入列編輯模式后:

然后松掉Alt鍵,點擊 編輯(E) ⇒ 列編輯 Alt+C:

然后在“插入文本”處,填寫你所要插入的內容:

此處填入想要插入的內容,即可同時插入多行內容:

同樣,可以看到,上面還有個“插入數字”的功能,可以插入自己所想要的某種序列的數字:

然后就可以看到插入了想要的數字了:


雖然上面只是一些基本操作,但是對於很多人,如果需要用到此功能,也會覺得很方便了。

3.6.3. Notepad++的列編輯模式的高級用法

其實,列編輯的功能的好處,在於相對更加復雜一點的用法。

下面就介紹一下,我之前所遇到的情況,以及如何利用列編輯模式,來提高工作效率的:

例 3.23. 列編輯:同時復制和粘貼多列

比如,我之前,需要得到這樣的xml內容:

即,需要在多個entry中,一點點輸入對應的數字和字母。

而數據來源,是來自另外已有的word文檔中的表格:

對此,一般傳統的辦法,那無外乎,一個個數字,和字母的從word中拷貝,然后粘貼到xml文件中對應的兩個entry的位置中去。

此種方法,效率及其低下不說,還很容易出錯,所以肯定不是好辦法。

但是如果不會用列編輯的話,那么好像也只能用此很笨的辦法,慢慢的去拷貝粘貼了。

下面就來看看,如果使用Notepad++的列編輯,是如何提高效率和准確度的:

首先當前是在目標xml文件中,已經有了對應的entry了:

然后,是想要通過列編輯的復制與粘貼,實現將word中對應表格中的內容,一列列粘貼過來的。

但是,之前由於對於列模式編輯不是很熟悉,導致直接從word中選中一列:

然后在Notepad++中先進入列編輯模式:

再直接去用Ctrl+V去粘貼,結果卻只是粘貼到第一個entry中,而不是整個列分別粘貼到對應的位置:

后來才知道,原來應該這么做:

同樣先是去word中拷貝對應的列的內容:

然后在Notepad++中,新建一個頁面,將拷貝的內容,粘貼到新建頁面中:

然后再用列模式去選取此部分內容:

然后Ctrl+C復制所選內容,再回到要粘貼的地方,同樣先是進入列模式:

然后再按Ctrl+V,這樣才可以正確的將通過列模式選取的內容通過(Ctrl+V)粘貼到列模式所選取的范圍內,即所選取的每一行的內容,粘貼到目標的每一行的位置:

[提示] 列模式粘貼的時候,會自動幫你去掉所選內容中的空白處,即可以調整被粘貼后的內容的寬度

此處,可以注意到,原先列模式去選取內容的時候,0到9的那些行,(至少顯示出來的效果中)是包含了多余的空格的:

以及0a到1f的行,是正常選取的全部內容,不包含空白的。

而粘貼出來的效果,可以看到,對應的0到9的行,是沒有多余的空格,是一個字符的寬度的,沒有被變成2個字符的寬度:

即,列編輯的時候,所選擇的內容中,顯示出來的效果中,好像是包含了空格,實際沒有,所以在粘貼出來后,不會多余出於的空格的。

話句話說,列編輯模式下,選取內容,和粘貼內容,會自動幫你計算好對應的內容的,不會(像我以為的)多余的插入(那些在選取時顯示出來的多余的)空格的

所以,這方面,個人覺得,其做得還是很人性化,或者說很符合用戶需求的。

按照上述方法,你可以去接着一列列的,去粘貼word中別的列的內容。

但是,如果你接着這么做的話,你卻發現,有些問題了。

因為經過上面第一列的粘貼,上面的0到9的那些行是一個字符寬度,而0a到1f卻是2個字符寬度,這導致接下來的想要選取第二列的所有的entry,以進入列編輯模式的話,就無法正確全部選擇對應的位置了:

即,0到9列,是可以正確的選擇了兩個"<entry>"中間的,但是0a到1f的列,卻都選擇了y和>之間了,位置錯了。

如此,想要接着實現列拷貝粘貼的話,一般人所能想到的,那就只是,先拷貝粘貼0到9列的,然后再拷貝粘貼0a到1f列的。

如果這么做的話,其對於此處只是被分為2個不同的列的位置去操作,也還算能接受。

但是如果被粘貼的內容,像后面的同一列中,既有1個字符寬度的,又有2個和3個字符寬度的,甚至其他更多字符的,那么一個完全的列,就被分為多個不連續的,可供列編輯操作的列了。

那結果就又幾乎回到了之前的手工慢慢的復制粘貼的效果了。

所以,還是要找到更好的解決辦法,盡量實現盡可能多的列,都實現一次性的列操作,這樣才能真正提高效率。

后來,偶發現了一個辦法,那就是,可以先操作左右邊的列,然后依次向左處理每一列,這樣就可以避免此問題。

之所以想到如此去做,是因為,右邊的列,即使每一列的內容寬度不同,但是不會影響到左邊的列的對齊,所以,就可以規避此問題了。

其具體做法很簡單,只是換個順序處理而已:

在word中,先復制最后一列的內容:

同樣的,粘貼到新建的Notepad++的頁面中,並以列模式去選取該內容:

然后用快捷鍵Ctrl+C去復制此內容,再回到要粘貼的地方,先以列模式選擇所要插入的位置:

然后Ctrl+V去粘貼此內容:

如此,就不會影響左邊的列了。

然后依次方法,依次處理每一列。

不過,當你處理到40那列的時候,你會發現,有些內容,卻折回到開始顯示了,即內容顯示出來,是換行的了:

但是看起來也是不影響繼續使用列模式的,但是當想要繼續選擇多列時,選中的效果卻變成了隔行的效果:

此處,看起來是隔行的列選擇,實際仍是每個行的列選擇,即,其實是不影響繼續列操作的。

和上述的隔行選擇的效果類似的,是處理到最后一列的時候:

實際上,看起來“穿”過了字符串"entry",而實際上,是不影響的entry字符串內容的。

如此繼續操作,就處理完畢所有的列了:

這也就是我們最開始所看的效果。

而如此的列操作,其實只是對於每一列,去復制粘貼一下,就可以實現,整個列的內容錄入了。

通過此列操作實現的多列同時錄入,不僅效率很高,而且還不容易出錯。


總之,有效利用列編輯模式,可以大幅度的提高做事情的效率和准確度。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM