如何在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+vu3000//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+vu3000//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.