vim编辑器

vim编辑器

什么是vim

vim是Linux系统中一个强大的文本编辑器

vim功能比vi强大

为什么要使用vim

  • 编辑配置文件
  • 写脚本
  • 批量修改
  • 查找内容
  • 与语法检测高亮显示

1648632554911

1648632588605

vim的三种工作模式

1648632677155

命令模式(普通模式)

最开始使用vim命令打开文件时,即进入命令模式

  • 跳转光标
G:(shift + g)将光标快速跳转到文件的末尾
gg:将光标跳转到文件的开头
Ngg:N代表阿拉伯数字,将光标跳转到第N行
^:将光标跳转到行首
$:将光标跳转到行末
  • 复制粘贴
yy:复制光标所在行的内容
Nyy:(yNy)N代表阿拉伯数字,复制光标所在行及后N行内容
p:将复制的内容,粘贴到光标所在行的下一行
P:将复制的内容,粘贴到光标所在行的上一行
  • 删除剪切
dd:剪切,删除光标所在的行
Ndd:dNd 剪切,删除光标所在行及后N行内容
dG:删除光标所在行到文件末尾所有行的内容
D:将光标所在字符删除一直删到行末
x:剪切,删除光标所在字符
X:剪切,删除光标所在字符的前一个字符
  • 撤销替换
r:替换光标所在字符
R:批量替换字符,替换光标所在字符及后面所有字符,直到按esc结束

u:撤销上一步操作
Ctrl+r:恢复撤销
  • 保持退出
ZZ:(shift+zz) 保存并退出

编辑模式 (输入模式)

从命令模式切换到编辑模式

# 进入编辑模式的标识,左下角--INSERT--

a:在光标所在字符之后,进入编辑模式
A:将光标跳转到行末,并进入编辑模式

o:在光标所在行的下一行(另起一行)进入编辑模式
O:在光标所在行的上一行,进入编辑模式

i:在光标所在字符之前,进入编辑模式
I:将光标移动到行首,并进入编辑模式

s:删除光标所在字符,并进入编辑模式
S:删除光标所在行一整行内容,并进入编辑模式

从编辑模式切换回命令模式

Esc

末行模式

  • 文件的保持退出
# 进入末行模式,只能从命令模式进入末行模式
方式一 输入 :
方式二 输入 \

:w      # write 写入,保存
:q      # quit  退出
:x      # 保存并退出
:wq     # 保存并退出
:w!     # 强制保存
:q!     # 强制退出
:wq!    # 强制保存并退出
  • 跳转行号
# 命令模式中,跳转行号 Ngg

# 末行模式:
:N  N代表阿拉伯数字,将光标跳转到指定的行
  • 内容的查找和替换
# 内容查找
/xxxx:查找想要查找的字符串,输入回车后会高亮显示
按n:向下查找下一个字符串
按N:向上查找上一个字符串

# 内容替换
:%s#xxx#xxx#g
%:代替所有行
s:查找并替换
###:代表分割符
g:global 全局(默认只替换第一行内容)

# 注意:分隔符可以随意使用,建议原内容和新内容里,不包括你写的分隔符即可
  • 末行模式报错
# 文件内容修改后,不保存想退出 :q,必须加!退出

# 针对root用户,只读文件无法修改,保存退出需要加!  :wq!

# 无法打开这个文件
E212: Unable to open and write files
  • 末行模式其它功能
# 显示行号
:set number        # 简写: :set nu

# 自动缩进
:set autoindent    # 简写: :set ai

# 不区分大小写
:set ignorecase    # 简写: :set io

# 查看文件中的结尾和制表符,等特殊符号
:set list


# 取消设置
:set nonu
:set noai
:set noio
:set nolist

vim视图模式

视图模式,是属于命令模式之下的一种模式

  • 块视图模式
ctrl + v:进入可视块视图模式
-- VISUAL BLOCK --

# 按光标删除选中的所有字符 x

# 批量修改文件(添加注释)
1)按ctrl + v 进入可视块视图模式
2)移动光标
   - 1.按下键
   - 2.Ngg
   - 3.G
3)按 I(shift + i) 进入编辑模式
4)输入 “#”
5)按Esc退出编辑模式
  • 行视图模式
shift + v:进入行视图模式

Vim扩展选项

# 文件对比命令:diff (不推荐)

# 文件对比命令:vimdiff (推荐)

# vim 同时编辑多个文件
-o:水平分割
-O:垂直分割

# ctrl + ww 切换文件

# 编辑文件指定的行
vim + N :N代表阿拉伯数字

3.30练习题

(要求写出步骤,如果有不懂得,为什么不看看zls的博客呢)

1.请把/etc/passwd 复制到/root/目录下,并重命名为test.txt

[root@localhost ~]# cp /etc/passwd /root/test.txt

2.用vim打开test.txt并设置行号

[root@localhost ~]# vim /root/test.txt 
  1 root:x:0:0:root:/root:/bin/bash
  2 bin:x:1:1:bin:/bin:/sbin/nologin
  3 daemon:x:2:2:daemon:/sbin:/sbin/nologin
  4 adm:x:3:4:adm:/var/adm:/sbin/nologin
  5 lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
  6 sync:x:5:0:sync:/sbin:/bin/sync
  7 shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
  8 halt:x:7:0:halt:/sbin:/sbin/halt
  9 mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
 10 operator:x:11:0:operator:/root:/sbin/nologin
 11 games:x:12:100:games:/usr/games:/sbin/nologin
 12 ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
 13 nobody:x:99:99:Nobody:/:/sbin/nologin
@                                                                   
:set nu                                           1,1       

3.分别向下、向上翻两页

ctrl+f向下,ctrl+b向上

4..把光标移动到第10行

10gg

5.让光标移动到行末,再移动到行首

shift+4($)行末
shift+6(^)行首

6.移动到test.txt文件的最后一行

G

7.搜索文件中出现的 root 并数一下一共出现多少个,不区分大小写搜索

[root@localhost ~]# grep -i -o 'root' /root/test.txt |sort|uniq -c
      4 root

8.把从第一行到第三行出现的root 替换成--alex--

[root@localhost ~]# vim passwd 
  1 --alex--:x:0:0:--alex--:/--alex--:/bin/bash
  2 bin:x:1:1:bin:/bin:/sbin/nologin
  3 daemon:x:2:2:daemon:/sbin:/sbin/nologin
:%s#root#--alex--#g

9.还原上一步操作

u
[root@localhost ~]# vim /root/test.txt 
  1 root:x:0:0:root:/root:/bin/bash
  2 bin:x:1:1:bin:/bin:/sbin/nologin
  3 daemon:x:2:2:daemon:/sbin:/sbin/nologin

10.复制第2行并粘贴到11行下面,再还原一下

 2gg
 yy
 11gg
 p
 u
 2 bin:x:1:1:bin:/bin:/sbin/nologin
  3 daemon:x:2:2:daemon:/sbin:/sbin/nologin
  4 adm:x:3:4:adm:/var/adm:/sbin/nologin
  5 lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
  6 sync:x:5:0:sync:/sbin:/bin/sync
  7 shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
  8 halt:x:7:0:halt:/sbin:/sbin/halt
  9 mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
 10 operator:x:11:0:operator:/root:/sbin/nologin
 11 games:x:12:100:games:/usr/games:/sbin/nologin
 12 bin:x:1:1:bin:/bin:/sbin/nologin
 13 ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin

11.把光标移动到20行,删除本行,再还原

20gg
dd
u
15 dbus:x:81:81:System message bus:/:/sbin/nologin
 16 polkitd:x:999:998:User for polkitd:/:/sbin/nologin
 17 sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nolog    in
 18 postfix:x:89:89::/var/spool/postfix:/sbin/nologin
~                                                                   
~      
按p或u都能还原

12..删除从5行到10行的所有内容,再还原

5gg
6dd
按p或u都能还原

12.复制从11行到15行的内容并粘贴到8行上面···

11gg
5yy
8gg
P

13.把13行到18行的内容移动文件的尾部

13gg
6dd
G
p

14.光标移动到首行,把/sbin/nologin改成/bin/bash

gg
R
1 root:x:0:0:root:/root:/bin/bash
2 bin:x:1:1:bin:/bin:/bin/bash

15.在第一行下面插入新的一行,并输入"# Hello Word!"

gg
0
# Hello Word!

16.保存文档并退出

esc
shift+zz

18.如何查看磁盘的block

df -h

19.如何查看磁盘的inode

df -i

选择题

20.用命令ls -l显示出来文件txt的描述如下所示,由此可知文件的类型为( A )

-rw-r--r--. 1 root root 970 Nov 5 2018 yum.conf

A.普通文件

B.硬链接

C.符号链接

D.目录

21.用命令ls -l显示出来文件txt的描述如下所示,由此可知文件的类型为( D )

drwxr-xr-x. 2 root root 187 Nov 5 2018 yum.repos.d

A.普通文件

B.硬链接

C.符号链接

D.目录

23.用命令ls -l显示出来文件txt的描述如下所示,由此可知文件的类型为( C )

lrwxrwxrwx. 1 root root 14 Mar 25 20:05 system-release -> centos-release

A.普通文件

B.硬链接

C.符号链接

D.目录

24.下面哪个Linux命令可以一次显示一页内容?( C )

A. pause

B. cat

C. more

D. grep

25.用"rm -i"系统会提示什么来让你确认( B )

A.命令行的每个选项

B.是否真的删除

C.是否有写的权限

D.文件的位置

posted @   安(za)  阅读(541)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示