Vim 用 unicode 字符替换

     2023-04-13     49

关键词:

【中文标题】Vim 用 unicode 字符替换【英文标题】:Vim replace with unicode character 【发布时间】:2013-02-02 17:08:57 【问题描述】:

我已经看到有关如何使用 :help regexp 和 \%u 在 vi​​m 中搜索 unicode 字符的提示,但我无法弄清楚如何用十六进制定义的 unicode 字符替换文本。

特殊情况是 DefaultKeyBindings.dict 需要 cmets 将在注释中打印该行中映射的字符。

开始:

blah blah...\U2234  

命令:

:s/\v.*\\U(\d4)/& \/\*\\\\%u\1 \*\/  

结果:

blah blah...\U2234 /*\%u2234 */  

目标:

blah blah...\U2234 /* ∴ */

【问题讨论】:

【参考方案1】:

您需要将十六进制 Unicode 值的字符串表示形式转换为它所表示的实际字符。这是nr2char() 的任务,可以通过:help sub-replace-expression 嵌入到替换中:

:substitute+\v.*\\U(\d4)\zs+\='/* '.nr2char(str2nr(submatch(1),16)).' */'+

Protip:使用不同的分隔符(我选择了+ 而不是/),那么你就不需要转义了。

【讨论】:

哈,打败我了,还有一个更好的答案,很好地使用\zsstr2nr()。请注意,'encoding' 必须设置为 UTF-8 才能使nr2char() 工作,请参阅:h nr2char()【参考方案2】:

您可以在替换文本中使用带有\= 的表达式。将此与nr2char() 函数结合起来,以获得可行的解决方案。这是一个开始:

s^.*\\U\(\d\4\)^\=submatch(0).' // '.nr2char(printf('%d','0x'.submatch(1)))

这将转换行

Bla bla ... \U2234

Bla bla ... \U2234 // ∴

根据nr2char() 函数的要求,我使用printf() 将十六进制数转换为十进制数。我确信这可以改进。

请注意,您必须将 'encoding' 设置为 UTF-8 才能使其正常工作,请参阅 :h nr2char()

【讨论】:

【参考方案3】:

几乎没有那么优雅,但包含在此处以供将来的读者阅读。

:%s#\U2234#/* ∴ */#

然后输入 Control-V u 2 2 3 4 在表达式中创建角色。

字符上的相关注释“ga”将告诉您 Unicode 值以及键入它的二合字母方法(如果有)。

【讨论】:

vim中的正则表达式unicode字符

】vim中的正则表达式unicode字符【英文标题】:regexunicodecharacterinvim【发布时间】:2011-03-0207:28:49【问题描述】:我是个白痴。有人从microsoftword中剪切并粘贴了一些文本到我可爱的​​html文件中。我现在有这些un​​icode字符而不... 查看详情

python unicode用空字符串替换反斜杠u

】pythonunicode用空字符串替换反斜杠u【英文标题】:pythonunicodereplacebackslashuwithanemptystring【发布时间】:2021-03-2819:30:37【问题描述】:我正在清理一个pandas数据框,并遇到其中包含u的unicode字符串,其中包含一个反斜杠,而不是我... 查看详情

如何在 Vim 中用换行符替换字符

】如何在Vim中用换行符替换字符【英文标题】:HowtoreplaceacharacterbyanewlineinVim【发布时间】:2010-09-0910:29:15【问题描述】:我正在尝试用新行替换当前文件中的每个,::%s/,/\\n/g但它会插入看起来像^@的东西,而不是实际的换行符。... 查看详情

如何从雪花中删除 Unicode 替换字符

】如何从雪花中删除Unicode替换字符【英文标题】:HowtoremoveUnicodereplacementcharacterfromSnowflake【发布时间】:2020-02-2521:33:01【问题描述】:使用COPYINTO命令将数据加载到Snowflake时,有一个名为:REPLACE_INVALID_CHARACTERS的参数。根据文档... 查看详情

求一些vim用快捷键例:删除某行某个字符后所有字符(只删除到这一行末)替换(某行/全文)某字符串

参考技术A类似的快捷键很多。要想用好vim首先要理解vim的很多设计。这样不仅熟悉得更快,很多命令也可以举一反三。vim的很多编辑命令,都要附加一个移动命令。而且vim细致的移动方法,使这种结合变得灵活且强大。比如d是... 查看详情

如何替换 Java 中不可打印的 Unicode 字符?

】如何替换Java中不可打印的Unicode字符?【英文标题】:HowcanIreplacenon-printableUnicodecharactersinJava?【发布时间】:2011-09-0603:20:36【问题描述】:以下内容将替换ASCII控制字符([\\x00-\\x1F\\x7F]的简写):my_string.replaceAll("\\\\pCntrl","?");... 查看详情

中文字符替换为其unicode编码值小3的字符

...得用户输入的一个中文字符串,将所有中文字符替换为其Unicode编码值小3的字符,并在一行内打印输出结果。完善代码。答案:ord(ch)-3 参考技术B获得用户输入的一个中文字符串,将所有中文字符替换为其Unicode编码值小3的字符,... 查看详情

如何替换我只有 unicode 表示的字符?

】如何替换我只有unicode表示的字符?【英文标题】:HowcanIreplaceacharacterfromwhichIonlyhavetheunicoderepresentation?【发布时间】:2017-07-1813:09:26【问题描述】:我有一个字符串,在Notepad++中显示时显示为:App.xEFxBFxBF35tockenEFxBFxBF接缝是一... 查看详情

如何将拉丁 unicode 字符替换为 [a-z] 字符

】如何将拉丁unicode字符替换为[a-z]字符【英文标题】:howtoreplaceLatinunicodecharacterto[a-z]characters【发布时间】:2015-12-1911:44:28【问题描述】:我正在尝试将所有拉丁unicode字符转换为他们的[a-z]表示ó-->oí-->i我可以很容易地一一... 查看详情

vim使用替换命令

命令英文功能工作模式rreplace替换当前字符(只能替换一个字符)命令模式Rreplace进入替换模式替换模式"R"命令进入替换模式。替换完成之后,按下"Esc键"可以返回到命令模式。注意:替换命令的作用就是不用进入编辑模式,对文... 查看详情

替换给定 unicode 字符串中的所有表情符号

】替换给定unicode字符串中的所有表情符号【英文标题】:Replaceallemojisfromagivenunicodestring【发布时间】:2019-04-2208:02:10【问题描述】:我有一个来自emoji包的unicode符号列表。我的最终目标是创建一个函数,将unicode字符串作为输入... 查看详情

替换 T-SQL 中的 Unicode 字符

】替换T-SQL中的Unicode字符【英文标题】:ReplaceUnicodecharactersinT-SQL【发布时间】:2015-05-1419:00:55【问题描述】:如何只替换字符串的最后一个字符:selectREPLACE(\'thisisthenewswithaþ\',\'þ\',\'__\')我得到的结果是:__isis__enewswi__a__编辑服... 查看详情

如何在 SQL 中处理 Unicode 替换字符 � (0xFFFD / 65533)

】如何在SQL中处理Unicode替换字符�(0xFFFD/65533)【英文标题】:HowtodealwithUnicodereplacementcharacter�(0xFFFD/65533)inSQL【发布时间】:2015-07-2605:52:59【问题描述】:我几乎不知道一周前就存在Unicode替换字符(�)。现在我了解到至少在SQL中... 查看详情

vim:全局替换

vim全局替换文件:语法为:[addr]s/源字符串/目的字符串/[option]全局替换命令为::%s/源字符串/目的字符串/g[addr]表示检索范围,省略时表示当前行。如:“1,20”:表示从第1行到20行;“%”:表示整个文件,同“1,$”;“.,$”:从... 查看详情

vim编辑器小练习

...找替换命令去删除/tmp/grub2.cfg文件中的每一行行首的空白字符2、复制/etc/rc.d/init.d/functions至/tmp/目录,用查找替换命令为/etc/rc.d/init.d/functions的每行开头为空白字符的行的行首添加一个#号3、复制/etc/init.d/functions文件至/tmp目录,替... 查看详情

vim选择并替换(代码片段)

...在normal模式下按下/即可进入查找模式,输入要查找的字符串并按下回车。Vim会跳转到第一个匹配。按下n查找下一个,按下N查找上一个。Vim查找支持正则表达式,例如/vim$匹配行尾的"vim"。需要查找特殊字符需要... 查看详情

如何在 Python 中用 ascii 字符替换 unicode 字符(给定的 perl 脚本)?

】如何在Python中用ascii字符替换unicode字符(给定的perl脚本)?【英文标题】:HowtoreplaceunicodecharactersbyasciicharactersinPython(perlscriptgiven)?【发布时间】:2011-02-1115:39:49【问题描述】:我正在尝试学习python,但不知道如何将以下perl脚... 查看详情

如何在 perl 正则表达式替换命令中使用 unicode 字符?

】如何在perl正则表达式替换命令中使用unicode字符?【英文标题】:HowcanIuseunicodecharactersinperlregexsubstitutioncommand?【发布时间】:2022-01-1807:43:04【问题描述】:这在使用unicode字符时不起作用(在Ubuntubash中):$perl-pC-e\'s/[à]/a/gu\'<... 查看详情