代码之家  ›  专栏  ›  技术社区  ›  derekerdmann

删除Vim中的换行符

  •  244
  • derekerdmann  · 技术社区  · 14 年前

    例如:

    Evaluator<T>():
        _bestPos(){
    }
    

    最终结果:

    Evaluator<T>(): _bestPos(){ }
    

    这在维姆有可能吗?

    12 回复  |  直到 14 年前
        1
  •  569
  •   Tuna Valknut    8 年前

    如果您在第一行,请按(大写) J型 3J 将所有3行合并在一起。

        2
  •  79
  •   TinkerTank    14 年前

    在命令模式下类型:

    :%s/\n/
    
        3
  •  50
  •   Mateusz Piotrowski Reinstate Monica Please    8 年前

    在正常模式的上线时,点击 移位 j型 .

    你也可以预先数数,所以 3J 在最上面的一行将所有这些线连接在一起。

        4
  •  32
  •   ephemient    14 年前

    J /[.!?]$/ ,可以插入两个空格;在 /^\s*)/ ,不插入空格。)

    如果你不想那样做, gJ 只需删除换行符,对空格一点也不聪明。

        5
  •  30
  •   Néstor Waldyd    5 年前

    J 搜索+替换 \n 通常可用于分隔换行符和连接行。

    在最后一行 ,您需要在Vim中执行此操作:

    :set noendofline binary
    :w
    
        6
  •  10
  •   kzh    11 年前

    使用普通映射:

    + J型

    使用Ex命令:

    :,+2j
    

    :.,.+2 join
    

    也可以通过以下快捷方式输入:

    : j型

    :j3
    
        7
  •  6
  •   laktak    8 年前
    set backspace=indent,eol,start
    

    在您的.vimrc中将允许您使用 backspace delete \n

    set whichwrap+=<,>,h,l,[,]
    

    允许您在正常模式下删除前一个LF X (在第1列时)。

        8
  •  2
  •   Wolph    14 年前

    这可能取决于你的设置,但我通常用 A<delete>

    A 在行尾追加。可能需要 nocompatible 模式:)

        9
  •  2
  •   Ivan Lopes    11 年前
    <CURSOR>Evaluator<T>():
        _bestPos(){
    }
    

    光标在第一行

    现在,在正常模式下

    shift+v
    2j
    shift+j
    

    V2jJ
    

    :正常V2jJ

        10
  •  1
  •   David Watson    14 年前

    我只需在要删除换行符的行上按A(追加到行尾,使您进入插入模式),然后按delete。

        11
  •  1
  •   ghostdog74    14 年前

    tr -d "\n" < file >t && mv -f t file
    
    sed -i.bak -e :a -e 'N;s/\n//;ba' file
    
    awk '{printf "%s",$0 }' file >t && mv -f t file
    
        12
  •  1
  •   Sergio Abreu    8 年前

    问题是不可见的字符0A(\n)的倍数可能会累积。 Supose要从第100行清理到最后:

    键入ESC和:(终端指挥官)

    :110,$s/^\n//
    

    execute '110,$s/^\n//'
    

    解说:从110到结束 搜索以新行开头的行(为空) 把它们移走