概述

  以下这篇文章介绍的是关于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指令的使用方法的更多相关文章

  1. 10分钟 教你学会Linux/Unix下的vi文本编辑器

    10分钟 教你学会Linux/Unix下的vi文本编辑器 vi编辑器是Unix/Linux系统管理员必须学会使用的编辑器.看了不少关于vi的资料,终于得到这个总结.不敢独享,和你们共享. 首先,记住v ...

  2. 【Linux】linux/unix下telnet提示Escape character is '^]'的意义

    在linux/unix下使用telnet hostname port连接上主机后会提示Escape character is '^]' 这个提示的意思是按Ctrl + ] 会呼出telnet的命令行, ...

  3. linux/unix下telnet提示Escape character is '^]'的意义

    在linux/unix下使用telnet hostname port连接上主机后会提示Escape character is '^]' 这个提示的意思是按Ctrl + ] 会呼出telnet的命令行, ...

  4. Linux学习笔记之vim操作指令大全

    0x00 关于Vim Vim是款强大的文本编辑器,但是众多指令需要学习,这次记录了指令大全方便以后翻阅. Vim的几种模式 正常模式:可以使用快捷键命令,或按:输入命令行. 插入模式:可以输入文本,在 ...

  5. Linux/UNIX 下 “command not found” 原因分析及解决

    在使用 Linux/UNIX 时,会经常遇到 "command not found" 的错误,就如提示的信息,Linux /UNIX 没有找到该命令.原因无外乎你命令拼写错误或 L ...

  6. Linux操作系统下三种配置环境变量的方法

    现在使用linux的朋友越来越多了,在linux下做开发首先就是需要配置环境变量,下面以配置java环境变量为例介绍三种配置环境变量的方法. 1.修改/etc/profile文件 如果你的计算机仅仅作 ...

  7. Linux操作系统下三种配置环境变量的方法——转载

    来源:赛迪网 作者:millio       现在使用linux的朋友越来越多了,在linux下做开发首先就是需要配置环境变量,下面以配置java环境变量为例介绍三种配置环境变量的方法. 1.修改/e ...

  8. windows及linux环境下永久修改pip镜像源的方法

    一.在windows环境下修改pip镜像源的方法(以python3.5为例) (1):在windows文件管理器中,输入 %APPDATA% (2):会定位到一个新的目录下,在该目录下新建pip文件夹 ...

  9. Linux系统下不同机器之间拷贝文件的方法

    在Linux系统下,不同机器上实现文件拷贝 一.将本地文件拷贝到远程机器: scp /home/administrator/news.txt root@192.168.6.129:/etc/squid ...

随机推荐

  1. MySql日期加天数,小时,分钟...得到新的时间

    在当前的日期上加三天,天数随便改: SELECT date_add(CURRENT_DATE(), interval 3 day); 在指定的日期上加三天: SELECT date_add('2014 ...

  2. ls 命令通配符(3)

    使用过正则的人应该很熟悉通配符.如果非要解释的话,我找来一段: 通配符是一种特殊语句,主要有星号(*)和问号(?),用来模糊搜索文件. 当查找文件夹时,可以使用它来代替一个或多个真正字符:当不知道真正 ...

  3. java 覆盖

    作者:又见那斯 java中覆盖基于面向对象三大特征之:继承,同时又和另一特征:多态有重要的联系,本文中讨论的有关java中覆盖的一些知识,其实在写代码的时候或许不会用到,不过知道的话总会有用处.如有错 ...

  4. PHP 经典有趣的算法

    原文:https://blog.csdn.net/a519395243/article/details/77942913 1.一群猴子排成一圈,按1,2,…,n依次编号.然后从第1只开始数,数到第m只 ...

  5. django2.0url的变动

    WARNINGS:?: (urls.W001) Your URL pattern '^$' uses include with a route ending with a '$'. Remove th ...

  6. ASP.NET中数据库数据导入Excel并打印(2)

    大家可能觉得上面的代码比较复杂,因为上面对于对打印要求比较高的应用,是十分有效的.如果只是单单对数据进行导出,还可以使用简单的格式,比如使用以下的代码:      Private Sub Page_L ...

  7. es6中let实例应用之一

    有如下情景 html部分: <button class="btn">按钮1</button> <button class="btn" ...

  8. 【学习总结】快速上手Linux玩转典型应用-第5章-远程连接SSH专题

    课程目录链接 快速上手Linux玩转典型应用-目录 目录 1. 认识SSH 2. 服务器安装SSH服务 3. 客户端安装SSH工具 4. 客户端链接SSH服务 5. SSH config 6. SSH ...

  9. Bootstrap table 实现树形表格,实现联动选中,联动取消

    公司最近有需求要做树形式table.因为是前后端不分离项目,且之前已经引入了bootstrap table插件,现把实现方式分享一下: <!DOCTYPE HTML> <html l ...

  10. Java 组件化(gradle)

    组件化什么是组件化,直接看下面两张图. 上面是非组件化的项目,下面是组件化的项目. 非组件化的问题如果项目本身有多个互相不影响的模块,甚至有多人分开负责各个模块的开发时,非组件化项目的弊端就会暴露出来 ...