vim编辑器相关操作、如何在vim/vi中删除行、vim中复制粘贴

省流版:

  1. Esc键进入普通模式。
  2. 将光标放在要删除的行上。
  3. 键入dd以将其行删除。
    转自 vim编辑器相关操作_vim复制粘贴-CSDN博客

一、复制、粘贴

1、复制一行:按esc键后,按yy,再按p粘贴
2、全部复制:按esc键后,先按gg,然后按yG,最后按p粘贴
3、复制多行,一次粘贴:按esc键后,按nyy,再按p粘贴(n为从光标开始向下复制的行数)
4、复制一行,多次粘贴:按esc键后,按yy,再执行np粘贴(n为粘贴的次数)
5、复制多行,多次粘贴:按esc键后,按nyy,再执行np粘贴

vim编辑器相关操作

一、复制、粘贴

1、复制一行:按esc键后,按yy,再按p粘贴
2、全部复制:按esc键后,先按gg,然后按yG,最后按p粘贴
3、复制多行,一次粘贴:按esc键后,按nyy,再按p粘贴(n为从光标开始向下复制的行数)
4、复制一行,多次粘贴:按esc键后,按yy,再执行np粘贴(n为粘贴的次数)
5、复制多行,多次粘贴:按esc键后,按nyy,再执行np粘贴

二、剪切、删除

(一) 单/多行字符的剪切与删除

1、删除一行:按esc键后,按dd删除
2、删除多行:按esc键后,按ndd删除(n为从光标开始向下复制的行数)
3、全部删除:按esc键后,先按gg。然后按dG删除
4、其他操作
d 剪切选定块到缓冲区;
d^ 剪切至行首
d$ 剪切至行尾
dw 剪切一个word
dG 剪切至档尾

**剪切与移动只差一个粘贴p**
需求:如要实现移动文本中的100-104行至200-204行位置
实现:当光标在100行时执行4dd,然后在200行位置执行p粘贴

(二)单/多个字符的剪切与删除

1、删除光标处字符
x:执行一次,光标处的一个字符就被删除
nx:光标处往后的n个字符被删(包括光标处的字符)

2、删除光标前字符
X:执行一次,光标前的一个字符被删
nX:执行一次,光标前的n个字符被删

三、撤销

u :撤销上一步的操作
Ctrl+r :恢复上一步被撤销的操作

四、vim查找

1、普通模式中按斜杆/+要查询的内容后回车
2、按n向下查,按N向上查询

五、vim中全局替换

在vim中进行全局替换,可以使用:g和:s命令的组合
1、对包含pattern的所有行,查找其中的old字符串,并将其替换为new字符串

:g/pattern/s/old/new/g

2、对全局文件进行替换

:%s/old/new/g

3、对当前行进行替换

:s/old/new/g

4、想确认每次替换,可以添加c标志

:%s/old/new/gc

六、设置行号

1、普通模式下执行:set number 或者简写为:set nu 来显示行号
2、永久显示行号:在 ~/.vimrc 文件中添加 set number ,再次用vim打开文件,即可自动生成行号
3、跳转到指定行号:
在命令模式下(按 Esc 进入),输入 :行号,例如 :10 跳转到第10行。
或者使用快捷键 行号G,例如 10G 也会跳转到第10行。

七、光标移动

常用的光标移动快捷键
h:向左移动一个字符
j:向下移动一行
k:向上移动一行
l:向右移动一个字符

高级的光标移动快捷键
w:向后移动到下一个单词的开头
b:向前移动到前一个单词的开头
0:移动到行首
^:移动到行的第一个非空白字符
$:移动到行尾
gg:移动到文件的开头
G:移动到文件的结尾
[[:跳到当前或前一个代码块的开始
]]:跳到当前或下一个代码块的开始
{:向上移动到同一列的上一个代码块开始
}:向下移动到同一列的下一个代码块开始

参考:如何在Vim/Vi中删除行

如果您是系统管理员或只是普通的Linux用户,了解Vim的基础很重要。通常,在处理文本文件时,您需要删除一行或多行内容。本文介绍了如何在Vim/Vi中删除行

Vim或其初期产品Vi已预先安装在大多数Linux发行版和macOS中。 如果您是系统管理员或只是普通的Linux用户,了解Vim的基础很重要。

通常,在处理文本文件时,您需要删除一行或多行内容。

本文介绍了如何在Vim/Vi中删除行。

删除单行

在Vim中删除行的命令是dd

以下是删除行的分步说明:

  1. Esc键进入普通模式。
  2. 将光标放在要删除的行上。
  3. 键入dd以将其行删除。

多次按dd将删除多行。

删除多行

要一次删除多行,请在dd命令前添加要删除的行数。 例如,要删除五行,您可以执行以下操作:

  1. Esc键进入普通模式。
  2. 将光标放在要删除的第一行。
  3. 键入5dd删除接下来的五行。

删除一系列的行

删除一系列行的语法如下:

:[start],[end]d

例如,要删除从3到5的行,您可以执行以下操作:

  1. Esc键进入正常模式。
  2. 键入:3,5d 并按enter键删除3到5行。

您也可以使用以下字符指定范围:

  • .(点)-当前行。
  • $ -最后一行。
  • % -所有行。

以下是一些示例:

  • :.,$d-从当前行到文件末尾。
  • :.,1d -从当前行到文件开头。
  • 10,$d -从第10行到文件末尾。

删除所有行

要删除所有行,可以使用代表所有行的%符号或1,$范围:

  1. Esc键进入普通模式。
  2. 键入%d,然后按Enter键以删除所有行。

删除匹配指定正则表达式的行

用于基于特定模式删除多行的语法如下:

:g/<pattern>/d

全局命令(g)告诉删除命令(d)删除包含<pattern>的所有行。

要匹配与模式不匹配的行,请在模式之前添加感叹号(!):

:g!/<pattern>/d

模式可以是文字匹配或正则表达式。 以下是一些示例:

  • :g/foo/d-删除所有包含字符串“ foo”的行。 它还会删除在“ foo”等较大字词中嵌入“ foo”的行。
  • :g!/foo/d -删除所有不包含字符串“ foo”的行。
  • :g/^#/d -从Bash脚本中删除所有评论。 模式^#表示每行以#开头。
  • :g/^$/d -删除所有空白行。 模式^$匹配所有空行。
  • :g/^\s*$/d -删除所有空白行。 与前一个命令不同,这还会删除具有零个或多个空格字符(\s*)的空白行。

结论

我们向您展示了如何在Vim中删除行。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容