导语
Vim是Linux上一款非常优秀的代码编辑器。
大多数有名的IDE都支持Vim的插件。
它相对于大多数IDE更加迅速,轻量;相对于其他编辑器自由,高效。
本文主要记录了Vim的一些常用技巧,以及配置。
个人建议
首先,不建议大家在Windows上使用Vim
以及Neovim
,因为在Windows上无法体现(neo)Vim
的生态,在Windows上使用Sublime Text、Atom、VScode等编辑器效果会更好。
其次,Google
上关于Vim的学习资料和文档更加全面,具体;但是前提是你会科学上网以及英语比较好(英语过四级)的前提下(*度尽量还是不要用了)。
最后,学习Vim的前提是你已经从事程序项目了,如果你是编程小白(没有学完一门编程语言)或者对键盘不熟练(盲打)的话,并不建议你使用Vim,因为Vim是一个==效率工具==而不是学习工具。
基本操作
安装Vim
首先你要去安装Vim, 只要分为两种方式:
- 一是命令行安装,这个比较简单,直接用操作系统相应的包管理器安装即可,大多数Linux操作系统的包管理器中都是含有Vim的;
- 二是官网安装,这个就不多说了,应该下载软件大家都会。
启动Vim
这个比较简单,打开终端,输入vim
回车即可。
vim 后加上文件名,如果文件存在则读取打开,如果没有则会创建一个空文本。
# vim
vim
vim ***.*
# neovim
nvim
nvim ***.*
查看Vim文档
学习 VIM 最好的文档,应该是阅读学习 VIM 的帮助文档,这里先讲一下如何使用 VIM 的帮助文档 :终端输入 vim , 敲击回车键(enter/return) ,就会进入 VIM , 然后键盘上输入 :help
。文档相当详尽,但是文档是英文的,可能对一些学习者不太友好,但这应该是最权威的 VIM 学习资料了。
如果文章有表述不当的地方可以留言指正,互相学习,共同进步 。
认识vim
我们首先宏观的了解一下==Vim的体系==。
VIM常用的模式有四种:
- 正常模式 (Normal-mode)
- 插入模式 (Insert-mode)
- 命令模式 (Command-mode)
- 可视模式 (Visual-mode)
接下来让我们细致的了解一下每个模式的作用和特点。
正常模式
正常模式就是指我们在用vim打开某个文件后默认的模式,它的主要作用就是浏览文件,当然也可以进行复制,粘贴,删除,跳转等功能。
光标移动
在这个模式中我们可以在文本中快速移动光标,但是它的光标移动键位和其他的编辑器可能不一样。(如下图)
hjkl
我们可以从图中看出vim光标移动的键位为hjkl相比较其他编辑器的上下左右,vim的键位很难适应,但是用熟了之后,你就会发现ta非常好用。因为hjkl都是键盘的中间位置,用的时候比较舒服,对手腕的压力比较小。
hjkl是最基本的光标移动按键,它们还可以和数字键联用;例如:5h就是向左移动五个位移(相当于hhhhh)。
wbege
还有在单词之间跳转的快捷键,wbe(ge)类似于hl,但是不同的是它们用于单词的移动。当你按下w后,光标向前移动1个单词 光标到单词的第一个字母上(b与w相反);当你按下e后,光标向前移动1个单词 光标到单词的最后一个字母上(ge与e相反)。同样,它们也可以和数字键联用,达到多次移动的效果。
G/gg
G就是跳转的最后一行的行首,gg就是跳转到第一行行首
删除、复制、粘贴
删除
删除分为多个方式:删除整行、删除一个字符、删除整行后不保留位置。
dd
:删除整行不保留位置cc
:删除整行并保留位置,进入编辑模式x
:删除一个字符r*
:替换一个字符
这个比较简单我就不多说了。
复制粘贴
yy
:复制整行p
:粘贴dd
:剪切整行
删除复制粘贴都可以和可视模式联用,这个之后会讲。
正常模式熟练应用这些就在足够了。
编辑模式
在正常模式中按下i键就可以进入编辑模式,编辑模式的主要作用就是修改或者编写文件内容。这个和其他编辑器都一样,我就不多说了。
命令模式
这个模式是一个非常重要的模式,它的功能非常强大。
命令模式有两种启动方式:
- 一是在正常模式中按下
/
就会启动命令模式,它的主要作用就是搜索字符,在/
后输入你想查找的字符,就可以跳转到相应位置,按return键就可以跳转光表,按Esc键就可以取消查找(不跳转); - 二是输入: 也会进入命令模式它的主要作用就是打开插件,或者是退出保存
:wq
:保存退出:qq
:退出,如果没有保存会提示你:q!
:不保存退出:w
: 保存
可视模式
此模式在常规模式下按v键启动,主要功能即使选中文本,其他操作和正常模式在一样。
分屏
分屏我会放到后面去讲,因为它需要你了解了vim的配置和应用后,在可以深化。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。