zoukankan      html  css  js  c++  java
  • 【转】轻量级文本编辑器,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字符串内容的。

    如此继续操作,就处理完毕所有的列了:

    这也就是我们最开始所看的效果。

    而如此的列操作,其实只是对于每一列,去复制粘贴一下,就可以实现,整个列的内容录入了。

    通过此列操作实现的多列同时录入,不仅效率很高,而且还不容易出错。


    总之,有效利用列编辑模式,可以大幅度的提高做事情的效率和准确度。

  • 相关阅读:
    2407: C语言习题 整数转换成字符串
    2484: 字母图形
    1658: Easier Done Than Said?
    Easier Done Than Said?(应用到的知识)
    1653: Champion of the Swordsmanship
    1614: 五位以内的对称素数
    1612: 最小公倍数
    $ vs $()
    数学
    计算机科学与技术课程
  • 原文地址:https://www.cnblogs.com/wi100sh/p/5209275.html
Copyright © 2011-2022 走看看