Skip to content

IC-killer/hello-vim

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 
 
 

Repository files navigation

Vim 从入门到精通

Vim from zero to hero

转载请保留以上信息

Vim 的教程相对比较零散,系统的教程比较少,我也阅读过不少教程,走过很 多弯路。借着 Vim-china 组织组建这一契机,整理下自己学习过的内容, 分享给大家。

简介

Vim 是一款开源的模式化文本编辑器,项目源码公开在 Github。Windows 用户 可以从此下载最新的每日构建版: vim-win32-installer

什么是模式

Vim 不同于其他编辑器的主要特点就是模式化。什么叫做模式化?可以理解为 编辑器的一种状态,不同的状态下对用户的输入采取不同的响应方式。比较常 见的模式有 Normal(普通模式),Insert(插入模式)和 Visual(可视模式)。

Vim 打开是默认的模式是 Normal 模式,在这一模式下,按键不能直接将字符插入至文件,而是执行各种命令。比如 h 按键不是输入字符 h,而是将光标 向左移动一个字符位置。

插入模式,顾名思义,在这个模式下,按键的字符是直接插入的。

可视模式,这一模式有点类似于在普通编辑器里按住鼠标左键移动鼠标,即进行选择。

如何在模式之间切换

普通模式是 Vim 默认模式,任何模式下通过 <ESC> 按键都可以切换到普通模式。 普通模式想要切换到插入模式,方法有很多。比较常用的按键如下:

按键 描述
i 在当前光标字符前插入
a 在当前光标字符后插入
I 在当前行首插入
A 在当前行尾插入

普通模式切换到可视模式,按键就比较单一了,比较常用的是:

按键 描述
v 选中当前光标字符,并进入可视模式        
V 不同于小写 v,这时移动光标只会按行选择

可视模式切换到输入模式一般有以下几种情况:

按键 描述
s 删除当前已选择的内容,并进入插入模式
c 删除当前已选择的内容,并进入插入模式
di 删除当前已选择的内容,并进入插入模式

可视模式回到普通模式也有很多方式,比较直接的就是<ESC>,当然,还有其他一些按键:

按键 描述
y 复制当前选择区域,并退出可视模式        
Y 复制当前选择区域(按行),并退出可视模式

基本概念

Vim 的各种命令是可以灵活组合变通的,命令是解决问题的手段。

基本操作

Vim 的各种移动命令主要是在 Normal 模式下。最基本的移动命令是光标的上下 左右移动,当然,你可以使用方向键,但是我想更多的 Vim 用户比较喜欢使用 h、j、k、l 按键。

按键 描述
h 光标左移
j 光标下移
k 光标上移
l 光标右移

学会了这四个移动命令,你就可以自由地移动你的光标了,开始尽情地上下左右!

慢着,一个光标一个光标移动多慢啊,电脑上的其他编辑器可以鼠标定位, 还有那么多触控设备可以直接定位光标,用 Vim 的用户难道是慢吞吞的乌龟么?

还记得一开始说的灵活使用命令么?你可以输入“数字+移动命令”,一次性进行多次移动。

按键 描述
n+h 光标左移 n 个位置 ,n(umber) 指数字
n+j 光标下移 n 个位置 ,n(umber) 指数字
n+k 光标上移 n 个位置 ,n(umber) 指数字
n+l 光标右移 n 个位置 ,n(umber) 指数字

带上了数字后,你发现光标健步如飞,仿佛穿上了跑鞋:)

开放思想,当你编辑一个小文件时,正好光标在一行中部,你想跳到行首,你可以99h, 当你在文件中部,你可以99k跳到第一行,同理其他移动命令来达成行尾、末行的效果。

但如果一个文件有几万行几万列,我们也这样输入一个无穷大的数字来跳转么?

放心,Vim 已经内置了这些该有的命令。

当然 Vim 还有其他常用的移动光标的按键:

按键 描述
0 跳到行首,可以理解为无穷大的h
^ 跳到行首开始的第一个非空白字符
$ 跳到行尾,可以理解为无穷大的l
gg 跳到首行,可以理解为无穷大的k
G 跳到末行,可以理解为无穷大的j

About

Vim 中文资源整理

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published