vim文件编辑器
Vim 是 Vi 的增强版(在 Vi 的基础上增加了正则表达式的查找、多窗口的编辑等功能),使用 Vim 进行程序开发会更加方便。
想深入了解 Vi 和 Vim 的区别,可以在 Vim 命令模式下输入
:help vi_diff
,即可看到关于两者区别的摘要。
1、安装
yum install vim
你想省略手动输入“y”的过程,希望全自动安装,可以使用如下这条命令:yum -y install vim
当命令行中输入“Vim”显示如图 1 所示的画面时,视为 Vim 安装成功。
2、工作模式
使用 Vim 编辑文件时,存在 3 种工作模式,分别是命令模式、输入模式和编辑模式,这 3 种工作模式可随意切换:
使用vim或vi进入命令模式,输入一下命令,实现不同功能:
- i 在当前光标所在位置插入随后输入的文本,光标后的文本相应向右移动
- I 在光标所在行的行首插入随后输入的文本,行首是该行的第一个非空白字符,相当于光标移动到行首执行 i 命令
- o 在光标所在行的下面插入新的一行。光标停在空行首,等待输入文本
- O 在光标所在行的上面插入新的一行。光标停在空行的行首,等待输入文本
- a 在当前光标所在位置之后插入随后输入的文本
- A 在光标所在行的行尾插入随后输入的文本,相当于光标移动到行尾再执行a命令
编辑模式
编辑模式用于对文件中的指定内容执行保存、查找或替换等操作。
使 Vim 切换到编辑模式的方法是在命令模式状态下按“:”键,此时 Vim 窗口的左下方出现一个“:”符号,这是就可以输入相关指令进行操作了。
指令执行后 Vim 会自动返回命令模式。如想直接返回命令模式,按 Esc 即可。
3、基本操作
- vim filename 打开或新建一个文件,并将光标置于第一行的首部
- vim -r filename 恢复上次 vim 打开时崩溃的文件
- vim -R filename 把指定的文件以只读方式放入 Vim 编辑器中
- vim + filename 打开文件,并将光标置于最后一行的首部
- vi +n filename 打开文件,并将光标置于第 n 行的首部
- vi +/pattern filename 打幵文件,并将光标置于第一个与 pattern 匹配的位置
- vi -c command filename 在对文件进行编辑前,先执行指定的命令
插入文本
从命令模式进入输入模式进行编辑,可以按下 I、i、O、o、A、a 等键来完成,使用不同的键,光标所处的位置不同:
- i 在当前光标所在位置插入随后输入的文本,光标后的文本相应向右移动
- I 在光标所在行的行首插入随后输入的文本,行首是该行的第一个非空白字符,相当于光标移动到行首执行 i 命令
- o 在光标所在行的下面插入新的一行。光标停在空行首,等待输入文本
- O 在光标所在行的上面插入新的一行。光标停在空行的行首,等待输入文本
- a 在当前光标所在位置之后插入随后输入的文本
- A 在光标所在行的行尾插入随后输入的文本,相当于光标移动到行尾再执行 a 命令
查找文本
- /abc 从光标所在位置向前查找字符串 abc
- /^abc 查找以 abc 为行首的行
- /abc$ 查找以 abc 为行尾的行
- ?abc 从光标所在为主向后查找字符串 abc
- n 向同一方向重复上次的查找指令
- N 向相反方向重复上次的查找指定
查找时如果想忽略大小写,输入命令“:set ic”,调整回来输入命令“:set noic”
如果在字符串中出现特殊符号,则需要加上转义字符 "\"。常见的特殊符号有 \、*、?、$ 等。如果出现这些字符,例如,要查找字符串 "10$",则需要在命令模式中输入 "/10\$"。
替换文本
- r 替换光标所在位置的字符
- R 从光标所在位置开始替换字符,其输入内容会覆盖掉后面等长的文本内容,按“Esc”可以结束
- :s/a1/a2/g 将当前光标所在行中的所有 a1 用 a2 替换
- :n1,n2s/a1/a2/g 将文件中 n1 到 n2 行中所有 a1 都用 a2 替换
- :g/a1/a2/g 将文件中所有的 a1 都用 a2 替换
要将某文件中所有的 "root" 替换为 "liudehua",则有两种输入命令,分别为:
- :, $s/root/liudehua/g
- 或
- :%s/root/liudehua/g
- 表示的是从第一行到最后一行,即全文查找 "root",然后替换成 "liudehua"。
如果刚才的命令变成 :10,20 s/root/liudehua/g
,则只替换从第 10 行到第 20 行的 "root"。
删除文本
- x 删除光标所在位置的字符
- dd 删除光标所在行
- ndd 删除当前行(包括此行)后 n 行文本
- dG 删除光标所在行一直到文件末尾的所有内容
- D 删除光标位置到行尾的内容
- :a1,a2d 函数从 a1 行到 a2 行的文本内容
被删除的内容并没有真正删除,都放在了剪贴板中。将光标移动到指定位置处,按下 "p" 键,就可以将刚才删除的内容又粘贴到此处。
复制文本
- p 将剪贴板中的内容复制到光标后
- P 将剪贴板中的内容复制到光标前
- yy 将光标所在行复制到剪贴板,此命令前可以加数字 n,可复制多行
- yw 将光标位置的单词复制到剪贴板
其他快捷键
把两行进行连接,比如说,下面的文件中有两行文本,现在需要将其合并成一行(实际上就是将两行间的换行符去掉)。可以直接在命令模式中按下 "J" 键。
如果不小心误删除了文件内容,则可以通过 "u" 键来撤销刚才执行的命令。如果要撤销刚才的多次操作,可以多按几次 "u" 键。
保存退出文本
- :wq 保存并退出 Vim 编辑器
- :wq! 保存并强制退出 Vim 编辑器
- :q 不保存就退出 Vim 编辑器
- :q! 不保存,且强制退出 Vim 编辑器
- :w 保存但是不退出 Vim 编辑器
- :w! 强制保存文本
- :w filename 另存到 filename 文件
- x! 保存文本,并退出 Vim 编辑器,更通用的一个 vim 命令
- ZZ 直接退出 Vim 编辑器
需要注意的是,"w!" 和 "wq!" 等类似的指令,通常用于对文件没有写权限的时候(显示 readonly,如图 12 所示),但如果你是文件的所有者或者 root 用户,就可以强制执行。
4、光标移动
表中所有的快捷键都在命令模式(默认状态)下直接使用。
Vim快捷方向键
- h 光标向左移动一位
- j 光标向下移动一行(以回车为换行符),也就是光标向下移动
- k 光标向上移动一行(也就是向上移动)
- l 光标向右移动一位
Vim光标以单词为单位移动
某些情形下,可能需要光标迅速移动至一行中的某个位置,将光标以单词为单位进行移动就会很方便。
- w 或 W 光标移动至下一个单词的单词首
- b 或 B 光标移动至上一个单词的单词首
- e 或 E 光标移动至下一个单词的单词尾
- nw 或 nW n 为数字,表示光标向右移动 n 个单词
- nb 或 nB n 为数字,表示光标向左移动 n 个单词
Vim光标移动至行首或行尾
- 0 或 ^ 光标移动至当前行的行首
- $ 光标移动至当前行的行尾
- n$ 光标移动至当前行只有 n 行的行尾,n为数字
Vim光标移动至指定字符
一行中,如果需要将光标移动到当前行的某个特点字符,则可以使用表 4 中的快捷键。
- fx 光标移动至当前行中下一个 x 字符处
- Fx 光标移动至当前行中下一个 x 字符处
Vim光标移动到指定行
- gg 光标移动到文件开头
- G 光标移动至文件末尾
- nG 光标移动到第 n 行,n 为数字
- :n 编辑模式下使用的快捷键,可以将光标快速定义到指定行的行首
Vim光标移动到匹配的括号处
程序员在编辑程序时,经常会为将光标移动到与一个 "(" 匹配的 ")" (对于 [] 和 {} 也是一样的)处而感到头疼。Vim 里面提供了一个非常方便地査找匹配括号的命令,这就是 "%"。
比如,在 /etc/init.d/sshd 脚本文件中(最好还是复制后练习,小心驶得万年船),想迅速地将光标定位到与第 49 行的 "{" 相对应的 "}" 处,则可以将光标先定位在 "{" 处,然后再使用 "%" 命令,使之定位在 "}" 处,如图 6 所示。

vim文件编辑器的更多相关文章
- Linux vim文件编辑器使用
学习目标: 通过本实验熟练vim的使用. 步骤: 1.将用户家目录的ls结果重定向到vimfile.txt 2.查看rh124第403页实验要求,并完成 参考命令: 复制文件前,需要先建立文件,教材上 ...
- 鸟哥的Linux私房菜-第10/11/12/13章(vim程序编辑器、学习bash、正则表达式与文件格式化处理、学习Shell Scripts)
第10章 vim程序编辑器 可以将vim看做vi的进阶版本,vim可以用颜色或底线等方式来显示出一些特殊的信息. 为何要学习vim?因为: a. 所有的 Unix Like 系统都会内建 vi 文书编 ...
- Linux系统 vi/vim文本编辑器
Linux系统 vi/vim文本编辑器 (一)Vim/Vi简介 (二)Vim/Vi工作模式 (三)Vim/Vi基本使用 (四)Vim/Vi应用技巧 (一)Vim/Vi简介 Vim/Vi是一个功能强大的 ...
- Vim 文本编辑器的基本使用
Vim文本编辑器是Linux/Unix系统下最常用的工具之一,通过该工具可以很方便的建立.修改.编辑文档或者程序文件,其作用类似与windows系统下的记事本或者notepad++,因此熟练掌握该工具 ...
- 11 vim文本编辑器
和sed相比,sed为字处理器(行编辑器),将文本逐行放入到模式空间(也就是内存)中进行处理,并显示在屏幕上.而vim.vi以及nano都是全屏文本编辑器,而vim则是vi的加强版本,相对于vi,vi ...
- Linux命令行下的vim文本编辑器
Linux命令行下的vim文本编辑器 下面这个网站的地址讲解的非成分清楚!!!! http://blog.csdn.net/niushuai666/article/details/7275406 学习 ...
- 第十章、vim 程序编辑器
第十章.vim 程序编辑器 1. vi 与 vim 1.1 为何要学 vim 2. vi 的使用 2.1 简易执行范例 2.2 按键说明 2.3 一个案例的练习 2.4 vim 的暂存档.救援回复 ...
- vim/vi编辑器挂到后台ctrl + z
vim/vi编辑器通过CTRL+z将文件挂在到后台后,如果要再次进入,需通过jobs查看文件的序号,然后通过fg 序号进入文件进行编辑 (BaiduPictureToWord) [master@ins ...
- linux100day(day3)--常用文本处理命令和vim文本编辑器
今天,来介绍几个常用文本处理命令和vim文本编辑器 day3--常用文本处理命令和vim文本编辑器 col,用于过滤控制字符,-b过滤掉所有控制字符,这个命令并不常用,但可以使用man 命令名| co ...
随机推荐
- 最简单MySQL教程详解(基础篇)之多表联合查询
在关系型数据库中,我们通常为了减少数据的冗余量将对数据表进行规范,将数据分割到不同的表中.当我们需要将这些数据重新合成一条时,就需要用到我们介绍来将要说到的表连接. 常用术语冗余(Redundancy ...
- 【扩展GCD】荒岛野人
题目 [题目描述] 克里特岛以野人群居而著称.岛上有排列成环行的M个山洞.这些山洞顺时针编号为1,2,-,M.岛上住着N个野人,一开始依次住在山洞C1,C2,-,CN中,以后每年,第i个野人会沿顺时针 ...
- 02:linux常用命令
1.1 linux查看系统基本参数常用命令 1.查看磁盘 [root@linux-node1 ~]# df -hl Filesystem Size Used Avail Use% Mounted on ...
- 数据结构(四) 图(Graph)
在图形结构中,结点之间的关系可以是任意的. 一.图 图由定点(vertex)和边(edge)两个有限集合组成: Graph=(V,R) V是定点集,R={E},E是边集. 有向图(directed n ...
- leecode刷题(26)-- 用栈实现队列
leecode刷题(26)-- 用栈实现队列 用栈实现队列 使用栈实现队列的下列操作: push(x) -- 将一个元素放入队列的尾部. pop() -- 从队列首部移除元素. peek() -- 返 ...
- 前端Ajax通过设置 timeout 参数,轮询后台API
因为我连接的数据库在台湾,相距较远,所以conn.Open()方法打开极慢.前端Ajax访问API时,API的数据还未返回,前端Ajax访问已经超时. 所以设置一个轮询,设置相隔多少秒之后进行一次查询 ...
- 定制ListView的界面(让列表中不仅有文字还有图片fruitImage.setImageResource(fruit.getImageId());)
1.定义自己的实体类来作为ListView的适配类型如: public class Fruit { private String name;//水果的名字 private int imageId;// ...
- bzoj 4722 由乃
bzoj 先考虑一种简单的情况,即这个区间是否有相同的数,因为值域大小为1000,那么当区间长度\(>1000\)时,根据鸽巢原理,一定会有两个相同的数,这时候可以直接输出Yuno 进一步的,对 ...
- js 发送异步请求
js用XMLHttpRequest发送异步请求 发送GET请求 var xhr = new XMLHttpRequest(); xhr.open('GET',url);//url为请求地址 xhr.r ...
- 四,k8s集群资源清单定义入门
目录 资源对象 创建资源的方法 清单帮助命令 创建测试清单 资源的三种创建方式 资源对象 workload:Pod, ReplicaSet, Deployment, StatefulSet, Daem ...