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 ...
随机推荐
- MySql日期加天数,小时,分钟...得到新的时间
在当前的日期上加三天,天数随便改: SELECT date_add(CURRENT_DATE(), interval 3 day); 在指定的日期上加三天: SELECT date_add('2014 ...
- ls 命令通配符(3)
使用过正则的人应该很熟悉通配符.如果非要解释的话,我找来一段: 通配符是一种特殊语句,主要有星号(*)和问号(?),用来模糊搜索文件. 当查找文件夹时,可以使用它来代替一个或多个真正字符:当不知道真正 ...
- java 覆盖
作者:又见那斯 java中覆盖基于面向对象三大特征之:继承,同时又和另一特征:多态有重要的联系,本文中讨论的有关java中覆盖的一些知识,其实在写代码的时候或许不会用到,不过知道的话总会有用处.如有错 ...
- PHP 经典有趣的算法
原文:https://blog.csdn.net/a519395243/article/details/77942913 1.一群猴子排成一圈,按1,2,…,n依次编号.然后从第1只开始数,数到第m只 ...
- django2.0url的变动
WARNINGS:?: (urls.W001) Your URL pattern '^$' uses include with a route ending with a '$'. Remove th ...
- ASP.NET中数据库数据导入Excel并打印(2)
大家可能觉得上面的代码比较复杂,因为上面对于对打印要求比较高的应用,是十分有效的.如果只是单单对数据进行导出,还可以使用简单的格式,比如使用以下的代码: Private Sub Page_L ...
- es6中let实例应用之一
有如下情景 html部分: <button class="btn">按钮1</button> <button class="btn" ...
- 【学习总结】快速上手Linux玩转典型应用-第5章-远程连接SSH专题
课程目录链接 快速上手Linux玩转典型应用-目录 目录 1. 认识SSH 2. 服务器安装SSH服务 3. 客户端安装SSH工具 4. 客户端链接SSH服务 5. SSH config 6. SSH ...
- Bootstrap table 实现树形表格,实现联动选中,联动取消
公司最近有需求要做树形式table.因为是前后端不分离项目,且之前已经引入了bootstrap table插件,现把实现方式分享一下: <!DOCTYPE HTML> <html l ...
- Java 组件化(gradle)
组件化什么是组件化,直接看下面两张图. 上面是非组件化的项目,下面是组件化的项目. 非组件化的问题如果项目本身有多个互相不影响的模块,甚至有多人分开负责各个模块的开发时,非组件化项目的弊端就会暴露出来 ...