vim编辑器的常用技巧
vim编辑器的常用技巧
文章目录
- vim编辑器的常用技巧
- 前言
- Vi的使用
- vi的三种模式
- 常用按键说明
- Vim额外功能
- 多文件编辑
- 多窗口编辑
- 参考文章
前言
我们在使用 Windows 系统时,如果想要更改一些文件的内容,我们通常会以记事本格式(即 txt 格式)打开文件,往里面写入或修改一些内容,记事本就是我们常用的一款文件编辑器。同样地,在 Linux 系统下,我们也需要一款文本编辑器来编辑文件的内容。
Linux 系统在命令行模式下的文本编辑器是非常多的,比如 nano、pico、vim等。这其中最重要的,最需要掌握的,就是 vim
编辑器了。
在 Linux 系统中,有一个老式的编辑器 vi
,功能很齐全,是一款较为好用的文本编辑工具,大家都喜欢用。而 vim 是 vi 的高级版本,包含了 vi 所有功能的同时,vim里面又加入了很多额外的功能,比如支持正则表达式,多文件编辑等,vim更像是一款程序开发工具,已经获得了大家的一致好评。
列举一下学习 vi/vim 的重要性:
- 所有的 UNIX-like 系统基本都会内置 vi 文本编辑器,而别的文本编辑器则不一定会有
- 很多软件的编辑接口都会主动调用 vi
- vim具有程序编辑的功能,可以主动识别对应语法,并以字体颜色作为区分,方便判断语法是否正确,纠正程序书写。
- 编辑速度很快
注意,现在的 Linux 系统中,已经默认用 vim 替代 vi 了,所以在命令行中直接输入 vi 或者 vim 的效果是一样的。
Vi的使用
vi的三种模式
基本上 vi 共分为三种模式:
- 一般命令模式(command node)
- 编辑模式 (insert mode)
- 命令行模式(command-line mode)
一般命令模式也被称为普通模式,是默认进入的模式,用 vi 打开一个文件就进入一般命令模式了。这里注意,如果文件存在,则vi会打开对应文件;如果文件不存在,vi会新建一个文件再打开,所以打开文件时一定要输入正确的文件名。
vi filename //比如 vi test.txt
在一般命令模式下,可以进行删除、复制、粘贴等操作,比如,光标移到要删除的那行,输入 dd
,删除该行。但是不允许编辑文件内容。想要进行编辑,得进入编辑模式才可以。
如下图所示,已经进入一般命令模式。
在一般命令模式下,输入 i
、o
、a
、r
(不论大小写)其中任何一个字母,都会进入编辑模式。前三个字母代表的是 insert,最后一个 r 代表的是 replace。
注意,要看到左下角出现【INSERT】或【REPLACE】的字样,才真正进入了编辑模式,在编辑模式下可以任意编辑文本内容。如果要退出编辑模式,按下【Esc】键可即退回到一般命令模式。
在一般命令模式下,输入 :
、/
、?
其中任何一个符号,就可以把光标移动到最下面那一行,进入命令行模式。
在命令行模式中,可以进行数据的查找,读取、保存、批量替换字符串、退出vi、显示行号等操作。同样地,按下【Esc】键即可退回到一般命令模式。
这里注意一点,一般命令模式是默认进入的模式,但是要退出 vi ,只能通过命令行模式退出。
总结一下三个模式之间的关系,一般命令模式可以和其他两个模式之间相互切换,但是编辑模式与命令行模式不可以相互切换。
用 vim 来编辑文件最常用的一种方式是,用 vim 文件名
的方式打开文件,按 i
进入编辑模式对文件进行编辑,编辑完成后按 【Esc】
键退回到一般命令模式,按下 :
进入命令行模式,输入 wq
并回车,文件保存成功。
常用按键说明
下面的表格列举了一些常用按键(区分大小写),在一般命令模式下,学会这些按键使用,可以帮助自己提升效率,事半功倍。
按键 | 移动光标 |
---|---|
h 或 左箭头 ← | 光标向左移动 |
j 或 下箭头 ↓ | 光标向下移动 |
k 或 右箭头 → | 光标向右移动 |
l 或 上箭头 ↑ | 光标向上移动 |
ctrl + f | 屏幕向下移动一页 |
ctrl + b | 屏幕向上移动一页 |
n<space>
|
n表示数字,按下数字后再按空格键,光标会向右移动 n 个字符的位置 |
n<enter>
|
n表示数字,按下数字后再按回车键,光标会向下移动 n 行 |
0 | 数字0,光标会移动到这一行的第一个位置 |
$ | 光标移动到这一行最后一个位置 |
gg | 光标移动到文件的第一行,相当于 1G |
G | 光标移动到文件的最后一行 |
nG | n表示数字,光标移动到文件的第 n 行 |
命令 | 查找与替换 |
---|---|
/word | 从光标位置开始,向下查找一个名为 word 的字符串 |
?word | 从光标位置开始,向上查找一个名为 word 的字符串 |
n | n是英文按键,重复前一个查找的操作 |
:n1,n2s/word1/word2/g |
n1、n2为数字,在第 n1 与 n2 行之间寻找 word1 这个字符串, 并将其全部替换为 word2(注意前面有冒号) |
:1,$s/word1/word2/g | 在第一行与最后一行之间寻找 word1 这个字符串,并将其全部替换为 word2 |
:1,$s/word1/word2/gc | 加了一个 c,在替换前会询问用户是否替换 |
如果不小心替换错了,可以按 u
撤销上一步操作。
按键 | 删除、复制与粘贴 |
---|---|
x/X |
以光标位置为起点,x表示向后删除一个字符(相当于Delete) X表示向前删除一个字符(相当于Backspace) |
nx | n为数字,连续向后删除n个字符。nX 则连续向前删除 n 个字符 |
dd | 剪切光标所在的那一行数据 |
ndd | n为数字,剪切包含光标所在行向下的 n 行数据。nyy同理 |
d$ | 剪切光标所在处到该行的最后一个字符。y$同理 |
yy | 复制光标所在的那一行数据 |
p/P | p将一复制的数据在光标下一行粘贴,P在上一行粘贴 |
J | 将光标所在行与下一行数据结合成同一行 |
u | 撤销上一步操作 |
. | 小数点,重复上一步操作 |
这里注意,小数点是不能重复撤销操作的。举个例子,有一行数据 “Linux is funny”,光标在 x 字符上,按下 d$
,本行数据变为 “Linu”,按下 u
进行撤销,数据恢复为 “Linux is funny”,此时按下小数点 .
会重复进行 d$
操作,而不是撤销,数据又变成了 “Linu”。
命令 | 保存、退出 |
---|---|
:w | 将编辑的文件进行保存 |
:w! | 若文件属性是只读属性,如果用户权限足够,可以进行强制保存 |
:q | 退出 vi/vim |
:q! | 强制退出 |
:wq |
保存并退出,:wq! 即为强制保存并退出
|
ZZ | 文件没有修改则直接退出,文件修改了则保存再退出 |
:! command | 暂时退出 vi/vim 到命令行模式下执行 command的显示结果(注意空格) |
:set nu | 显示行号 |
:set nonu | 不显示行号 |
例如,:! ls ~
这条命令,可以查看当前 home 目录下面以 ls 输出的文件信息,按任意键可以回到 vi/vim 中。
Vim额外功能
多文件编辑
我们用 vi 打开一个文件的时候它是占满全屏的,我们看不到别的文件,也只能编辑当前文件。vim支持我们进行多个文件同时编辑,可以来回切换而不是频繁退出。
命令 | 多文件编辑 |
---|---|
:n | 编辑下一个文件 |
:N | 编辑上一个文件 |
:files | 列出目前这个 vim 开启的所有文件 |
举个例子。首先,我们先一次性打开两个文件,系统会默认显示第一个文件
vim test1.txt test2.txt
输入 :files
即可看到我们同时打开了两个文件,%a表示当前正在查看的是 test1.txt 文件。
按任意键继续,输入 :n
即可切换到下一个文件进行编辑。
注意,必须是用 vim 同时打开多个文件才行。
多窗口编辑
如果想需要同时对照多个文件进行编辑,多文件下就得反复横跳,对照的效率大大降低,感觉比较麻烦。幸好 vim 为我们提供了多窗口编辑的功能,有了多窗口,就可以方便地进行文件的对照和编辑了。
相比之下,多窗口就比多文件更灵活、更好用,而且没有了多文件必须同时打开的限制。
命令 | 多窗口编辑 |
---|---|
:sp {filename} |
打开一个新窗口,如果有 filename,则在新窗口打开新文件; 如果仅输入了 :sp 则将当前文件再用新窗口打开一次
|
ctrl + w + j ctrl + w +↓ |
先按下 ctrl 键不放,再按下 w 键,松开所有按键,再按下 j 或方向键,光标移动到下面的窗口 |
ctrl + w + k ctrl+ w + ↑ |
同理,光标移动到上面的窗口 |
:q |
退出当前窗口,:wq 同理使用
|
比如,我们先用 vim 打开刚才的 test1.txt 文件,再通过命令行输入 :sp test2.txt
即可使用多窗口,对照更方便,不易出错。
想退出哪个窗口,可以先将光标切换到对应窗口,按 Esc
键进入一般命令模式,再输入 :q
退出。
参考文章
鸟哥的Linux私房菜——基础学习篇(第四版)
vim编辑器的常用技巧相关推荐
- Linux基础(1)--Vim编辑器的常用命令
Vim编辑器的常用命令 指令模式 输入模式 底行模式(shift+:) 指令模式 指令模式命令也叫命令行模式 – G 光标置于文本最后一行,最后一列.大写输入为按键"Shift+g" ...
- 【Red Hat 】vim编辑器的常用命令以及使用技巧
vim编辑器分为三种模式:命令模式.输入模式.末行模式(插入模式) 下面为大家介绍一些常用的vim编辑器的常见的快捷键已经使用技巧 显示行号和翻页 :set nu 显示行号 :set nonu 取消 ...
- vim编辑器下常用搜索技巧
步骤1:进入vim编辑器 vim /etc/ssh/ssh_config 步骤2:搜索方式 方式一:快速搜索(字符串完全匹配,区分大小写) 格式: / + 关键词 or ?+ 关键 ...
- Vim编辑器的常用快捷键.
Linux中的文本操作离不开Vim编辑器的使用. Vim编辑器的使用相对门槛较高.需要挺长一段时间的适应. 总结一些Vim使用过程中常用的命令(这些命令基本上都是在vim的命令模式下使用) 1.跳转到 ...
- Linux下编译cscope,vim+ctags+cscope 常用技巧和命令
首先声明,本文不适用于初学者! 1 编译ctags需要的文件 #make ARCH=x86 tags ARCH=x86 的意思是除了索引指定的x86体系结构的代码外,不索引其他体系结构的想关代码 2 ...
- 鸟哥私房菜—Vim编辑器的常用快捷键
一 移动游标的方法 页面级别 [Ctrl] + b / [Ctrl]+ PgUp 向上移动一页 [Ctrl] + f / [Ctrl]+ PgDn 向下移动一页 [Ctrl] + u 向 ...
- c语言 常用命令,嵌入式基础—C语言(1)—vim编辑器的常用命令
~:家目录 $:提示符 [2] 开启终端 ctrl+shift+n:打开为当前目录 ctrl+alt+t:打开终端默认为家目录 [3] ls 浏览目录 ls -a 浏览所有的文件,包括隐藏 ...
- linux(linux常用命令,软件安装,vim编辑器)
linux2 linux常用命令 软件安装 vim编辑器 linux常用命令 系统信息 date 显示系统日期 cal / cal 2018 关机 (系统的关机.重启以及登出 ) shutdown - ...
- Linux知识之vim编辑器
文章目录 一.vi与vim文本编辑器 1.什么是文本编辑器 2.vi/vim编辑器简介及区别 2.1 简介 2.2 vi与vim的区别 二.vim编辑器 2.1 vim编辑器使用指南 2.2 进入文件 ...
最新文章
- Devexpress 之gridControl
- ont维修使能工具_上海OTC机器人维修保养以及调试服务了解
- SegmentFault D-Day 北京:大数据
- vb怎么抓取html的class,vbs怎么获取网页内容
- Centos:Yum常用参数
- 讨物联网的隐私解决方案_2017年数据隐私日:日常隐私解决方案
- CStatic类的GDI双缓冲绘图
- 程序设计: 猫大叫一声,所有的老鼠都开始逃跑,主人被惊醒。(C#语言)
- 如何在工具类中注入Service
- 机器学习 周志华 课后习题 7.3
- python爬虫遇到动态加密怎么办?爬取某点评网站内容
- Windows系统下查询本机IP地址和MAC地址
- 软件设计师:06-程序设计语言与语言处理程序基础
- Spark bucketing bucket分桶原理和应用
- Mercurial修改历史changeset
- 微信公众号 H5 jssdk 分享卡片功能实现(亲测使用)
- ET5.0 UGUI替换为FairyGUI
- x86_64 OpenWrt/LEDE 环境下使用mentohust配置锐捷上网共享网络
- 神威太湖之光是微型计算机,【单选题】国研制的神威·太湖之光计算机是 。
A. 微型计算机
B. 超级计算机
C. 小型计算机
D. 中型计算机...
- 大家都有什么时间管理的工具和技巧?这款便签软件赶紧收藏
热门文章
- springboot启动流程
- AutoBench的使用分析
- Android --- 怎么去掉小数后面不必要的 0
- jQuery面试题-区别mouseover和mouseenter的不同之处(看了也许对你有好处)
- oracle 202,Oracle Certification 1Z0-202题库
- php mongo分页查询,PHP操作Mongodb之高级查询篇
- 普平数据招聘:数据中心建设项目经理(工程部 )2人
- Tool之Adobe:解决Adobe acrobat pro将PDF文件进行批量保存单页PDF文件(图文教程)
- 成功解决SyntaxError: import * only allowed at module level
- 成功解决TypeError: fit_transform() takes 2 positional arguments but 3 were given