day12 vim编辑器

day12vim编辑器


什么是vim


  • vim是Linux中一个强大的文本编辑器
    • vim功能比vi更加强大

为什么要使用vim


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


vim的三种工作模式



命令模式


  • 最开始使用vim命令打开文件时,即进入命令模式
  • 跳转光标
G:(shift+g)将光标快速跳转到文件的最后一行
gg:将光标跳转到文件的开头
Ngg:N代表阿拉伯数字,将光标跳转到第N行
$:(shift+4)将光标跳转到行末
^:(shift+6)将光标跳转到行首

复制粘贴

yy:复制光标所在行的内容
Nyy:(YNY)N代表阿拉伯数字,复制光标所在行及后N行内容
p:将复制的内容,粘贴到光标所在行的下一行
P:将复制的内容,粘贴到光标所在行的上一行

删除剪切


dd:剪切,删除光标所在行的内容
Ndd|dNd:剪切,删除指定行数的内容
dG:删除光标所在行到文件末尾所有行的内容
D:将光标所在字符删除一直删到行末
x:剪切,删除光标所在字符
X:剪切,删除光标所在字符的前一个字符

撤销替换

r:替换光标所在的字符
R:批量替换字符,替换光标所在字符及后面所有字符,直到按ESC结束
u:撤销上一步操作
Ctrl+r:恢复撤销

编辑模式(输入模式)


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

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

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

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

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


从编辑模式切换命令模式

# Esc

末行模式(底行模式)

文件的保存和退出

# 进入末行模式 只能从命令模式中进入
# 方式一: 输入:
# 方式二: 输入/

:w   保存
:q   退出
:wq  保存并退出
:w!  强制保存
:q!  强制退出
:wq! 强制保存并退出

跳转行号

# 命令模式中,跳转行号  Ngg
Ngg:N代表阿拉伯数字,将光标跳转到指定的行

内容的查找和替换

# 内容查找
/string:查找想查找的字符串,输入回车后会高亮显示
按n:向下查找下一个字符串
按N:向上查找上一个字符串


# 内容替换
:原内容/要替换的内容/
:/root/hjx/        # 把root替换成hjx
:s/root/hjx/       # s:查找并替换
:s/root/hjx/g      # g:全局(默认只替换第一行内容)
:%s/root/hjx/g     # %:代替所有行


# 一般用:  %s###g
把 /sbin/nologin 替换成 /bin/bash

%s/\/sbin\/nologin/\/bin\/bash/g

# %s#/sbin/nologin#/bin/bash#g

分隔符可以随意使用,建议:原内容和新内容里面不包括你写的分隔符

末行模式报错

# 文件内容修改后,不保存想退出 :q,必须加!退出
E37: No write since last change (add ! to override)
# 针对root用户,只读文件无法修改,保存退出需要加! :wq!
E45: 'readonly' option is set (add ! to override)
# 无法打开这个文件
E212: Unable to open and write files

末行模式下其他功能

# 显示行号
简写:set nu

# 自动缩进set ai

# 不区分大小写set ic

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

# 取消设置set no(nu|ai|ic|list)

vim视图模式


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

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

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

# 批量修改文件
按ctrl+v进入可块视图模式
移动光标
 按方向键
 Ngg
 G
 按shift+i进入编辑模式
 输入#
 按Esc退出编辑模式
  • 行视图模式
shift+v:进入行视图模式

vim扩展选项

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

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

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

思维导图


3.30练习题

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

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

 ✗ 16:38:12 root@localhost.localdomain,10.0.0.158:~ # cp -a /etc/passwd /root/test.txt

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

vim test.txt
shift+: set nu

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

向下:ctrl+f
向上:ctrl+b

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

10gg

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

行末:$
行首:^

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

shift+g

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

/string

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

1,3s#root#--alex--#g

9.还原上一步操作

u

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

先2gg跳转光标到第二行,yy复制,11gg跳转光标11行,小写p粘贴,再u还原

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

先20gg跳转光标到第二十行,dd删除,u撤回

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

5gg跳转光标第5行,5dd删除光标下面5行,u撤回

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

11gg跳转光标到11行,5yy复制11-15行,8gg光标到第八行,大写的P粘贴第八行上面

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

13gg,5dd,GG光标跳转尾部,小写p

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

gg光标移动首行,将光标移到/sbin/nologin后面,X删除/sbin/nologin,R直接输入/bin/bash

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

gg  o  输入Hello Word!

16.保存文档并退出

:wq

18.如何查看磁盘的block

df -h

19.如何查看磁盘的inode

df -hi

选择题

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.目录

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

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

A.普通文件

B.硬链接

C.符号链接

D.目录

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

A. pause

B. cat

C. more

D. grep

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

A.命令行的每个选项

B.是否真的删除

C.是否有写的权限

D.文件的位置

posted @   hjx、贤  阅读(314)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
点击右上角即可分享
微信分享提示