Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/vim/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vim在新品系上的奇怪行为_Vim - Fatal编程技术网

Vim在新品系上的奇怪行为

Vim在新品系上的奇怪行为,vim,Vim,DOS新行(0d0a)有问题,我试图在vim中替换它。我以前相信make已经有好几次了,但现在我真的被卡住了,因为vim不想看到这个角色: 当我试图通过按CTRLV和CTRLM来输入它以运行:%s/^M//g时,我看到了错误: E486:找不到模式:^M 即使当我试图用十六进制代码替换它为:%s/\%x0d//g,我也看到了错误: E486:找不到模式:\%x0d 一、 但是,可以删除/替换其他字符,例如:%s/\%x61//g 当我尝试:%s/\n/\r/g时,什么都没有发生 当我尝试用:%s

DOS新行(
0d0a
)有问题,我试图在
vim
中替换它。我以前相信make已经有好几次了,但现在我真的被卡住了,因为
vim
不想看到这个角色:

  • 当我试图通过按
    CTRL
    V
    CTRL
    M
    来输入它以运行
    :%s/^M//g
    时,我看到了错误:

    E486:找不到模式:^M

  • 即使当我试图用十六进制代码替换它为
    :%s/\%x0d//g
    ,我也看到了错误:

    E486:找不到模式:\%x0d

    一、 但是,可以删除/替换其他字符,例如
    :%s/\%x61//g

  • 当我尝试
    :%s/\n/\r/g
    时,什么都没有发生

  • 当我尝试用
    :%s/\n/XXX/g
    :%s/XXX//g
    分两步删除它时,它会消失。但是,如果我在第二步中使用了
    :%s/XXX/\r/g
    ,vim将
    0d 0a
    插回,而不是预期的
    0a


  • 因此,问题是:是否有办法将
    vim
    中的所有新行转换为
    0a
    ?为什么十六进制替换不起作用?

    请参见
    :帮助“文件格式”

    :set ff=unix
    :w
    
    我应该这样做

    顺便说一下,这是匹配的换行符:

    :%s/\n/\r/
    
    但它用新行替换新行,当你 写入缓冲区vim将使用任何行结束 由“文件格式”确定