如何在vim中将字节\xe3\x80\x80替换为字节\x20?

如何在vim中将字节\xe3\x80\x80替换为字节\x20?,vim,substitution,Vim,Substitution,让我们创建要使用的目标文件 python3 >>> mfile = open("f:/test.txt","wb") >>> mfile.write(b'\xe3\x80\x80') 3 >>> mfile.close() 现在用xxd打开f:/test.txt,您将看到其中有三个字节\xe3\x80\x80,我们用utf-8编码的目标文件包含三个字节\xe3\x80\x80 python3 b'\xe3\x80\x80'.decode('

让我们创建要使用的目标文件

python3
>>> mfile = open("f:/test.txt","wb")
>>> mfile.write(b'\xe3\x80\x80')
3
>>> mfile.close()
现在用
xxd
打开
f:/test.txt
,您将看到其中有三个字节
\xe3\x80\x80
,我们用
utf-8
编码的目标文件包含三个字节
\xe3\x80\x80

python3
b'\xe3\x80\x80'.decode('utf-8')
'\u3000'
这意味着使用
utf-8
编码的
test.txt
中三个字节的unicode是
3000

:s/\%u3000/ /g
s/\%u3000//g
可以在vim中将字节
\xe3\x80\x80
替换为字节
\x20

问题仍然存在

:s/\%u3000/\%u20/g 
:s/\%u3000/\%x20/g
:s/\%u3000/\x20/g
以上三种格式都不能工作,为什么在vim中
\%u3000
可以表示
\%xe3\x80\x80
(白色空白)不能表示为
\%u20
\%x20
\x20

可以表示
\x20
,白色空白是可打印字符,而且,我想用拉丁语-1的
nbsp
替换三个字节
\xe3\x80\x80

拉丁语-1编码中的
nbsp
表示不间断空格,这是不可打印的字符,如何在vim中编写表达式

:s/\%u3000/\%ua0/g 
:s/\%u3000/\%xa0/g
:s/\%u3000/\xa0/g

它们都不适用于这种情况。

您可以键入
\xe3\x80\x80
u3000
字符,方法是按ctrl+v,然后按u,然后按4个Unicode字符,在您的情况下,
3000
(选中),因为这是一个黑色字符,您只能看到一个空格,您可以键入
:set list
查看您拥有该字符的所有位置,或者在任何情况下将其添加到
。vimrc

set listchars=tab:▸\ ,eol:¬,trail:·,extends:#,nbsp:.
现在,与输入字符的方式相同,您可以尝试在命令行中替换它,但在本例中,要输入ctrl+v,您可以尝试使用命令行窗口(
:help cedit

进入命令模式,在执行以下操作后:按ctrl+f将打开命令行窗口,您可以在其中进入插入模式并键入:
%s/
ctrl+vu
3000//g
,完成后按enter应用命令

在进入命令行窗口之前,请先尝试一下,因为使用ctrl+v时可能会起作用,而不像使用ctrl+k()


在图像中,不是用空格替换,而是用
-
替换,只是为了直观地看到更改。

您可以键入
\xe3\x80\x80
u3000
字符,方法是按ctrl+v,然后按u,然后按4个Unicode字符,在您的情况下,
3000
(选中),由于是黑色字符,您只能看到一个空格,因此可以键入
:set list
查看该字符所在的所有位置,或者在任何情况下将其添加到
。vimrc

set listchars=tab:▸\ ,eol:¬,trail:·,extends:#,nbsp:.
现在,与输入字符的方式相同,您可以尝试在命令行中替换它,但在本例中,要输入ctrl+v,您可以尝试使用命令行窗口(
:help cedit

进入命令模式,在执行以下操作后:按ctrl+f将打开命令行窗口,您可以在其中进入插入模式并键入:
%s/
ctrl+vu
3000//g
,完成后按enter应用命令

在进入命令行窗口之前,请先尝试一下,因为使用ctrl+v时可能会起作用,而不像使用ctrl+k()


在图像中,不是替换为空白
/
,而是替换为
---
,只是为了直观地看到更改。

1.在vim中编辑文件时,如何输入不可打印的字符

在插入模式下:

1.ctrl+v (ctrl+q if ctrl+v call paste from regitor)
2.input u 
3.input the unicode value of non printable characters
4.input enter key
2.如何在vim的ex模式的替换命令中输入不可打印的字符

例如,要用
\xa0
替换所有字节
\xe3\x80\x80
,所有字节的编码都是utf-8

1. get the byte's unicode value 

`\xe3\x80\x80`'s unicode value is `3000`,   
`\xa0`'s unicode value is `a0`.

2.press `:` into ex mode.
3.:s/\%u3000/    
4:ctrl+v ua0  
do not input enter as above process
5.go on to input `/g`.
6.press enter.

1.在vim中编辑文件时如何输入不可打印字符

在插入模式下:

1.ctrl+v (ctrl+q if ctrl+v call paste from regitor)
2.input u 
3.input the unicode value of non printable characters
4.input enter key
2.如何在vim的ex模式的替换命令中输入不可打印的字符

例如,要用
\xa0
替换所有字节
\xe3\x80\x80
,所有字节的编码都是utf-8

1. get the byte's unicode value 

`\xe3\x80\x80`'s unicode value is `3000`,   
`\xa0`'s unicode value is `a0`.

2.press `:` into ex mode.
3.:s/\%u3000/    
4:ctrl+v ua0  
do not input enter as above process
5.go on to input `/g`.
6.press enter.