概述

  以下这篇文章介绍的是关于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. Android怎么改图标都不生效&&Android studio 如何修改APP图标和名字

    去这里(我自己写的),解决方法包你满意: https://blog.csdn.net/qq_43141611/article/details/101875545

  2. 题解 AT1877 【回文分割】

    题意:给定一个字符串 s,将 s 分割成一些子串,使每个子串都是回文串. 返回 s 所有可能的分割方案. 示例: 输入:aab 输出:3 解释:aba 思路: 记录字符串中每个字符出现的次数si 如果 ...

  3. javascript学习笔记--经典继承、组合继承、原型式继承、寄生继承以及寄生组合继承

    经典继承 js中实现经典继承的方式是通过构造函数来实现的,即在子类中对父类调用call方法. function Geometric() { this.time = ""; this ...

  4. 搜索专题: HDU1258Sum It Up

    Sum It Up Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total ...

  5. 什么是lambda函数?有什么好处?

    lambda 函数是一个可以接收任意多个参数(包括可选参数)并且返回单个表达式值的匿名函数 好处:1.lambda 函数比较轻便,即用即删除,很适合需要完成一项功能,但是此功能只在此一处使用,连名字都 ...

  6. Delphi7所使用的WinAPI大全(摘自VCL源码,一共1200个函数)

    经过我整理的,去掉了A和W的重复.虽然没写注释,但以后要一个一个研究.有这些WINAPI就够用了. kernel32 = 'kernel32.dll'; gdi32 = 'gdi32.dll'; us ...

  7. 两个 DataTable 读取重复数据,dataTable1与dataTable2不同

    protected void Page_Load(object sender, EventArgs e) { DataTable dt = new DataTable(); dt.Columns.Ad ...

  8. ThinkPHP视图css和js加上版本号防止缓存

    前台模块中,我的所有控制器都继承BaseController,虽然ThinkPHP中我们提供了两个配置项 'TMPL_CACHE_ON' => false,// 禁止模板编译缓存 'HTML_C ...

  9. python学习笔记(2):科学计算及数据可视化入门

    一.NumPy 1.NumPy:Numberical Python 2.高性能科学计算和数据分析的基础包 3.ndarray,多维数组(矩阵),具有矢量运算的能力,快速.节省空间 (1)ndarray ...

  10. Huawei交换机路由器远程Telnet配置

    <huawei>system-view Enter system view, return user view with Ctrl+Z.[huawei]interface g0/0/0[h ...