Linux 系统 vim 编辑器使用简明教程

vi(vim)是上Linux非常常用的代码编辑器,很多Linux发行版都默认安装了vi(vim)。vi(vim)命令繁多但是如果使用灵活之后将会大大提高效率。vi是“visual interface”的缩写,vim是vi IMproved(增强版的vi)。在一般的系统管理维护中vi就够用,如果想使用代码加亮的话可以使用vim。

基本上vi可以分为三种状态,分别是命令模式(command mode)、输入模式(Insert mode)和底行模式(last line mode),各模式的功能区分如下: 1) 命令模式(command mode) 控制屏幕光标的移动,字符、字或行的删除,移动复制某区段及进入插入模式、底行模式下。 2) 输入模式(Insert mode) 只有在输入模式下,才可以做文字输入,按ESC键可回到命令模式。 3) 底行模式(last line mode) 将文件保存或退出vi,也可以设置编辑环境,如寻找字符串、列出行号。

不过一般我们在使用时把vi简化成两个模式,就是将底行模式也算入命令模式。

一、打开文件、保存、关闭文件(vi命令模式下使用)

vi filename       //打开filename文件 :w       //保存文件 :w debian.cn //保存为当前目录下的文件”debian.cn” :q          //退出编辑器,如果文件已修改请使用下面的命令 :q!        //退出编辑器,且不保存 :wq         //退出编辑器,且保存文件 :x! //退出编辑器,且保存文件,忽略是否对文件具有写权限

(adsbygoogle = window.adsbygoogle || []).push({});

二、插入文本或行(vi命令模式下使用,执行下面命令后将进入插入模式,按ESC键可退出插入模式)

a      //在当前光标位置的右边添加文本 i       //在当前光标位置的左边添加文本 A     //在当前行的末尾位置添加文本 I      //在当前行的开始处添加文本(非空字符的行首) O     //在当前行的上面新建一行 o     //在当前行的下面新建一行 R    //替换(覆盖)当前光标位置及后面的若干文本 J    //合并光标所在行及下一行为一行(依然在命令模式)

三、移动光标(vi命令模式下使用)

vi 可以直接用键盘上的光标来上下左右移动,但正规的vi是用小写英文字母 h 、 j 、 k 、 l ,分别控制光标左、下、上、右移一格。

按 Ctrl+b :屏幕往后移动一页。

按 Ctrl+f :屏幕往前移动一页。

按 Ctrl+u :屏幕往后移动半页。

按 Ctrl+d :屏幕往前移动半页。

按数字 0 :移到当前行的开头。

按 G :移动到文章的最后。

按 $ :移动到光标所在行的行尾。

按 ^ :移动到光标所在行的行首。

按 w :光标跳到下个字的开头。

按 e :光标跳到下个字的字尾。

按 b :光标回到上个字的开头。

按 #l :光标往后移的第#个位置,如:5l,56l .

四、删除、恢复字符或行(vi命令模式下使用)

x :每按一次,删除光标所在位置的后面一个字符。

#x :删除光标所在位置的后面#个字符,例如, 6x 表示删除光标所在位置的后面6个字符。

X :每按一次,删除光标所在位置的前面一个字符。

#X :删除光标所在位置的前面#个字符,例如, 20X 表示删除光标所在位置的前面20个字符。

dd :删除光标所在行。

#dd :从光标所在行开始删除#行。

五、搜索(vi命令模式下使用)

/yusi123     //向光标下搜索yusi123字符串 ?yusi123     //向光标上搜索yusi123字符串 n           //向下搜索前一个搜素动作 N         //向上搜索前一个搜索动作

六、跳至指定行(vi命令模式下使用)

n+        //向下跳n行 n-         //向上跳n行 nG        //跳到行号为n的行 G           //跳至文件的底部

七、设置行号(vi命令模式下使用)

:set  nu     //显示行号 :set nonu    //取消显示行号

八、复制、粘贴(vi命令模式下使用)

yy    //将当前行复制到缓存区,也可以用 “ayy 复制,”a 为缓冲区,a也可以替换为a到z的任意字母,可以完成多个复制任务。 nyy   //将当前行向下n行复制到缓冲区,也可以用 “anyy 复制,”a 为缓冲区,a也可以替换为a到z的任意字母,可以完成多个复制任务。 yw    //复制从光标开始到词尾的字符。 nyw   //复制从光标开始的n个单词。 y^      //复制从光标到行首的内容。 y$      //复制从光标到行尾的内容。 p        //粘贴剪切板里的内容在光标后,如果使用了前面的自定义缓冲区,建议使用”ap 进行粘贴。 P        //粘贴剪切板里的内容在光标前,如果使用了前面的自定义缓冲区,建议使用”aP 进行粘贴。

九、替换(vi命令模式下使用)

:s/old/new      //用new替换行中首次出现的old :s/old/new/g         //用new替换行中所有的old :n,m s/old/new/g     //用new替换从n到m行里所有的old :%s/old/new/g      //用new替换当前文件里所有的old

十、编辑其他文件

:e otherfilename    //编辑文件名为otherfilename的文件。

十一、修改文件格式

:set fileformat=unix   //将文件修改为unix格式,如win下面的文本文件在linux下会出现^M。

注意:如果不知道自己处在什么模式时可以按2次Esc键即可回到命令模式,会有最后提醒一点:注意大小写!!【本文转载自 欲思博客 略有增删】

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏林冠宏的技术文章

Golang, 以17个简短代码片段,切底弄懂 channel 基础

(原创出处:https://cloud.tencent.com/developer/user/1148436/activities) 前序:   因为打算自己搞...

3805
来自专栏小程序·云开发专栏

云函数之间互相调用实现邮件发送

很多时候,我们会面临在小程序的后台实现多重功能,比如用户管理、日志分析、数据排序等,不同的功能之间还会相互调用。如果把这些功能都写到一个云函数里,会造成云函数逻...

7.4K2
来自专栏北京马哥教育

大神带你 20 分钟学会 Ansible !

4962
来自专栏逆向技术

框架原理第一讲,熟悉常用的设计方式.(以MFC框架讲解)

          框架原理第一讲,熟悉常用的设计方式.(以MFC框架讲解) 一丶什么是框架,以及框架的作用 什么是框架?   框架,简而言之就是把东西封装好了...

23711
来自专栏along的开发之旅

程序集版本号,文件版本号及发布版本号管理

在.net框架中和CLR运行时钟引用,如使用程序集的强命名时就会使用. 按照我的理解,你所使用的库如log4net,常见的有2.0和4.0的,那么你下载的库...

1351
来自专栏高性能服务器开发

(一)Redis结构解析

从今天起,本人将会展开对Redis源码的学习,Redis的代码规模比较小,非常适合学习,是一份非常不错的学习资料,数了一下大概100个文件左右的样子,用的是C...

2924
来自专栏IT派

Python 的异步 IO:Asyncio 简介

所谓「异步 IO」,就是你发起一个 IO 操作,却不用等它结束,你可以继续做其他事情,当它结束时,你会得到通知。

1083
来自专栏达摩兵的技术空间

你不知道的opn模块

opn模块通常是作为跨平台的打开文件或者网站的模块,在web应用中最常见的使用是比如项目开发或者启动的时候打开浏览器进行访问。

571
来自专栏深度学习自然语言处理

有关vi(vim)的常用命令

导读 vi(vim)是上Linux非常常用的编辑器,很多Linux发行版都默认安装了vi(vim)。vi(vim)命令繁多但是如果使用灵活之后将会大大提高效率。...

3186
来自专栏醒者呆

RPC的基础:调研EOS插件http_plugin

EOS中,一个插件的使用要先获取其实例,例如http_plugin获取实例的语句是:

942

扫码关注云+社区

领取腾讯云代金券