Vim文本编辑工具

Vim介绍

vim是vi的升级版本,比如:vim编辑文本时,会显示颜色,而vi不显示颜色。

yum安装vim

[root@centos-01 ~]# vim
-bash: vim: 未找到命令
[root@centos-01 ~]# yum install -y vim-enhanced

vim的三种模式

vim的三种模式:一般模式、编辑模式、命令模式。

  1. 一般模式:当vim filename编辑一个文件时,一进入该文件就是一般模式了。在这个模式下,你可以做的操作有:上下移动光标;删除某个字符;删除某行;复制、粘贴一行或者多行。
  2. 编辑模式:一般模式下,是不可以修改某一个字符的。从一般模式进入编辑模式,只需你按一个键即可(i、I、a、A、o、O、r、R)。当进入编辑模式时,会在屏幕的最下一行出现“INSERT”或“REPLACE”的字样。从编辑模式回到一般模式只需要按一下键盘左上方的ESC键即可。
  3. 命令模式:在一般模式下,输入”:”或者“/”即可进入命令模式。在该模式下,你可以搜索某个字符或者字符串,也可以保存、替换、退出、显示行号等。

拷贝文件用作练习

[root@centos-01 ~]# yum install -y dnsmasq
[root@centos-01 ~]# cp /etc/dnsmasq.conf /tmp/1.txt
[root@centos-01 ~]# vim /tmp/1.txt

一般模式下移动光标

按键行为操作
h / 向左方向键光标向左移动一个字符
j / 向下方向键光标向下移动一个字符
k / 向上方向键光标向上移动一个字符
l(L的小写) / 向右方向键 / 空格键光标向右移动一个字符
Ctrl+f / PageUp键屏幕向前移动一页
Ctrl+b / PageDown键屏幕向后移动一页
数字0 / Shift+6移动到本行行首
Shift+4移动到本行行尾
gg移动到该文本的首行
G光标移动到文本的尾行
nG(n是数字)移动到该文本的第n行
Ctrl+d屏幕向前移动半页
Ctrl+u屏幕向后移动半页
n空格 / nl(n是数字)按下数字然后按空格 / l,则光标向右移动n个字符;如果该行字符小于n,则光标继续从下行开始向右移动一直到n

一般模式下复制剪切粘贴

按键行为操作
dd删除/剪切光标所在的那一行
ndd(n为数字)删除/剪切从光标所在行开始的n行
yy复制光标所在行
nyy从光标所在行开始,向下复制n行
p从光标所在行开始,向下粘贴已经复制的内容
P从光标所在行开始,向上粘贴已经复制的内容
u还原上一步操作
Ctrl+r取消上一步的还原
x向后删除/剪切一个字符
X向前删除/剪切一个字符
v按v后移动光标会选中指定字符,然后可以实现指定字符的复制、剪切等操作

进入编辑模式

按键行为操作
i在当前字符前插入字符
I在当前行的行首插入字符
o在当前行下插入新的一行
O在当前行上插入新的一行
a在当前字符后插入字符
A在当前行的行尾插入字符

命令模式

按键行为操作
/word向光标之后寻找一个字符串名为word的字符串,当找到第一个word后,按“n”继续搜后一个,“Shift+n”搜前一个
?word向光标之前寻找一个字符串名为word的字符串,当找到第一个word后,按“n”继续搜前一个
:n1,n2s/word1/word2/g在n1和n2行间查找word1这个字符串并替换为word2
:1,$s/word1/word2/g从第一行到最末行,查找word1并替换成word2
:1,$s/word1/word2/gc加上c的作用是,在替换前需要用户确认

如果查找/替换的字符串含有“\”符号,那么可以在“\”符号前加上“/”符号,例如查找“/etc/hosts”,可以这样操作“/\/etc\/hosts”。查找替换字符串时,字符串包含“\”符号,也可以把“/”换成“#”或者“@”,例如“:1,$s#word1#word2#g”。

按键行为操作
:set nu在每行的行首显示行号
:set nonu取消行号
:nohl取消高亮
:w将编辑过的文本保存
:w!若文本属性为只读时,强制保存
:q退出
:q!不管编辑或未编辑都不保存退出
:wq保存退出
:x在编辑文件后执行“:x”,效果同“:wq”。如果打开文件查看,并没有任何改动,则“:wq”会更改mtime,“:x”不会更改mtime。

Vim实践操作

[root@centos-01 ~]# cp /etc/dnsmasq.conf /tmp/1.txt
[root@centos-01 ~]# vim /tmp/1.txt
  1. 分别向下、向右、向左、向上移动6个字符(6j6l6h6k
  2. 分别向下、向上翻两页(分别按两次Ctrl+fCtrl+b
  3. 把光标移动到第49行(49G
  4. 把光标移动到行尾,再移动到行首(Shift+4Shift+6
  5. 移动到文件的最后一行(G
  6. 移动到文件的首行(gg
  7. 搜索文件中出现的“dnsmasq”(/dnsmasq
  8. 把从第1行到第10行出现的dnsmasq替换成dns(:1,10s/dnsmasq/dns/g
  9. 还原上一步操作(u
  10. 把整个文件中所有的etc替换成cte(:1,$s/etc/cte/g
  11. 还原上一步操作(u
  12. 把光标移动到第37行,删除字符“ly”(37G然后按l向右移动光标找到“ly”,按v选中指定字符再删除)
  13. 还原上一步操作(u
  14. 删除第50行(50G dd
  15. 还原上一步操作(u
  16. 删除第37-42行的所有内容(37G 6dd
  17. 还原上一步操作(u
  18. 复制第48行的内容并粘贴到第52行下面(48G yy 52G p
  19. 还原上一步操作(u
  20. 复制第37-42行的内容并粘贴到第45行上面(37G 6yy 45G P
  21. 还原上一步操作(u
  22. 把第37-42行的内容移动到第19行下面(37G 6dd 19G p
  23. 还原上一步操作(需要按两次u,因为先是剪切再粘贴)
  24. 把光标移动到文本首行,把第1行内容改为“#!/bin/bash”(先按gg,把光标定位到第1行,然后按字母A,进入编辑模式,Ctrl+u删除当前行内容,进行修改操作,完成后按ESC
  25. 在第1行下面插入新的一行,并输入“# Hello!”(按o进入编辑模式,同时光标向下另起一行,输入“# Hello!”)
  26. 保存文档并退出(按ESC键,输入“:wq”)

转载于:https://www.cnblogs.com/Genesis2018/p/8998089.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值