vim 学习笔记(持续更新)

Vim学习笔记

几乎每次管理服务器的时候或多或少得接触到vim,一直都觉得他很复杂,只会简单的打开文件,修改,保存, 终于在最近项目不太忙的时候,沉寂心来认真学习了一把,收益还是蛮大的,出乎意料得高效. 其实认真学起来vim不是想象中的那么难.只是要多练习就好. 于是乎我把学习的笔记整理了一下,发出来,以后有学到新姿势也更新上来.

操作说明约定

<num> :  表示数字
<char> : 表示字符
<C> : 表示control键
{} : 表示可选择

命令行

set nu: 显示行号
set relativenumber: 显示相对行号

单词操作

w: 下一个单词首部
b: 上一个单词首部
e: 下一个单词尾部

光标移动

h: 左下上右
^: 光标移动到行首非空白字符
0: 光标移动到行首
$: 光标移动到行尾
g: 光标移动到行尾非空白字符处
<: x次 左下上右移动
<: 到x行首
g: 到第一行
G: 到行尾
): 下一个句子
(: 上一个句子
M: 光标移动到屏幕中央
H: 光标移动到屏幕上方
L: 光标移动到屏幕下方
z: 当前行移动到屏幕中央
z: 当前行移动到屏幕上方
z: 当前行移动到屏幕下方
f: 光标移动到下一个<char>处
<: 光标移动到第<num>个字符
t: 光标移动到下一个<char>左侧
<: 光标移动到第<num>个<char>左侧
%: 切换到下一个 {,[,( 处
{: 向{下,上}查找当前光标单词

行为

r: 替换当前字符
x: 删除当前光标字符
s: 类似x,进入编辑模式
c: 剪切操作,并进入编辑模式
v: 行内选择
d: 删除操作
y: 复制
p: 粘帖
g: 搜索(不一定正确)

组合动作

行为 + 次数(可以省略) + 范围描述 + 文本对象
行为:  d,c,y,v等
范围描述:i,a,t,f
文本对象:
p: 段落
s: 句子
w: 单词
t: tag
举例:

ve 选择到单词结尾
vf2: 当前位置查找到第二个":"
cw 剪切当前单词
dt: 从当前位置删除到":"
gd 跳转掉变量定义
gUe 当前位置到单词结尾转化为小写,同样适用于w,b
gue 当前位置到单词结尾转化为小写
gUU 当前行转换为大写
guu 当前行转换为小写

录制: 使用qa,定义名字为a的宏(存放的寄存器),接下来可以录入一些操作,录入完成后,按q结束
回放: 1@a ,表示回放1次, @@ 回放最新录制的宏

窗口操作

:split: 水平分割
:vsplit: 垂直分割
<C-w>{hjkl}: 窗口切换
<C-w>{-,+,_}: 缩小,放大,最大