vim常用命令

news/2024/7/1 16:42:52

vim

vim是一个常用的文本编辑工具,在远程服务器中更改系统配置中经常使用。

基础
vim的模式
Vim一般分为三种不同的模式,普通模式( normal mode )、编辑模式和命令模式.

普通模式( normal mode )

使用vim打开文件则进入普通模式。在普通模式下可通过按键 h、j、k、l来控制光标的移动,通过 x、d(delete) 、 y(yank) 、p(put)等按键可对文本进行操作,在该模式下,键盘按键被视为类似 Word下的快捷键的功能,而不是被视为简单的文本输入。

编辑模式

在编辑模式下可对文件内容进行编辑。编辑模式下按键输入均被视为文本输入,而不再具备普通模式下的各种功能。用户可以通过按键ESC从编辑模式返回普通模式。

命令模式

在普通模式下,键盘输入 ’ : '、 ’ / '、 ’ ? '则光标移动至界面最下行,并等待进一步输入。之后Vim会根据用户输入执行相应的动作,如保存和退出、查找和替换、执行外部命令等。命令模式下同样通过ESC键返回普通模式。

普通模式下的操作文件。

vim filename   //打开名为filename的文件:w               //保存修改至源文件:wq              //保存修改并退出:q!              //不保存修改,直接退出:w filename      //保存修改(选中的部分)至filename(其中filename为不存在重名的新文件)

进入编辑模式

常用小写的i和o即可,i代表当行这个光标位插入,o代表下一行插入。

    i    //insert即插入模式,从光标所在位置开始插入,即插入的内容位于原光标所在位置字符之前I    //从光标所在行的行首开始插入a    //append即附加模式,从光标所在位置之后附加,即新增内容位于原光标所在位置字符之后A    //从光标所在行的行末开始附加o    //在光标所在行的下一行加入新一行O    //在光标所在行的上一行加入新一行R    //进入替换模式,屏幕下方会出现Replace提示,此时的输入会直接替换光标所在位置的字符,与Windows下的 0 作用类似,同样通过ESC键返回

删除操作

在普通模式下使用dd命令即可删除当行

    x        //删除光标所在处的字符(其大写形式X为将光标之前的字符删除,相当于Backspace)dd      //删除光标所在行的操作(常用)dw         //删除一个单词d3w       //删除三个单词d$         //删除光标所在处至行尾的字符d4l        //删除光标所在处起的四个字符d2j        //删除两行

同样的,如 2dd 指令则表示将dd指令重复两次,即为删除两行操作,2d2w 则表示将 d2w 操作执行两次,即删除四个单词。

复制与粘贴

复制即通过 v 指令选定文本段,通过 y 指令复制内容,再通过 p 指令将文本放置在指定位置;剪切即通过 v 指令选定文本段,通过 d (或 x )指令删除内容,再通过 p 指令将文本放置在指定的位置; p 指令除了用于复制内容的粘贴外,还可以将上一次删除的内容粘贴在指定的位置,故而可以达到类似剪切的效果。对于 v 指令选中的文本,可以进行多种操作,包括复制(y)、删除(x/d)、另存(:w filename)等,读者完全可以自行进行组合尝试。指令y和d的指令形式有许多相同之处,除了均有yy和dd这种针对一行内容的处理指令外,指令y可以与光标移动指令相结合,得到更好的使用效果。

    p                    //put命令,将剪贴的内容(注意,既可以是复制的内容,也可以为之前删除的内容)放置在光标后的位置,其大小字母P则表示放置在光标之前的位置v                    //进入虚拟选择模式(visual selection),被选择的文本段被高亮显示(v的选择对象为字符,对应的大写字母V则是以行为单位选择)Ctrl + v        //以矩形框的形式进行内容选择y                    //复制通过 v 操作选择的文本,或则其本身也可以与光标移动指令一同使用y5w                     //如y5w,则复制5个单词(注意复制是从光标所在处开始的)yy    //复制光标所在行的内容y0    //复制光标所在位置至行首的内容y$    //复制光标所在位置至行尾的内容yG    //复制光标所在位置至文本结束的内容ynG   //复制指令与nG指令的结合//以及诸如y3w、y3j等指令

行跳转

    gg        //跳转至文件第一行G         //跳转至文件最后行nG        //跳转至文件第 n 行  

撤销

    u            //撤销上一次操作U            //撤销对光标所在行的所有操作Ctrl+r      //重做上一操作

查找

    /keyword         //按默认方向查找关键字?keyword         //按与默认方向相反的方向查找关键字n                //按与之前相同的查找顺序匹配下一个出现相同关键字的位置N                //按与之前相反的查找顺序匹配下一个出现相同关键字的位置//用户也可以通过Ctrl + o 和 Ctrl + i 进行位置的切换

替换

    :s/old/new           //将光标所在行出现的第一个old替换为new(仅对该行的第一个old)             :s/old/new/g        // 将光标所在行出现的所有old替换为new            :s/old/new/gc       //同上,替换之前提示用户确认是否替换      :n,ms/old/new/g   //在n和m指定的行之间进行检查和替换    :%s/old/new/g    //针对整个文本进行替换

修改编辑选项

修改 ~/.vimrc 文件

:set nu         //显示行号,相应的set nonu则为不显示行号:set ic         //搜索忽略大小写(ignore case),取消即为 set noic:set hlsearch    //搜索时匹配的结果高亮显示:set incserch    //设置搜索时的搜索顺序//可以看到,在对应的选项前面加入前缀no即表示取消取消对应的选项:set ruler    //右下角展示状态栏:set             //显示与系统默认设置不同的参数情况,即被修改过的参数情况:set syntax on  //设置Vim会根据语法以不同颜色显示不同的内容:set syntax off

http://lihuaxi.xjx100.cn/news/268633.html

相关文章

正则表达式的基本入门

一、正则表达式基本语法 1. 两个特殊的符号‘^’和‘$’。他们的作用分别指出一个字符串的开始和结束。 2. 其他还有‘*’,‘’,‘?’这三个符号,表示一个或一序列字符重复出现的次数 "ab{2}" ---表示一个字符串有一个…

python将一个json字典转换为一个python对象

python将一个json字典转换为一个python对象 示例代码: from collections import OrderedDict import jsondata {"name":"张三","age":50,"prices":520.1314} json_data json.loads(data, object_pairs_hookOrderedDict…

谷歌教父传奇:跳级读博士、大学共同创立 Google ,规定工程师 25% 时间思考创意...

作者 | 年素清责编 | 王晓曼出品 | 程序人生(ID:coder_life)谢尔盖布林(Sergey Brin)是世界科技巨头Google公司的联合创始人,现任Google母公司Alphabet的总裁,身价高达4700亿人民币。他出身苏联…

Lnmp安装与配置笔记

——————————————安装与配置——————————————1.相关软件:yum -y install gcc gcc-c autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glibc glibc-devel glib2 glib2-…

tftp

硬件环境是三星的s5pv210; tftp指令是uboot下的一个命令,uboot为了部署内核就需要将内核镜像从主机下载过来,然后烧录到本地flash中,uboot如何从主机(win或linux)下载镜像到开发板?有很多种方法。 主流方式是&#xf…

linux bin命令解释,Linux:“awk”命令的妙用

原标题:Linux:“awk”命令的妙用导读awk是一个强大的文本分析工具,简单来说awk就是把文件逐行读入,(空格,制表符)为默认分隔符将每行切片,切开的部分再进行各种分析处理。0、基本用法awk是一个强大的文本分…

移动端最强适配(rem适配之px2rem) 移动端结合Vuex实现简单loading加载效果

一、rem之px2rem适配 前言:相信许多小伙伴上手移动端时面对各式各样的适配方案,挑选出一个自己觉得简便、实用、高效的适配方案是件很纠结的事情。 深有体会... 经过多个移动端项目从最初的 viewport --> 百分比 --> rem --> rem的升级版px2rem…

重磅!国内首个面向自动驾驶领域的多传感器数据融合系统课程

应用背景介绍多传感器融合是一项结合多传感器数据的综合性前沿内容,主要包括Camera、激光雷达、IMU、毫米波雷达等传感器的融合,在自动驾驶、移动机器人的感知和定位领域中占有非常重要的地位;随着AI技术的大规模落地,图森、百度、…