我经常对字符串集进行一些操作,通常它与 Notepad++ 中的正则表达式配合得很好。很久以前,我记得使用过一些工具,可以记录一个 Action 并执行相同的操作。例如,假设我有这个字符串。请记住这只是一个示例。
First Name,Last Name,Social Security
我想将其转换为以下内容:
first_name("First Name"),last_name("Last Name"),social_security("Social Security")
有什么方法可以使用文本编辑器来做到这一点吗?我经常有此类要求。我记得用 vim 做过类似的事情。
最佳答案
可以使用 vim 宏来完成,但“简单”替换更适合
:s/\(^\|,\)\(\S\+\) \(\S\+\)\(,\|$\)/\l\2_\l\3("\2 \3")/g
或者您可以在 vim
中使用 awk
(sed
等),例如:
:%!awk 'BEGIN {FS=","} { print whatever you modified your columns }'
对于宏,类似于 qayt,Pi("ESCf, i")ESCF2ESCF2 kbd>空格r_l~0 ~q
但这仅部分有效......(对于第一列)基本上:
- qa将宏记录到
a
寄存器 - yt,(假设我们位于行中的第一个字符,这会拉动直到第一个
,
- P 将拉出的测试放在实际光标位置之前(即该行的第一个字符)
- (保持光标位置)i("ESC 插入
("
,然后离开插入模式 - f,i")ESC 找到下一个空格并插入
")
之前 - F2SPACEr_ 查找第二个
空格
向后,并替换为_
- l~0~q 移动到下一个字符,然后更改其将大小写降低,然后移至该行的第一个字符,并更改大小写,最后退出录制宏。
然后通过 @a 从正常模式运行宏。
Vim 非常有能力。
关于regex - 文本编辑器 : Macros To Manipulate Strings,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12715924/