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 ...
随机推荐
- Android怎么改图标都不生效&&Android studio 如何修改APP图标和名字
去这里(我自己写的),解决方法包你满意: https://blog.csdn.net/qq_43141611/article/details/101875545
- 题解 AT1877 【回文分割】
题意:给定一个字符串 s,将 s 分割成一些子串,使每个子串都是回文串. 返回 s 所有可能的分割方案. 示例: 输入:aab 输出:3 解释:aba 思路: 记录字符串中每个字符出现的次数si 如果 ...
- javascript学习笔记--经典继承、组合继承、原型式继承、寄生继承以及寄生组合继承
经典继承 js中实现经典继承的方式是通过构造函数来实现的,即在子类中对父类调用call方法. function Geometric() { this.time = ""; this ...
- 搜索专题: HDU1258Sum It Up
Sum It Up Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total ...
- 什么是lambda函数?有什么好处?
lambda 函数是一个可以接收任意多个参数(包括可选参数)并且返回单个表达式值的匿名函数 好处:1.lambda 函数比较轻便,即用即删除,很适合需要完成一项功能,但是此功能只在此一处使用,连名字都 ...
- Delphi7所使用的WinAPI大全(摘自VCL源码,一共1200个函数)
经过我整理的,去掉了A和W的重复.虽然没写注释,但以后要一个一个研究.有这些WINAPI就够用了. kernel32 = 'kernel32.dll'; gdi32 = 'gdi32.dll'; us ...
- 两个 DataTable 读取重复数据,dataTable1与dataTable2不同
protected void Page_Load(object sender, EventArgs e) { DataTable dt = new DataTable(); dt.Columns.Ad ...
- ThinkPHP视图css和js加上版本号防止缓存
前台模块中,我的所有控制器都继承BaseController,虽然ThinkPHP中我们提供了两个配置项 'TMPL_CACHE_ON' => false,// 禁止模板编译缓存 'HTML_C ...
- python学习笔记(2):科学计算及数据可视化入门
一.NumPy 1.NumPy:Numberical Python 2.高性能科学计算和数据分析的基础包 3.ndarray,多维数组(矩阵),具有矢量运算的能力,快速.节省空间 (1)ndarray ...
- Huawei交换机路由器远程Telnet配置
<huawei>system-view Enter system view, return user view with Ctrl+Z.[huawei]interface g0/0/0[h ...