5 Vim文本编辑器
- Vim 是一个基于文本界面的编辑工具,使用简单且功能强大。更重要的是,Vim 是所有 Linux 发行版本默认的文本编辑器,通过一些插件可以实现和IDE一样的功能,所以连vim官方网站 也说Vim是一个程序开发工具而不是文字处理软件。。
- 所有的 Unix Like 系统都会内建 vi 文书编辑器,其他的文书编辑器则不一定会存在。但是目前我们使用比较多的是 vim 编辑器。vim 具有程序编辑的能力,可以主动的以字体颜色辨别语法的正确性,方便程序设计。
- Vim 和 Vi区别,vi 是老式的字处理器,不过功能已经很齐全了,但是还是有可以进步的地方。 Vim 是 Vi 的增强版(在 Vi 的基础上增加了正则表达式的查找、多窗口的编辑等功能),使用 Vim 进行程序开发会更加方便。 vim 则可以说是程序开发者的一项很好用的工具。
可以在 Vim 命令模式下输入
:help vi_diff
,即可看到关于两者区别的摘要。
5.1 Vim及其安装
-
Linux 系统中“一切皆文件”,当我们在命令行下更改文件内容时,不可避免地要用到文本编辑器。可供选择的编辑器不止一种,例如 Vim、emacs、pico、nano 等,很多人都找到了自己所喜爱的编辑器,我们主要要知道对文本编辑器的功能(如查找、编辑,保存、剪切和粘贴)
-
Vim文本编辑器,是由 vi 发展演变过来的文本编辑器,代码补全、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。因其具有使用简单、功能强大、是 Linux 众多发行版的默认文本编辑器等特点
-
Vim 的安装:Linux 发行版系统,通常都已经默认安装好了 vi 或 Vim 文本编辑器,Centos 也不例外,该系统就默认安装有 vi 文本编辑器。
如果在命令行模式下输入“vim”,输出结果为“Command not found”,则表示此系统中未安装 Vim。
- CentOS 系统中,使用如下命令即可安装 Vim:
yum install vim #注意,此命令运行时,有时需要手动确认 [y/n]
#省略手动输入“y”的过程,希望全自动安装
yum -y install vim
- 当命令行中输入“Vim”显示如下文本,视为 Vim 安装成功。
~
~ VIM - Vi IMproved
~
~ version 8.0.1763
~ by Bram Moolenaar et al.
~ Modified by <bugzilla@redhat.com>
~ Vim is open source and freely distributable
~
~ Help poor children in Uganda!
~ type :help iccf<Enter> for information
~
~ type :q<Enter> to exit
~ type :help<Enter> or <F1> for on-line help
~ type :help version8<Enter> for version info
~
5.2 Linux Vim三种工作模式(命令模式、输入模式和底线命令模式)
- Linux 系统中所有的内容都以文件的形式进行存储,当在命令行下更改文件内容时,常会用到文本编辑器。使用 Vim 编辑文件时,存在 3 种工作模式,分别是命令模式、输入模式和底线命令模式,这 3 种工作模式可随意切换.
- Vim的命令模式:启动 vi/vim,便进入了命令模式。此状态下敲击键盘动作会被Vim识别为命令,而非输入字符。比如我们此时按下i,并不会输入一个字符,i被当作了一个命令。此模式下,可使用方向键(上、下、左、右键)或 k、j、h、l移动光标的位置,还可以对文件内容进行复制、粘贴、替换、删除等操作。使用以下命令可以进入输入模式:
| 快捷键 | 功能描述 |
| —— | ———————————————————— |
| i | 在当前光标所在位置插入随后输入的文本,光标后的文本相应向右移动 |
| I | 在光标所在行的行首插入随后输入的文本,行首是该行的第一个非空白字符,相当于光标移动到行首执行 i 命令 |
| o | 在光标所在行的下面插入新的一行。光标停在空行首,等待输入文本 |
| O | 在光标所在行的上面插入新的一行。光标停在空行的行首,等待输入文本 |
| a | 在当前光标所在位置之后插入随后输入的文本 |
| A | 在光标所在行的行尾插入随后输入的文本,相当于光标移动到行尾再执行a命令 |
CentOS 7.x 系统中 Vim 处于命令模式的状态示意图:
-
Vim的输入模式:在输入模式下,Vim 可以对文件执行写操作,类似于在 Windows 系统的文档中输入内容。当编辑文件完成后按 Esc 键即可返回命令模式。
-
在输入模式中,可以使用以下按键:
- 字符按键以及Shift组合,输入字符
- ENTER,回车键,换行
- BACK SPACE,退格键,删除光标前一个字符
- DEL,删除键,删除光标后一个字符
- 方向键,在文本中移动光标
- HOME/END,移动光标到行首/行尾
- Page Up/Page Down,上/下翻页
- Insert,切换光标为输入/替换模式,光标将变成竖线/下划线
- ESC,退出输入模式,切换到命令模式
-
Vim 处于输入模式状态下的示意图,在左下角状态栏中会出现 –INSERT- 的字样,那就是可以输入任意字符的提示,键盘上除了 Esc 这个按键之外,其他的按键都可以视作为一般的输入按钮了,所以你可以进行任何的编辑。
-
Vim 的底线命令模式:使Vim 切换到底线命令模式的方法是在命令模式状态下按“:”键,此时 Vim 窗口的左下方出现一个“:”符号,这是就可以输入相关指令进行操作了。底线命令模式用于对文件中的指定内容执行保存、查找或替换等操作。底线命令模式可以输入单个或多个字符的命令,可用的命令非常多。
命令模式只有一些最基本的命令,因此仍要依靠底线命令模式输入更多命令。
底线命令模式指令执行后 Vim 会自动返回命令模式。如想直接返回命令模式,按 Esc 即可。
- Vim 进入底线命令模式后的状态,这个时候,键盘上除了 Esc 这个按键之外,
:? / w q
都是常用的字符。
因切换模式而不知自己在那个模式可以多按几次 Esc 键后听到”嘀————”的声音,则代表你已经处于命令模式了
5.3 Linux Vim基本操作(文件的打开和编辑)
5.3.1 Vim 打开文件
- 使用 Vim 在命令行模式下打开一个自己编写的文件或使用 vim 来建立一个名为 demo2.txt 的文件时,你可以这样做:
[root@CncLucZK test]# vim + demo2.txt
#直接输入 vi 文件名 就能够进入 vi 的一般模式了。请注意,记得 vi 后面一定要加文件名,不管该文件存在与否!
all是当前窗口显示的内容在这个文件中的占比,如果只有一半,那么all那里就是50%
- 若要编辑一个新文件,则进入命令模式后会指出这是一个新文件
[root@CncLucZK test]# vim new.txt #如果文件不存在,就创建新文件,文件存在就修改文件。
~
~
"new.txt" [New File] #若要修改一个文件发现打开的是一个新文件,那么说明文件找错了
可以利用下表中打开文件的命令格式,针对特定情形使用适当的打开方式
Vi 使用的选项 | 说 明 |
---|---|
vim filename | 打开或新建一个文件,并将光标置于第一行的首部 |
vim -r filename | 恢复上次 vim 打开时崩溃的文件 |
vim -R filename | 把指定的文件以只读方式放入 Vim 编辑器中 |
vim + filename | 打开文件,并将光标置于最后一行的首部 |
vi +n filename | 打开文件,并将光标置于第 n 行的首部 |
vi +/pattern filename | 打幵文件,并将光标置于第一个与 pattern 匹配的位置 |
vi -c command filename | 在对文件进行编辑前,先执行指定的命令 |
5.3.2 使用 Vim 进行编辑
- Vim输入模式 :从命令模式可以按下 I、i、O、o、A、a 等键来进入输入模式进行编辑,使用不同的键,光标所处的位置不同。
快捷键 | 功能描述 |
---|---|
i | 在当前光标所在位置前插入随后输入的文本,光标后的文本相应向右移动 |
I | 在光标所在行的行首插入随后输入的文本,行首是该行的第一个非空白字符,相当于光标移动到行首执行 i 命令 |
o | 在光标所在行的下面插入新的一行。光标停在空行首,等待输入文本 |
O(大写) | 在光标所在行的上面插入新的一行。光标停在空行的行首,等待输入文本 |
a | 在当前光标所在位置之后插入随后输入的文本 |
A | 在光标所在行的行尾插入随后输入的文本,相当于光标移动到行尾再执行 a 命令 |
[Esc] | 退出编辑模式,回到命令模式中(常用) |
- Vim 查找文本:在底线命令模式输入以下命令进行查找字符
快捷键 | 功能描述 |
---|---|
/abc | 从光标所在位置向后查找字符串 abc |
/^abc | 查找以 abc 为行首的行 |
/abc$ | 查找以 abc 为行尾的行 |
?abc | 从光标所在为主向前查找字符串 abc |
n | 这个 n 是英文按键。代表重复前一个搜寻的动作。举例来说, 如果刚刚我们执行 /abc 去向下搜寻 abc 这个字符串,则按下 n 后,会向下继续搜寻下一个名称为 vbird 的字符串。如果是执行 ?abc 的话,那么按下 n 则会向上继续搜寻名称为 abc 的字符串! |
N | 这个 N 是英文按键。与 n 刚好相反,为『反向』进行前一个搜寻动作。 例如 /abc 后,按下 N 则表示『向上』搜寻 abc 。 |
使用 /word 配合 n 及 N 是非常有帮助的!可以让你重复的找到一些你搜寻的关键词!
- 在 /test/demo1.txt 文件中向后查找字符串 “?123”,
如果在文件中并没有找到所要查找的字符串,则在文件底部会出现 “Pattern not found” 提示
注意的是,要查找的字符串是严格区分大小写的,如查找 “demo” 和 “Demo” 会得到不同的结果。
如果想忽略大小写,则输入命令 “:set ic”;调整回来输入”:set noic”。
如果在字符串中出现特殊符号,则需要加上转义字符
"\"
。常见的特殊符号有 \、*、?、$ 等。如果出现这些字符,例如,要查找字符串 “6$”,则需要在命令模式中输入"/6\$"
。
- Vim 替换文本
快捷键 | 功能描述 |
---|---|
r | 进入取代模式(Replace mode):替换光标所在位置的字符一次 |
R | 进入取代模式(Replace mode):从光标所在位置开始替换字符,其输入内容会覆盖掉后面等长的文本内容,R会一直取代光标所在的文字。按“Esc”可以结束 |
:s/a1/a2/g |
将当前光标所在行中的所有 a1 用 a2 替换 |
:n1,n2s/a1/a2/g | 将文件中 n1 到 n2 行中所有 a1 都用 a2 替换 |
:g/a1/a2/g | 将文件中所有的 a1 都用 a2 替换 |
取代模式,在 vi 画面的左下角处会出现『–REPLACE–』的字样,想要在档案里面输入字符时, 一定要在左下角处看到 INSERT 或 REPLACE 才能输入.
将demo2.txt文件中所有的 “123” 替换为 “789”,则有两种输入命令,分别为:
vim 测试
vim 测试
hello world
789007$
vim 测试
vim 测试
hello world
789456
hello world
789456
vim 测试:
hello world
789456
~
~
:1,$s/123/789/g 或者是:%s/123/789/g #该命令在底线命令模式下操作的,表示的是从第一行到最后一行,即全文查找 "123",然后替换成 "789"。如果刚才的命令变成 :3,10 s/123/789/g,则只替换从第 3 行到第10 行的 "123"。
- Vim删除文本:直接在命令模式,移动光标在某文本处键入以下快捷键进行删除操作
快捷键 | 功能描述 |
---|---|
x, X | 在一行字当中,x 为向后删除一个字符 (相当于 [del] 按键), X 为向前删除一个字符(相当于 [backspace] 亦即是退格键) (常用) |
nx | n 为数字,连续向后删除 n 个字符。举例来说,我要连续删除 10 个字符, 『10x』。 |
dd | 剪切游标所在的那一整行(常用),用 p/P 可以粘贴。 |
ndd | n 为数字。剪切光标所在行(包括此行)的向下 n 行,例如 20dd 则是剪切 20 行(常用),用 p/P 可以粘贴。 |
dG | 删除光标所在行一直到文件末尾的所有内容 |
d1G | 删除光标所在到第一行的所有数据 |
d$ | 删除游标所在处,到该行的最后一个字符 |
d0 | 那个是数字的 0 ,删除游标所在处,到该行的最前面一个字符 |
D | 删除光标位置到行尾的内容 |
:a1,a2d | 函数从 a1 行到 a2 行的文本内容 |
c | 重复删除多个数据,例如向下删除 10 行,[ 10cj ] |
dw | 删除一个单词(配合b:将光标置于所在单词的首部) |
注意,被删除的内容并没有真正删除,都放在了剪贴板中。将光标移动到指定位置处,按下 “p” 键,就可以将刚才删除的内容又粘贴到此处。
- Vim复制和粘贴文本,同样在命令模式进行操作
快捷键 | 功能描述 |
---|---|
p | 将剪贴板中的内容粘贴到光标下一行 |
P(大写) | 将剪贴板中的内容粘贴到光标上一行 |
y | 复制已选中的文本到剪贴板 |
yy | 将光标所在行复制到剪贴板,此命令前可以加数字 n,可复制多行 |
nyy | n 为数字。复制光标所在的向下 n 行,例如 20yy 则是复制 20 行(常用) |
yw | 将光标位置的单词复制到剪贴板,配合p:粘贴 |
y1G | 复制游标所在行到第一行的所有数据 |
yG | 复制游标所在行到最后一行的所有数据 |
y0 | 复制光标所在的那个字符到该行行首的所有数据 |
y$ | 复制光标所在的那个字符到该行行尾的所有数据 |
J | 将光标所在行与下一行的数据结合成同一行 |
- Vim其他常用快捷键:某些情况下,可能需要把两行进行连接。比如说,下面的文件中有两行文本,现在需要将其合并成一行(实际上就是将两行间的换行符去掉)。可以直接在命令模式中按下 “J” (大写)键。
如果不小心误删除了文件内容,则可以通过 “u” 键来撤销刚才执行的命令。如果要撤销刚才的多次操作,可以多按几次 “u” 键。
5.3.3 Vim 保存退出文本
-
Vim 的保存和退出是在底线命令模式中进行的,其常用命令如下表所示。
命令 功能描述 :wq 保存并退出 Vim 编辑器 :wq! 保存并强制退出 Vim 编辑器 :q 不保存就退出 Vim 编辑器 :q! 不保存,且强制退出 Vim 编辑器 :w 保存但是不退出 Vim 编辑器 :w! 若文件属性为『只读』时,强制保存文本。不过,到底能不能写入, 还是跟档案的档案权限有关 :w filename 另存到 filename 文件 x! 保存文本,并退出 Vim 编辑器,更通用的一个 vim 命令 ZZ 大写的 Z,直接退出 Vim 编辑器。如果修改过,保存当前文件,然后退出!效果等同于(保存并退出) ZQ 不保存,强制退出。效果等同于 :q!。 :w [filename] 将编辑的数据储存成另一个档案(类似另存新档) :r [filename] 在编辑的数据中,读入另一个档案的数据。亦即将 『filename』 这个档案内容加到游标所在行后面 :n1,n2 w [filename] 将 n1 到 n2 的内容储存成 filename 这个档案。 :! command 暂时离开 vi 到指令行模式下执行 command 的显示结果!例如 『:! ls /home』即可在 vi 当中察看 /home 底下以 ls 输出的档案信息!
注意的是,“w!” 和 “wq!” 等类似的指令,通常用于对文件没有写权限的时候(显示 readonly),但如果你是文件的所有者或者 root 用户,就可以强制执行。
如何粘贴,用vim打开那个文件后,该文件不存在,所以vim会自动创建。按一下字母”i”然后同时按shift + Insert 进行粘贴(或者单击鼠标右键即可),前提是已经复制到剪切板中了。
vim 环境的变更 | 底线命令模式下使用 |
---|---|
:set nu | 显示行号,设定之后,会在每一行的前缀显示该行的行号 |
:set nonu | 与 set nu 相反,为取消行号! |
5.4 Vim移动光标快捷键汇总
-
Vim 文本编辑器中,最简单的移动光标的方式是使用方向键,但这种方式的效率太低,更高效的方式使用快捷键。Vim 移动光标常用的快捷键及其功能如下面各表所示,需要注意的是,表中所有的快捷键都在命令模式(默认状态)下直接使用。
-
Vim快捷方向键:
快捷键 | 功能描述 |
---|---|
h或 向左箭头键(←) | 光标向左移动一位 |
j或 向下箭头键(↓) | 光标向下移动一行(以回车为换行符),也就是光标向下移动 |
k或 向上箭头键(↑) | 光标向上移动一行(也就是向上移动) |
l或 向右箭头键(→) | 光标向右移动一位 |
[Ctrl] + [f] | 屏幕『向下』移动一页,相当于 [Page Down]按键 (常用) |
[Ctrl] + [b] | 屏幕『向上』移动一页,相当于 [Page Up] 按键 (常用) |
[Ctrl] + [d] | 屏幕『向下』移动半页 |
[Ctrl] + [u] | 屏幕『向上』移动半页 |
+ | 光标移动到非空格符的下一行 |
– | 光标移动到非空格符的上一行 |
n 空格键 | 那个 n 表示『数字』,例如10。按下数字后再按空格键,光标会向右移动这一行的 n 个字符。例如 10 则光标会向后面移动 10 个字符距离。 |
H | 光标移动到这个屏幕的最上方那一行的第一个字符 |
M | 光标移动到这个屏幕的中央那一行的第一个字符 |
L | 光标移动到这个屏幕的最下方那一行的第一个字符 |
hjkl 是排列在一起的,因此可以使用这四个按钮来移动光标。 如果想要进行多次移动的话,例如向下移动 30 行,可以使用 “30j” 或 “30↓” 的组合按键, 亦即加上想要进行的次数(数字)后,按下动作即可!
- Vim光标以单词为单位移动:可能需要光标迅速移动至一行中的某个位置,将光标以单词为单位进行移动就会很方便。
快捷键 | 功能描述 |
---|---|
w 或 W | 光标移动至下一个单词的单词首 |
b 或 B | 光标移动至上一个单词的单词首 |
e 或 E | 光标移动至下一个单词的单词尾 |
nw 或 nW | n 为数字,表示光标向右移动 n 个单词 |
nb 或 nB | n 为数字,表示光标向左移动 n 个单词 |
- Vim光标移动至行首或行尾
快捷键 | 功能描述 |
---|---|
0 或 ^或功能键[Home] | 光标移动至当前行的行首 |
$或功能键[End] | 光标移动至当前行的行尾 |
n$ | 光标移动至当前行只有 n 行的行尾,n为数字 |
- Vim光标移动至指定字符:一行中,如果需要将光标移动到当前行的某个特点字符,则可以使用如下的快捷键。
快捷键 | 功能描述 |
---|---|
fx | 光标移动至当前行中下一个 x 字符处 |
Fx | 光标移动至当前行中下一个 x 字符处 |
- Vim光标移动到指定行
快捷键 | 功能描述 |
---|---|
gg | 光标移动到文件开头 |
G | 光标移动至文件末尾 |
nG | 光标移动到第 n 行,n 为数字 |
:n | 底线命令模式下使用的快捷键,可以将光标快速定义到指定行的行首 |
n <回车> | n 为数字。光标向下移动 n 行(常用) |
- Vim光标移动到匹配的括号处:程序员在编辑程序时,经常会为将光标移动到与一个 “(” 匹配的 “)” (对于 [] 和 {} 也是一样的)处而感到头疼。Vim 里面提供了一个非常方便地査找匹配括号的命令,这就是 “%”。将光标定位到与 “{” 相对应的 “}” 处,则可以将光标先定位在 “{” 处,然后再使用 “%” 命令,使之定位在 “}” 处,
5.5 Linux Vim撤销和恢复撤销快捷键用法
-
对文件内容做了修改之后,却发现整个修改过程是错误或者没有必要的,想将文件恢复到修改之前的样子。
-
将文件内容恢复之后,经过仔细考虑,又感觉还是刚才修改过的内容更好,想撤销之前做的恢复操作。
-
Vim 编辑器提供了撤销和恢复撤销的命令,如表 1 所示。
快捷键 | 功能 |
---|---|
u(小写) | undo 的第 1 个字母,功能是撤销最近一次对文本做的修改操作。 |
Ctrl+R | Redo 的第 1 个字母,功能是恢复最近一次所做的撤销操作。 |
U(大写) | 第一次会撤销对一行文本(光标所在行)做过的全部操作,第二次使用该命令会恢复对该行文本做过的所有操作。 |
. | 小数点!重复前一个动作。 想要重复删除、重复贴上等等动作,按下小数点『.』就好了! (常用) |
这个 u 与 [Ctrl]+r 是很常用的指令!一个是复原,另一个则是重做一次
注意,以上这 3 种命令都必须在 Vim 编辑器处于命令模式时才能使用。
- 打开vim demo2.txt文本内容,输入以下内容
hello world!
123456abcdef
ABCDEFGH
~
- 然后按“Esc”键,使 Vim 由输入模式转为命令模式,在此基础上,通过 u(小写)命令就可以使文本内容恢复到上一次输入操作之前的样子,其中“上一次”的含义是,恢复操作是可以叠加的,即按一次就会在现有基础上做一次恢复操作。
hello world!
123456abcdef
~
- 继续操作该文件,按一次 u,会发现其文本内容变为:
hello world!
123456
~
- 同样,恢复撤销的操作和撤销操作是相对应的,通过按 Ctrl+R 组合键,可以撤销之前所做的一次恢复操作。例如,继续操作 该文件,按一次 Ctrl+R,会发现其文本内容恢复为:
hello world!
123456abcdef
~
- 再按一次 Ctrl+R,文本内容又恢复为:
hello world!
123456abcdef
ABCDEFGH
~
- U(大写)的功能和之前的 2 个命令不同,它的作用是撤销或恢复撤销对光标所在行文本所做的全部操作。比如,我们对 该文件内容做如下修改:
hello world!
123456abcdef
12345ABCDEF
- 在此基础上,如果在命令模式下键入 U(大写),可以看到,之前对第 3 行所做的 修改,全部被恢复了:
hello world!
123456abcdef
ABCDEF
- 如果此时再键入 U(大写),则又会恢复之前对第 3 行文本做过的全部操作:
hello world!
123456abcdef
12345ABCDEF
5.6 Linux Vim选择模式及其用法
-
在图形界面的操作系统中的文字编辑器,用户可以使用鼠标来选择要操作的文本,非常方便。在 Vim 编辑器中也有类似的功能,但不是通过鼠标,而是通过键盘来选择要操作的文本。在 Vim 中,如果想选中目标文本,就需要调整 Vim 进入块选择模式,如下表 所示,通过在 Vim 命令模式下键入不同的键,可以进入不同的可视化模式。
命令 功能 v(小写) 又称字符选择模式,此模式下目标文本的选择是以字符为单位的,也就是说,该模式下要一个字符一个字符的选中要操作的文本。 V(大写) 又称行选择模式,此模式化目标文本的选择是以行为单位的,也就是说,该模式化可以一行一行的选中要操作的文本。 Ctrl+v(组合键) 又称块选择模式,该模式下可以选中文本中的一个矩形区域作为目标文本,以按下 Ctrl+v 位置作为矩形的一角,光标移动的终点位置作为它的对角。 -
以字符可视化模式为例,Vim 成功进入该模式的标志是窗口底部出现 –VISUAL– 标志,
相应地,进入行选择模式的标志 标记处显示 –VISUAL LINE–;进入块选择模式的标志是标记处显示 –VISUAL BLOCK–。
注意:当选中文本并做完相应操作(例如选中文件并按 p 键将其复制到剪贴板中)后,Vim 会自动从选择模式转换为命令模式。当然,也可以再次按 v(或者 V、Ctrl+v)手动退出选择模式。
- Vim 命令模式下编辑文本的很多命令,在选择模式下仍然可以使用。下表列出了常用的几个可以在可视化模式下使用的命令。
命令 | 功能 |
---|---|
d | 删除选中的部分文本。 |
D | 删除选中部分所在的行,和 d 不同之处在于,即使选中文本中有些字符所在的行没有都选中,删除时也会一并删除。 |
y | 将选中部分复制到剪贴板中。 |
p(小写) | 将剪贴板中的内容粘贴到光标之后。 |
P(大写) | 将剪贴板中的内容粘贴到光标之前。 |
u(小写) | 将选中部分中的大写字符全部改为小写字符。 |
U(大写) | 将选中部分中的小写字符全部改为大写字符。 |
> | 将选中部分右移(缩进)一个 tab 键规定的长度(CentOS 6.x 中,一个tab键默认相当于 8 个空白字符的长度)。 |
< | 将选中部分左移一个 tab 键规定的长度(CentOS 6.x 中,一个tab键默认相当于 8 个空白字符的长度)。 |
5.7 vim 中批量添加注释
方法一 :块选择模式
批量注释:
Ctrl + v 进入块选择模式,然后移动光标选中你要注释的行,再按大写的 I 进入行首插入模式输入注释符号如 // 或 #,输入完毕之后,按两下 ESC,Vim 会自动将你选中的所有行首都加上注释,保存退出完成注释。
取消注释:
Ctrl + v 进入块选择模式,选中你要删除的行首的注释符号,注意 // 要选中两个,选好之后按 d 即可删除注释,ESC 保存退出
方法二: 替换命令
批量注释。
使用下面命令在指定的行首添加注释。
使用名命令格式: :起始行号,结束行号s/^/注释符/g(注意冒号)。
取消注释:
使用名命令格式: :起始行号,结束行号s/^注释符//g(注意冒号)。
例子:
1、在 2 – 4 行添加 // 注释,注意:注释符//与#
的互操作
:2,4s#^#//#g
2、在 2 – 4 行删除 // 注释
:2,4s#^//##g
3、在 2 – 4 行添加 # 注释
:2,4s/^/#/g
4、在 2 – 4 行删除 # 注释
:2,4s/#//g
5.8 vim快捷键补充(插入模式)
-
输入模式:
- 自动补全:ctrl + n(在一个新行或下个单词处补全内容是文档中已经出现的字符,这个字符会以空格相隔为一个单位)
- \p< 插入一个include,并把光标置于<>中间
- \im 插入主函数
- \ip 插入printf,并自动添加**\n**,且把光标置于双引号中间
-
vim快捷键补充(插入与编辑模式通用)
- \rr 运行程序
- \rc 保存并编译程序(会生成二进制文件)
参考文献:
Linux Vim三种工作模式(命令模式、输入模式和编辑模式)详解
Linux vi/vim
下一篇:Linux学习-13-Linux文本处理命令(cat、more、head、less、tail、grep)
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/123779.html