Vim编辑器是什么?Vim编辑器是Linux系统中自带的一款文本编辑工具,我们可以使用Vim编辑器去编辑文本。Vim编辑器和我们在Windows系统中使用的文本编辑器完全不同,因为Linux是基于命令行的,它不像Windows系统的文本编辑器那样,可以通过鼠标,快速进入某个目录,然后编辑,Vim编辑器有它的特点,它基于命令行和快捷键的方式,当你熟练后,使用Vim编辑器去编辑文本,效率完全不必Windows下的文本编辑器差!
Vim编辑器主要模式
Vim 编辑器主要有3中模式:普通模式、插入模式、命令模式
普通模式(Normal mode)
在普通模式中,用的编辑器命令,比如移动光标,删除文本等等。这也是 Vim 启动后的默认模式。这正好和许多新用户期待的操作方式相反(大多数编辑器默认模式为插入模式)。
Vim 强大的编辑功能来自于其普通模式命令。在普通模式下,可以输入快捷命令对文本内容进行操作。比如dd删除,gg快速到文本头部等等。
在普通模式中,有很多方法可以进入插入模式。比较普通的方式是按 a(append/追加)键或者 i(insert/插入)键。
插入模式(Insert mode)
在这个模式中,大多数按键都会向文本缓冲中插入文本。大多数新用户希望文本编辑器编辑过程中一直保持这个模式。 在插入模式中,可以按 ESC 键回到普通模式。
命令行模式(Command line mode)
在命令行模式中可以输入会被解释成并执行的文本。例如执行命令(:键),搜索(/和?键)或者过滤命令(!键)。在命令执行之后,Vim 返回到命令行模式之前的模式,通常是普通模式。
Vim快速入门
vim 启动进入普通模式,处于插入模式或命令行模式时只需要按 Esc即可进入普通模式。普通模式中按 i(插入)或 a(附加)键都可以进入插入模式,普通模式中按 : 进入命令行模式。命令行模式中输入 wq 回车后保存并退出 vim。
使用 vim 命令进入 vim 界面
vim 后面加上你要打开的已存在的文件名或者不存在(则作为新建文件)的文件名。在环境里输入下面的命令:
vim practice_1.txt
直接使用 vim 也可以打开 vim 编辑器,但是不会打开任何文件。
进入命令行模式后输入 :e filepath 同样可以打开相应文件。
游标移动
在进入 vim 后,按下 i 键进入插入模式。在该模式下您可以输入文本信息,下面请输入如下三行信息:
12345678
abcdefghijk
csdn.com
按Esc进入普通模式,在该模式下使用方向键或者 h,j,k,l 键可以移动游标。
按键 | 说明 |
---|
h | 左 | l | 右(小写 L) | j | 下 | k | 上 | w | 移动到下一个单词 | b | 移动到上一个单词 |
当然我更喜欢使用方向键去控制光标的移动,不过在命令模式中,使用w和b用于单词之间的快速移动还是非常方便的。
进入插入模式
使用Vim用的最多的应该就是使用它的插入模式,我们可以在插入模式中写输入我们想要输入到文本中的字符,但插入模式不仅仅只能使用i进行插入,我们还能有其他的插入方式去提高效率。
命令 | 说明 |
---|
i | 在当前光标处进行编辑 | I | 在行首插入 | A | 在行末插入 | a | 在光标后插入编辑 | o | 在当前行后插入一个新行 | O | 在当前行前插入一个新行 | cw | 替换从光标所在位置后到一个单词结尾的字符 |
我们除了使用i在当前光标所处的位置插入以外,还能使用其他方式进入插入模式,在光标所属的行首行尾,或者下一行插入。
命令行模式下保存文档
从普通模式输入 : 进入命令行模式,输入 w 回车,保存文档。
命令行模式下退出 vim
从普通模式输入 : 进入命令行模式,输入 wq 回车,保存并退出编辑。
以下为其它几种退出方式:
命令 | 说明 |
---|
:q! | 强制退出,不保存 | :q | 退出 | :wq! | 强制保存并退出 | :w | <文件路径> 另存为 | :saveas | 文件路径 另存为 | :x | 保存并退出 | :wq | 保存并退出 |
普通模式下删除 vim 文本信息
在Windows下我们是如何删除文本了,使用backSpace退格快速删除? 但这样的参数方式,在文本特别的的情况下,删除速度不可恭维,Vim编辑器有更好的删除策略。 进入普通模式,使用下列命令可以进行文本快速删除:
命令 | 说明 |
---|
x | 删除游标所在的字符 | X | 删除游标所在前一个字符 | Delete | 同 x | dd | 删除整行 | dw | 删除一个单词(不适用中文) | d$或D | 删除至行尾 | d^ | 删除至行首 | dG | 删除到文档结尾处 | d1G | 删至文档首部 |
除此之外,你还可以在命令之前加上数字,表示一次删除多行,如:
2dd 表示一次删除 2 行。
是不是很方便。
Vim文档编辑
重复执行上次命令
在普通模式下 .(小数点)表示重复上一次的命令操作。
拷贝测试文件到本地目录:
cd /home/shiyanlou
cp /etc/protocols .
vim protocols
普通模式下输入 x,删除第一个字符,输入 .(小数点)会再次删除一个字符,除此之外也可以重复 dd 的删除操作。
执行指定次数相同的命令 进入普通模式输入 N,N 表示重复后面的次数,下面来练习:
输入 10x,删除 10 个连续字符 输入 3dd,将会删除 3 行文本
在普通模式下,你还可以使用 dw 或者 daw(delete a word)删除一个单词,所以你可以很容易的联想到 dnw(n 替换为相应数字) 表示删除 n 个单词。
游标的快速跳转
普通模式下,下列命令可以让光标快速调转到指定位置,我们分别讨论快速实现行间跳转和行内跳转。
行间跳转
命令 | 说明 |
---|
nG | 游标移动到第 n 行 | gg | 游标移动到到第一行 | G | 到最后一行 |
还是来练习一下吧,使用 vim 打开练习文档: 依次进行如下操作练习:
- 快速跳转到第 9 行,然后将其该行删除
- 回到第一行,向下删除 8 行
- 跳转到文档末,然后删除该行
小技巧:你在完成依次跳转后,可以使用 Ctrl+o 快速回到上一次(跳转前)光标所在位置,这个技巧很实用,比如当你在写代码时,忽然想起有个 bug,需要修改,这时候你跳过去改好了,只需要按下 Ctrl+o 就可以回到你之前的位置。
复制粘贴和剪切
复制及粘贴文本
剪切及粘贴
其实前面讲得 dd 删除命令就是剪切,你每次 dd 删除文档内容后,便可以使用 p 来粘贴,也这一点可以让我们实现一个很爽快的功能——交换上下行。
ddp,就这么简单,即实现了快速交换光标所在行与它下面的行。
思考:
我们前面学过的那些命令、操作,除了提到过的还有哪些支持前面加上数字实现重复多次操作,如 3dd。
Vim 查找替换
快速查找
普通模式下输入 /然后键入需要查找的字符串,按回车后就会进行查找。? 与/ 功能相同,只不过 ? 是向上而 / 是向下查找。
进入查找之后,输入 n 和 N 可以继续查找。n 是查找下一个内容,N 查找上一个内容。
。
高级查找
普通模式下输入 \* 寻找游标所在处的单词 普通模式下输入 \# 同上,但 \# 是向前(上)找,\* 则是向后(下)找 普通模式下输入 g\* 同 \*,但部分符合该单词即可 普通模式下输入 g\# 同 \#,但部分符合该单词即可 以上查找 n,N 的继续查找命令依然可以用。
|