vim 空格和换行的删除和替换

vim 空格和换行的删除和替换


%s/\s//g
%s/\r//g
%s/\n//g

把一个很长的一行按空格分为多行

:%s/ +/\r/g
简单解释一下:
%s :在整个文件范围查找替换
/ :分隔符

  • :匹配空格,其中“ ”表示空格,+表示重复1次或多次,加在一起表示一个或多个空格。
    /r :换行符
    /g :全局替换

删除文章中的空行
:g/^s* / d 简 单 解 释 一 下 : g : 全 区 命 令 / : 分 隔 符 s ∗ /d 简单解释一下: g :全区命令 / :分隔符 ^s* /dg/s :匹配空行,其中^表示行首,s表示空字符,包括空格和制表符,*重复0到n个前面的字符,$表示行尾。连起来就是匹配只有空字符的行,也就是空行。
/d :删除该行

删除行尾空格:
:%s= * = = 该 命 令 全 局 查 找 文 本 文 件 的 行 尾 空 格 并 删 除 。 解 释 : = 为 == 该命令全局查找文本文件的行尾空格并删除。 解释: %s全局查找替换 =为%s命令的分隔符,如果把=换为/,则该命令可以写为:%s/ * ===//
” *$”, $表示行尾,*匹配前面0个到n个字符,*前面是空格,因此此正则表达式匹配行尾的0个到n个字符。
==,分隔符没有中间没有内容,表示删除匹配空格, 在这里表示删除行尾空格。

如何快速去掉^M呢,采取以下步骤就行了:

  1. vi dosfilename
  2. Press Esc
  3. Enter this string: %s/^M//g (^M = Ctrl v + Ctrl m)
  4. Press enter (the ^M cleared!)
  5. :wq! (save the file)

换行方式

在早期的打印机时代,开始新的一行要占用两个字符的时间。如果到了一行的结尾处,你要快速回到新的一行的开头,需要打印针头在纸面上飞快地掠过,常常会在纸面上留下污点。解决这个问题的办法就是,用两个字符:一个字符来移到第一列,另一个字符 来新增一行。计算机产生以后,存储较为昂贵,在如何解决回车换行这个老问题上,人们产生了不同的意见。UNIX人认为在到达一行的结尾时新增一行 (LF),而Mac人则认同 (CR)的解决办法,MS则坚持古老的 (CRLF)的方法。这就意味着如果你将一个文件从一个系统转移到另一个系统,就面临着回车换行的问题。而Vim编辑器则会自动的认出这种文件格式方面的区别,并做出相应处理。

fileformats选项,用于处理文件格式问题。以下命令,告诉vim将UNIX文件格式做为第一选择,而将MS-DOS的文件格式做为第二选择:

:set fileformats=unix,dos

检测到的文件格式会被存放在fileformat选项中,我们可以用以下命令来查询:

:set fileformat?

我们还可以利用fileformat选项,来转换种文件格式。例如,使用以下命令将名为readme.txt的MS-DOS格式的文件,转换为UNIX格式的文件。

:set fileformat=unix

在默认情况下,Vim认为文件是由行组成的,并且文件最后一行是以为结束符的。如果你想设置文件以结束符结尾,则可以用以下命令:

:set endofline

如果你想设置文件不以结束符来结尾,则可以使用以下命令:

:set noendofline

显示换行

如果你使用以下命令进入,那么就可以清楚的看到以“$”表示的换行符和以“^I”表示的制表符。

:set list

vi下显示回车换行符等特殊符号 - 有何不可 - 不要辜负 期望

你可以使用以下命令退出:

:set nolist

删除换行

可以用以下命令删除换行符:

:%s/\n//g

可以用以下命令删除DOS文件中的回车符“^M”:

:%s/\r//g

可以用以下命令转换DOS回车符“^M”为真正的换行符:

:%s/\r/\r/g

可以用以下命令删除行尾的空格以及DOS回车符。它没有使用“/”字符作为替换命令各个参数间的分隔符,而是使用了“#”字符。命令还使用了“?”正则表达式,用来匹配它前面出现的字符0次或1次。

:%s#\s*\r?$##

可以用以下命令删除三行空行:

:%s/^\n{3}//

可以用以下命令将连续的两个空行替换成一个空行:

:%s/\n\n/\r/g

自动换行

在默认情况下,Vim是不会自动换行的,也就是说我们需要自己决定回车的位置。但是我们也可以通过指定textwidth选项,让Vim自动在指定位置换行。例如,使用以下命令指定在30列时自动换行。由于在遇到空格时才会自动换行,所以换行的精确位置可能会小于你指定的列宽。

:set textwidth=29

而以下命令告诉Vim从右面算起当达到10个字符的空格时要换行:

:set wrapmargin=10

在指定了文本宽度的情况下,当我们将一行中的前几个文字删掉时,Vim并不会将后面行中的文本移动上来,而是形成了一些长短不一的段落,这样看起来不是很好。可以有几种方法处理这个问题:

一种方法是,在可视化模式下选中这些文本,然后用gp命令来格式化选中的段落。另一种方法是,使用gqmotion命令来完成格式。例如要格式化5行,就可以用命令:gq4j。这个命令告诉Vim要格式化本行,同时要格式化下面的4行,这样就达到了格式化5行的目的。如果要格式化整个段落,可以将光标放在段落的第一行上,然后执行命令gq}。而使用命令gqip可以格式化当前段落,而且并不必要将光标放在段落的第一行上。

vi下显示回车换行符等特殊符号 - 有何不可 - 不要辜负 期望

如果要想格式化一行,可以使用命令gqgq,也可以简记为gqq。

注意:选项textwidth优先于wrapmargin。如果要使wrapmargin选项生效,必须将textwidth设置为0(这也是默认值)。

合并行

命令J使两行合并为一行,同时用空格分隔这两行。

通过设置joinspace选项,可以控制合并两行时的分隔符(如果一行是以标点符号来结尾)。如果设置:set nojoinspaces,用J命令合并两行时会用一个空格来分隔;如果设置:set joinspaces,用J命令合并两行时会用两个空格来分隔。如果不希望用空格来分隔合并的行,可以使用gJ命令。

我们也可以使用:join命令,将几行合并为一行并使用空格来分隔各行。如果不希望加入空格,那么可以使用:join!命令。

命令小结
:set fileformat 设置文件格式
:set endofline 设置文件结束符
:set noendofline 取消文件结束符
:set list 进入List Mode
:set nolist 退出List Mode
:%s/\n//g 删除换行符
:set textwidth 设置行宽
:set textwidth 设置行边距
:join 合并多行
J 合并两行

  • 1
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 在vim中,可以使用以下命令进行换行: 1. 在插入模式下,按下“Enter”键即可换行。 2. 在普通模式下,可以使用“o”或“O”命令进行换行。其中,“o”命令会在当前行的下方插入一个新行,并将光标移动到新行的开头;“O”命令会在当前行的上方插入一个新行,并将光标移动到新行的开头。 3. 在普通模式下,可以使用“:s/\n/替换的内容/g”命令进行换行。其中,“\n”表示换行符替换的内容可以是任意字符串。这个命令会将所有的换行符替换为指定的字符串。 希望这些方法能够帮助你在linux中使用vim命令进行换行。 ### 回答2: 在Linux中使用vim换行是一个常用的操作。当我们需要在一行代码中输入多个命令或子命令时,我们需要换行以便于阅读和管理。换行是通过以下几种方式实现的: 1. 按下“Enter”键:按下“Enter”键将会在当前光标位置处进行换行。这意味着你的代码行会被拆分成两行,并且新行的缩进将与原有行一致。 2. 按下“Shift”和“Enter”键:如果你需要在不同的语句之间进行换行,而不是在同一行内输入多个命令,那么你可以使用“Shift+Enter”键。这将会在光标所在行的下一行插入一个新行,并且不会继承前一行的缩进。 3. 使用“\”符号:如果你需要将代码写成多行且不希望在换行时进行缩进,你可以使用反斜杠“\”符号。在当前行的结尾处插入“\”,然后按下“Enter”键,这将会让你在下一行的开始处继续输入你的命令。注意反斜杠符号需要放在结尾处,不能放在行首。 以上是在Linux中使用vim进行换行的三种方式。 总结一下,换行操作在代码编辑中非常重要,可以提高代码的可读性,让代码更加结构化。Linux中的vim编辑器提供了多种实现方式,支持快速有效地进行换行操作。同时,在日常工作中熟练掌握这些技巧可以提高工作效率,提高程序员的编写代码的效率。 ### 回答3: 在Linux操作系统中,vim是一款非常强大的文本编辑器。通常在使用vim时,我们可能需要插入一个换行符,将一句话分成多行显示或者添加一个空行。不同于其他编辑器,vim换行时有相应的命令和快捷键。下面就来谈一下如何在vim中进行换行操作。 1. 插入新行 在vim中,可以使用快捷键"o"或"O"来插入新的一行。在普通模式下按下"o"键,会在当前光标的下方插入一个新的空行,并且自动进入插入模式,可以直接在新的一行上面开始输入。按下大写字母"O"会在光标的上方插入一个新的空行,并进入插入模式。 2. 换行 在正文中,我们经常需要将一句话拆分成多行进行编辑和展示。在vim中,可以使用"J"键进行换行的操作。在普通模式下,将光标移动到想要换行的位置,按下"J"键,vim会将当前行和下一行合并,即在当前行的末尾添加一个空格和下一行的内容。这个操作会保留空格和符号(如标点符号),不会改变原来的格式。 3. 自动换行 当我们打开一个较长的文件时,如果一行过长超出了标准编辑界面,vim会自动显示水平滚动条,需要不停地水平滚动来查看文本。因此我们需要手动设置自动换行。在vim中,可以使用"set wrap"命令实现自动换行。输入"set wrap"后,vim会自动将长行折成多行并自动换行,便于查看和编辑文本。 总之,以上是vim中实现换行的几种方式:插入新行操作,"J"键换行操作,以及自动换行的设置。在日常编写文本过程中,可以灵活运用这些操作,提高效率和效果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值