Notepad++的列編輯功能
3.6. Notepad++的列編輯功能
3.6.1. 什麼是列編輯模式
普通編輯器,編輯文字的時候,選中一部分內容,都是在一行或多行的範圍內操作,從左到右的,所以,可以看做是行模式。
與此相對應的,就是上下方向的列模式了。
進入列模式後,操作順序和範圍,是在所選範圍內,從上到下的,比如全部插入某些字元等等,是在所選的列模式操作區域內,所涉及的每一行,都對應的插入這些字元。
當有些高階的操作,需要對不同的列,同時進行編輯的話,那麼列編輯模式,就非常有用了。
3.6.2. Notepad++的列編輯模式的基本操作
在Notepad++中,按住Alt鍵
比如,按住Alt鍵,此處從上到下,選擇多列:
例 3.13. 列編輯:多行輸入同樣內容
然後多行同時輸入同樣的內容,效果如下:
例 3.14. 列編輯:刪除多行內容
然後也可以同時刪除多行內容:
先按住Alt鍵,選後同時選取多列:
然後鬆掉Alt鍵,點選右鍵選擇刪除,或者直接按鍵盤上面的Delete鍵,都可以實現刪除所選的多行中對應部分的內容:
例 3.15. 列編輯:多行中插入相同或不同的內容
進入列編輯模式後,除了可以手動輸入內容外,也可以通過插入,實現輸入多行內容:
按住Alt鍵進入列編輯模式後:
然後鬆掉Alt鍵,點選 編輯(E) ⇒ 列編輯 Alt+C:
然後在“插入文字”處,填寫你所要插入的內容:
此處填入想要插入的內容,即可同時插入多行內容:
同樣,可以看到,上面還有個“插入數字”的功能,可以插入自己所想要的某種序列的數字:
然後就可以看到插入了想要的數字了:
雖然上面只是一些基本操作,但是對於很多人,如果需要用到此功能,也會覺得很方便了。
3.6.3. Notepad++的列編輯模式的高階用法
其實,列編輯的功能的好處,在於相對更加複雜一點的用法。
下面就介紹一下,我之前所遇到的情況,以及如何利用列編輯模式,來提高工作效率的:
例 3.16. 列編輯:同時複製和貼上多列
比如,我之前,需要得到這樣的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字串內容的。
如此繼續操作,就處理完畢所有的列了:
這也就是我們最開始所看的效果。
而如此的列操作,其實只是對於每一列,去複製貼上一下,就可以實現,整個列的內容錄入了。
通過此列操作實現的多列同時錄入,不僅效率很高,而且還不容易出錯。
總之,有效利用列編輯模式,可以大幅度的提高做事情的效率和準確度。