我正在寻找一个免费的编辑器,该编辑器允许我仅编辑文本文件的特定列(最好仅在一系列连续的行上)。
NotpePad ++,Crimson Editor(在开发中似乎更长)和UltraEdit(在开发中不是免费的)都声称具有列模式,但这仅是复制/粘贴矩形区域的能力。一个文本文件。
虽然很好,但我希望他能够搜索/替换文本并将其限制为一个范围或连续的列,最好在一系列连续的行上。
一个不好的例子: >
Tim likes beer
Toms likes beer very much
Bob does not like either beer or wine
Ann likes beer, and also wine (and the Oxford comma ;-)
如果我想将第10列和第20列之间的所有“啤酒”更改为“鱼”,结果将是(大写的更改)。
1 2 3 4
1234567890123456789012345678901234567890
1 Tim likes beer
2 Toms likes beer very much
3 Bob does not like either beer or wine
4 Ann likes beer, and also wine
作为奖励,我还想将它限制在某些行,比如说2到4行,其中c例如,结果是:
1 2 3 4
1234567890123456789012345678901234567890
1 Tim likes FISH
2 Toms likes FISH very much
3 Bob does not like either beer or wine<=== not changed, not between cols 10 & 20
4 Ann likes FISH, and also wine
问题:有谁知道(最好是免费的)Widows文本编辑器可以做到这一点?
#1 楼
即使我还没退休,我“已经足够大,可以记住IBM大型机上的ISPF编辑器”:我仍然每天或多或少地使用(并喜欢)它。要实际回答您的问题,我建议您看看SPFLite。这是来自维基百科的报价:在PC环境中使用的编辑器通常以与大型大型机系统上使用的编辑器不同的方式运行。 PC编辑器几乎都是面向字符流的,而大型机编辑器通常是面向文本行的。需要同时在PC和大型机上工作的用户需要以两种不同的工作方式来提高工作效率。
SPFlite是一个免费的文件管理器和文本编辑器,可在Windows PC上为使用过的用户提供熟悉的工作环境。到基于IBM大型机的ISPF。除了提供基本的ISPF功能兼容性之外,SPFLite还添加了扩展功能以增强编辑能力。
在编辑模式下打开文件后,您只需用一个即可解决您的(样本)问题这个(主要的)编辑命令:
c beer fish 10 20 all
但是,还有更多...如果您还用(例如)
.f
标记您的第2行,并用.l
标记您的第4行,您的奖金问题可以可以通过以下命令得到答案:c beer fish 10 20 all .f .l
容易,不是吗?
#2 楼
Notepad ++ / 2插件:“ Python脚本”和“ ColReplace”我为您编写了一个自定义插件。
您需要:
Notepad ++
Python脚本-Notepad ++插件
ColReplace –请遵循以下安装说明
所有三个产品是免费的。
所有三个产品(仅)在Windows上运行。
ColReplace可以根据行和列的限制进行替换。
ColReplace
用于Notepad ++的插件,它提供了行和列受限的搜索/替换功能。
我以前从未用Python编写过代码,因此该代码可能不是很pythonic。欢迎任何建议或改进!
安装
将ColReplace的存储库下载为ZIP文件:单击此处并将文件解压缩到任意位置。
打开记事本++
在菜单中单击
Plugins --> Python Script --> New Script
选择
ColReplace.py
作为文件名,然后单击“保存”。将提取的
ColReplace.py
的内容复制到您在步骤#中刚刚创建的文件中。 5. 用法
在菜单中单击
Plugins --> Scripts --> ColReplace
。出现的对话框应该不言自明。
屏幕截图
诚然,可以改善用户体验:)
评论
不管我个人有多少记事本++都不感兴趣,简单的+1并不能解决从提出可用软件问题到发布自定义开源插件来解决问题的5小时的转换!这样的事情会使这个站点变得很棒。
–卡莱布
2014年6月9日在12:26
经过测试和工作!感谢1,000,000。我希望我可以为此提供一些S.O积分。当我在这里获得更多积分时,我会回来并奖励这一点。如果我忘记了,请提醒我。并且再次感谢您!
–莫格说要恢复莫妮卡
2014年6月10日在2:43
这激发了我编写自己的一些插件的代码(这是我应该做的第一件事)
–莫格说要恢复莫妮卡
2014年6月10日在2:46
@Mawg非常欢迎您:)非常感谢您的出色反馈。
– ComFreek
2014年6月10日12:23
这太诱人了,无法发布竞争性答案...
– Pierre.Vriens
20-2-8在18:39
#3 楼
vim
编辑器可以立即执行此操作¹。有一个用于gvim的简单Windows安装程序,或者可以通过Chocolaty,cygwin等安装各种版本。Vim是一种模式编辑器,这意味着编辑器窗口可以处于几种状态,包括插入(在其中插入文本),普通(在其中击键激活操作文本的命令)和视觉(在其中可以选择文本块)。
视觉模式可以通过以下三种方式之一选择文本:
按字符选择一行或多行字符。
按行选择整行。
按列选择矩形的有界字符按行/列位置。
通过在正常模式下将光标移到矩形的一个角上并按Ctrlv,然后将光标移到另一个角来激活后者。此时,您将看到该列突出显示。
接下来,您需要发出搜索和替换命令,以在当前(或最后一个)视觉选择中查找匹配项:
:%s/\%Vbeer/fish/g
请注意,这将匹配在选择内部开始的任何“啤酒”实例,即使它们在选择外部结束。如果您不希望这种行为,可以将搜索的两个方向都锚定在选择内容内:
:%s/\%Vbeer\%V/fish/g
还要注意,该命令中的前导
%
告诉vim对整个文件进行操作。如果从可视模式直接进入命令模式(按:),则提示将预先填充前缀:'<,'>
,该前缀仅在所选范围内起作用。可以很好地使用它,但是由于搜索和替换功能是按行操作的,因此您仍然需要使用\%V
实际上只匹配选择内容。:'<,'>s/\%Vbeer/fish/g
要快速浏览您可以使用列模式进行的其他操作,请观看此VimCast视频。
¹这并不意味着您将可以直接使用该编辑器。有个老笑话,如果您想要一串好的随机文本,请使用VIM进行编程,然后让他们退出编辑器。如果您不熟悉vim,可能需要花一些时间学习一些入门教程,以便您至少了解如何打开,编辑,保存和退出编辑器的基础知识。使用范例与Windows上可能经常使用的大多数应用程序有些不同。它可能非常强大,但是在尝试此答案中详述的更高级用法之前,请花点时间掌握基础知识。
#4 楼
SynWrite编辑器:如果选择列块(从第2行到第4行,从第10列到第20列),则可以在此选择中执行全部替换。(这是“替换”对话框中的选项)。
评论
+1谢谢。 uvviewsoft.com/synwrite看起来不错。由于我已经使用过NotePad ++,所以我可能会继续使用它,但是其他人可能想要考虑SynWrite
–莫格说要恢复莫妮卡
14年6月13日在3:11
评论
关于您的“大到足以记住IBM大型机上的ISPF编辑器”:我仍然每天或多或少地使用(并喜欢)它……PS(如果您要开个玩笑):什么(简短)如果保存了名为“ NOT”的PDS成员,则显示为ISPF消息(右上)……的确,“未保存成员”……为名为POSSIBLY的成员考虑类似的消息...Windows可以使用吗?
是的,这是...请参阅我刚刚发布的答案...
赏金恩赐!
您最后一次评论中的最后一句话到底是什么意思?