文本编辑器:操作字符串的宏

时间:2012-10-03 19:59:35

标签: regex macros automation text-editor

我经常在字符串集上做一些操作,一般来说我在Notepad ++中使用正则表达式很好。很久以前我记得使用一些可以录制动作并执行相同操作的工具。例如,假设我有这个字符串。请记住,这只是一个例子。

First Name,Last Name,Social Security 

我想将其转换为以下内容:

first_name("First Name"),last_name("Last Name"),social_security("Social Security")

使用某些文本编辑器有没有办法做到这一点?我经常有这些类型的要求。我记得使用vim做类似的事情。

3 个答案:

答案 0 :(得分:2)

可以使用vim宏完成,但“简单”替换更适合

:s/\(^\|,\)\(\S\+\) \(\S\+\)\(,\|$\)/\l\2_\l\3("\2 \3")/g

或者您可以在awk内使用sedvim,无论如何),例如:

:%!awk 'BEGIN {FS=","} { print whatever you modified your columns }'

使用宏,类似 q a y t P ESC ˚F ESC ˚F 2 SPACE - [R _ 0 q

但这只是部分有效......(对于第一栏)基本上:

  1. q a 将宏记录到a寄存器
  2. y t (假设我们在该行中的第一个字符处,这一直到第一个, < / LI>
  3. P 将猛拉的测试放在实际光标位置之前(即行上的第一个字符)
  4. (维持光标位置) i ESC 插入(",然后离开插入模式
  5. ˚F ESC 找到下一个空格并在
  6. 之前插入")
  7. F 2 SPACE r _ 找到第二个{{1}向后,并替换为space
  8. l 0 q 移动到下一个字符然后更改其降低的情况下,然后移动到第一行的char,并改变那种情况,最后退出录制宏。
  9. 然后通过 @ a 从正常模式运行宏。

    Vim很有能力。

答案 1 :(得分:0)

事实上,vim允许你做这种事情。使用Vim Macro功能,您可以在编辑器中记录和播放一系列操作。根据我的经验,它非常强大,比其他文本编辑器更强大(因为vim本身的编辑基于命令序列。) 但是,如果您不熟悉vim,则需要时间来学习如何使用vim。但它最终将导致高效的文本编辑和编码。

使用vim有很多优点。互联网上有很多文章也在解释它们。我建议谷歌搜索一下,所以你可以自己决定。

答案 2 :(得分:0)

您还可以尝试使用java multiplatform免费开源工具jEdit

它提供宏录制和编辑。

宏在BeanShell中被转储/写入,jEdit扩展了一组记录的API,允许通过宏实现任何你想要的。

jEdit community共享了许多宏脚本。