linux/Unix下的vim/vi指令的使用方法
概述
以下这篇文章介绍的是关于vim的使用方法,由于我本身对linux没有太多的研究,写下的这篇文章纯属是在实际中经常使用vim指令,想通过这篇文章记录下来,方便以后使用时查找方便。个人认为,对于普通用户,看完这篇文章,在服务器上使用vim指令就已经足够了。
vim/vi指令的介绍
vim是vi指令的升级版,它兼容了vi的所有指令,并且添加了一些新的特性。vim指令的新的特性在此不做详细的介绍,我们主要介绍vi指令(vi的指令都可以通过vim指令直接使用)。
vi指令可以应用于linux和unix的任何系统版本。
vim/vi指令的基本概念
vi可以分为三种状态,分别是命令模式(command mode)、插入模式(Insert mode)和底行模式(last line mode)这三个模式的功能如下:
(1).命令行模式:控制屏幕光标的移动,字符、字或行的删除,移动复制某个区段以及进入插入模式下,或者到底行模式中。
(2).插入模式:只要在插入模式下,才可以做文字输入,同时按ESC键可以返回到命令行模式。
(3).底行模式:将文件保存或者退出vim/vi,也可以设置编辑环境。
值得注意的是:我们通常把vim简写成两个模式:命令行模式和插入模式(将底行模式算到命令行模式中)。
vim/vi的基本操作
(1).进入vim/vi
在系统提示符号输入vi及文件名称后,就进入vi全屏幕编辑画面:$vim config/index.js 。但是要注意的是,当我们进入了vim,我们处于的是命令行模式,不能够编辑,我们必须切换到插入模式之后才能够输入文字
(2).切换到插入模式-------编辑文件
在我们进入了命令行模式之后,我们按字母[i]切换至插入模式,这个时候我们就可以输入文字了~
(3).插入模式的切换
当我们处于插入模式的时候,我们只能一直的输入文字、字符,但是如果我们发现输入了错误的字,想要用光标往回移动,之后在将该文字删除,我们应该先按ESC键转到命令行模式,之后再删除文字。
(4)退出vim并且保存文件
在命令行模式下,按[:]冒号键进入。有几种方式:
1).w filename:将文件以制定的文件名保存。
2).wq : 保存并且退出。
3).q!:不保存,强制退出。
命令行模式的功能键
(1).切换插入模式
1).按「i」切换进入插入模式「insert mode」,按“i”进入插入模式后是从光标当前位置开始输入文件;
2).按「a」进入插入模式后,是从目前光标所在位置的下一个位置开始输入文字;
3).按「o」进入插入模式后,是插入新的一行,从行首开始输入文字。
(2).从插入模式切换成命令行模式
按[ESC]键
(3).删除文字
x:每按一次,删除光标所在位置的“后面”一个字符。
#x:例如,8x—表示删除光标所在位置的“后面”8个字符。
X:大写的X,每按一次,删除光标所在位置的“前面”一个字符。
#X:10X:表示删除光标所在位置的“前面”10个字符。
dd:删除光标所在行。
#dd:从光标所在行开始删除#行。
(4).移动光标
vim可以直接用键盘上的光标来上下左右移动,但正规的vim是用小写英文字母[h]、[j]、[k]、[l]分别控制光标左下上右移一格。
按ctrl + b:屏幕往“后”移动一页。
按ctrl + f:屏幕往“前”移动一页。
按ctrl + u:屏幕往“后”移动半页。
按ctrl + d:屏幕往“前”移动半页。
按数字 0:移到文章的开头。
按 G :移动到文章的最后。
按 $:移动到光标所在行的“行尾”。
按 ^:移动到光标所在行的“行首”。
按 w:光标跳到下个字的开头。
按 e:光标跳到下个字的字尾。
按 b:光标回到上个字的开头。
按 #:光标移到该行的第#个位置。
(5).复制
yw:将光标所在之处到字尾的字符复制到缓冲区中。
#yw:复制#个字到缓冲区
yy:复制光标所在行到缓冲区。
#yy:例如,8yy表示拷贝从光标所在的该行“往下数”8行文字。
p:将缓冲区内的字符贴到光标所在位置。注意:所有与“y”有关的复制命令都必须与“p”配合才能完成复制与粘贴功能。
(6).替换
r:替换光标所在处的字符。
R:替换光标所到之处的字符,直到按下ESC键为止。
(7).更改
cw:更改光标所在处的字到字尾处。
c#w:例如,c5w表示更改5个字。
(8).跳到指定的行
ctrl+g:列出光标所在行的行号。
#G: 例如,20G,表示移动光标至文章的第20行行首。
(9).回到上一次操作
u:如果错误执行一个命令,可以马上按下u,回到上一个操作。按多次“u”可以执行多次回复。
vim命令列表
(1).命令行模式下的一些键位的功能
h----------------左移光标一个字符
l-----------------右移光标一个字符
k----------------光标上移一行
j-----------------光标下移一行
^----------------光标移动至行首
0----------------数字“0”,光标移至文章的开头
G---------------光标移至文章的最后
$----------------光标移动至行尾
Ctrl+f----------向前翻屏
Ctrl+b----------向后翻屏
Ctrl+d----------向前翻半屏
Ctrl+u----------向后翻半屏
i----------------在光标位置前插入字符
a---------------在光标所在位置的后一个字符开始增加
o---------------插入新的一行,从行首开始输入
ESC----------从输入状态退至命令状态
x---------------删除光标后面的字符
#x--------------删除光标后的#个字符
X(大写X)----------删除光标前面的字符
#X--------------删除光标前面的#个字符
dd--------------删除光标所在的行
#dd------------删除从光标所在行数的#行
yw-------------复制光标所在位置的一个字
#yw------------复制光标所在位置的#个字
yy--------------复制光标所在位置的一行
#yy------------复制从光标所在行数的#行
p---------------粘贴
u---------------取消操作
cw-------------更改光标所在位置的一个字
#cw------------更改光标所在位置的#个字
(2).命令行模式下的一些指令
1).w filename储存正在编辑的文件为filename
2).wq filename储存正在编辑的文件为filename,并退出vi
3).q!放弃所有修改,退出vi
4).set nu显示行号
5)./或?查找,在/后输入要查找的内容
6).n与/或?一起使用,如果查找的内容不是想要找的关键字,按n或向后(与/联用)或向前(与?联用)继续查找,直到找到为止。
参考文档:《鸟哥linux私房菜》
https://www.runoob.com/linux/linux-vim.html
https://www.cnblogs.com/itech/archive/2009/04/17/1438439.html
原文链接到本人CSDN:https://blog.csdn.net/weixin_45376639/article/details/100551466
linux/Unix下的vim/vi指令的使用方法的更多相关文章
- 10分钟 教你学会Linux/Unix下的vi文本编辑器
10分钟 教你学会Linux/Unix下的vi文本编辑器 vi编辑器是Unix/Linux系统管理员必须学会使用的编辑器.看了不少关于vi的资料,终于得到这个总结.不敢独享,和你们共享. 首先,记住v ...
- 【Linux】linux/unix下telnet提示Escape character is '^]'的意义
在linux/unix下使用telnet hostname port连接上主机后会提示Escape character is '^]' 这个提示的意思是按Ctrl + ] 会呼出telnet的命令行, ...
- linux/unix下telnet提示Escape character is '^]'的意义
在linux/unix下使用telnet hostname port连接上主机后会提示Escape character is '^]' 这个提示的意思是按Ctrl + ] 会呼出telnet的命令行, ...
- Linux学习笔记之vim操作指令大全
0x00 关于Vim Vim是款强大的文本编辑器,但是众多指令需要学习,这次记录了指令大全方便以后翻阅. Vim的几种模式 正常模式:可以使用快捷键命令,或按:输入命令行. 插入模式:可以输入文本,在 ...
- Linux/UNIX 下 “command not found” 原因分析及解决
在使用 Linux/UNIX 时,会经常遇到 "command not found" 的错误,就如提示的信息,Linux /UNIX 没有找到该命令.原因无外乎你命令拼写错误或 L ...
- Linux操作系统下三种配置环境变量的方法
现在使用linux的朋友越来越多了,在linux下做开发首先就是需要配置环境变量,下面以配置java环境变量为例介绍三种配置环境变量的方法. 1.修改/etc/profile文件 如果你的计算机仅仅作 ...
- Linux操作系统下三种配置环境变量的方法——转载
来源:赛迪网 作者:millio 现在使用linux的朋友越来越多了,在linux下做开发首先就是需要配置环境变量,下面以配置java环境变量为例介绍三种配置环境变量的方法. 1.修改/e ...
- windows及linux环境下永久修改pip镜像源的方法
一.在windows环境下修改pip镜像源的方法(以python3.5为例) (1):在windows文件管理器中,输入 %APPDATA% (2):会定位到一个新的目录下,在该目录下新建pip文件夹 ...
- Linux系统下不同机器之间拷贝文件的方法
在Linux系统下,不同机器上实现文件拷贝 一.将本地文件拷贝到远程机器: scp /home/administrator/news.txt root@192.168.6.129:/etc/squid ...
随机推荐
- 20191127 Spring Boot官方文档学习(4.10)
4.10.使用SQL数据库 从使用JdbcTemplate直接的JDBC访问到完整的"对象关系映射"技术(例如Hibernate),Spring框架为使用SQL数据库提供了广泛的支 ...
- Java第三周课程总结&实验报告一
第三周课程总结 1.关于面向对象的一些具体内容,明白了类与对象以及Java的封装性和构造方法以及对对象匿名的相关知识. 2.this关键字,它是表示类的成员属性(变量),使用this构造方法时必须放在 ...
- 第六周学习总结&(实验报告四)
一.实验目的 (1)掌握类的继承方法 (2)变量的继承和覆盖,方法的继承,重载和覆盖实现 二.实验内容 一.实验目的 (1)掌握类的继承 (2)变量的继承和覆盖,方法的继承,重载和覆盖的实现: 二.实 ...
- JetBrains下载历史版本
https://www.jetbrains.com/clion/download/other.html 在上方的链接中将clion改为idea,phpstrom.webstrom等等
- Python 入门之 递归
Python 入门之 递归 1.递归: 递:一直传参 归:返回 (1)不断调用自己本身(无效递归 -- 死递归) def func(): print(1) func() func() (2)有明确的终 ...
- unsolved question's solution
因为很懒,没有时间,只会口胡等等原因,所以有些题目就不打code了 $luogu:$ P1973 [NOI2011]Noi嘉年华: 时间离散化,预处理一个区间$[l,r]$内的最多活动个数$in[l] ...
- spring boot 枚举使用的坑2
上一篇说到在枚举当在controller的方法做参数时的坑,解决方法是配置了一个converter,后来想想,如果不闲每次都加一个注解麻烦的话,可以在参数前面加一个注解,添加一个解析器应该也可以解决这 ...
- C++ constexpr
1.constexpr 1.const与constexpr: const: 承若不改变这个值,主要用于说明接口,这样在把变量传入函数时就不必担心变量会在函数内被改变了,编译器负责确认并执行const的 ...
- SpringBoot自定义配置步骤
1. 在yml中填写自定义配置 ly: sms: accessKeyId: # 短信配置 accessKeySecret: signName: xx商城 # 签名名称 verifyCodeTempla ...
- Vue 变量,成员,属性监听
Vue变量 <!DOCTYPE html> <html lang="zh"> <head> <meta charset="UTF ...