如何用 vim 将文档中的所有单词换行?
How to wrap all words in a document with vim?
Here 是文件,第 97 行及以下是我想放入 python 字典中的行,想法是冒号 ':' 左侧的单词将变为键和它的右侧将是值。所有键和值都必须是字符串,为此我需要将所有单词(从第 97 行及以下)用引号引起来。所以问题是 如何将文档中的所有单词用引号括起来?
我这样做的目的是获取列名,用于机器学习的预处理。如果您有兴趣,可以找到没有名称的列 here.
如果您不 post 代码,则很难确切地知道您的意思(不,我不会从网上随机的人那里下载并打开一个名为 adult.names 的文件互联网)。但是,如果您只想将每个单词都用引号引起来,则可以使用全局替换:
:%s/\w\+\ze[\s, \n, :]\+/"[=10=]"/g
解释:
:s/regex/text
将在当前行用 text
替换 regex
匹配的任何内容。
- 在开头添加一个
%
,它将对所有行执行此操作。
- 如果您只想对文档的一部分执行此操作,请进行视觉选择,然后 运行 此命令不带
%
。
\w
匹配一个单词字符
\ze
结束匹配(因此您可以指定匹配的内容之后的内容)
[\s, \n, :]
表示匹配空格、换行符和冒号,后面的 \+
表示匹配其中的非零个数(即至少一个空白字符或换行符或冒号) .
所有这些加在一起意味着它会单独匹配每个单词。
- 然后,对于每个匹配的单词,它用引号替换它,然后是
[=20=]
(表示之前替换的第一个词)和另一个引号。
- 末尾的
/g
意味着它会在每一行找到正则表达式时多次执行此替换。否则它只会替换每一行的第一个匹配项。
结果应该是每个单词都用引号引起来。但同样,如果不了解您正在使用的内容,就很难测试并找到正确的解决方案。以后请把相关代码放在你的post.
Here 是文件,第 97 行及以下是我想放入 python 字典中的行,想法是冒号 ':' 左侧的单词将变为键和它的右侧将是值。所有键和值都必须是字符串,为此我需要将所有单词(从第 97 行及以下)用引号引起来。所以问题是 如何将文档中的所有单词用引号括起来?
我这样做的目的是获取列名,用于机器学习的预处理。如果您有兴趣,可以找到没有名称的列 here.
如果您不 post 代码,则很难确切地知道您的意思(不,我不会从网上随机的人那里下载并打开一个名为 adult.names 的文件互联网)。但是,如果您只想将每个单词都用引号引起来,则可以使用全局替换:
:%s/\w\+\ze[\s, \n, :]\+/"[=10=]"/g
解释:
:s/regex/text
将在当前行用text
替换regex
匹配的任何内容。- 在开头添加一个
%
,它将对所有行执行此操作。- 如果您只想对文档的一部分执行此操作,请进行视觉选择,然后 运行 此命令不带
%
。
- 如果您只想对文档的一部分执行此操作,请进行视觉选择,然后 运行 此命令不带
\w
匹配一个单词字符\ze
结束匹配(因此您可以指定匹配的内容之后的内容)[\s, \n, :]
表示匹配空格、换行符和冒号,后面的\+
表示匹配其中的非零个数(即至少一个空白字符或换行符或冒号) .
所有这些加在一起意味着它会单独匹配每个单词。
- 然后,对于每个匹配的单词,它用引号替换它,然后是
[=20=]
(表示之前替换的第一个词)和另一个引号。 - 末尾的
/g
意味着它会在每一行找到正则表达式时多次执行此替换。否则它只会替换每一行的第一个匹配项。
结果应该是每个单词都用引号引起来。但同样,如果不了解您正在使用的内容,就很难测试并找到正确的解决方案。以后请把相关代码放在你的post.