目录
一、光标控制
单位级
单词级
块级
二、打开文件、查找内容
在 Vim 中打开文件
文档内查找内容
行内查找
匹配查找
文件历史buffer
三、插入、修改内容
插入内容
删除(并保存到 Vim 剪贴板)
复制、粘贴
粘贴
合并
替换
撤销、重做
保存文件
四、简单设置 Vim
重复上一次命令
缩进
自动排版
一、光标控制
单位级
h
向左一字符
j
下一行
k
上一行
l
向右一字符
单词级
w
or W
向右移动到下一单词开头
e
or E
向右移动到单词结尾
b
or B
向左移动到单词开头
块级
- gg 到文档第一行
- G 到文档最后一行
- 0 到行首(第 1 列)
- ^ 到第一个非空白字符
- $ 到行尾(end)
- H 移动到屏幕顶端
- M 移动到屏幕中间
- L 移动到屏幕底部
- Ctrl-d 向下移动半页
- Ctrl-u 向上移动半页
- Ctrl-f 向下移动一页
- Ctrl-b 向上移动一页
- :<N> or <N>gg 跳转到第 N 行
- :+<N> or <N>j 向下跳 N 行
- :-<N> or <N>k 向上跳 N 行
二、打开文件、查找内容
在 Vim 中打开文件
:e <filename>
打开名为 filename 的文件,若文件不存在则创建之
:vsp <filename>
将原有
vim
界面竖直分割并打开名为
filename
的文件,若文件不存在则创建之(
sp
为水平分割,取消分屏为:
only
或:
q
)
:Ex
在 Vim 中打开目录树,光标选中后回车打开对应文件(提示:-
进入上级目录)
- gf 将光标定位到文件名的任意位置上 , 直接敲键盘
gf
进 入
- 顶端属性栏点击File----open tab 选择文件
文档内查找内容
*
向后查找光标当前所在单词
#
向前查找光标当前所在单词
- :/<search> 向后查找指定字符串(:set nohlsearch 将高亮关闭,或搜索一个不存在的单词)
:?<search>
向前查找指定字符串
n
继续查找下一个
N
继续查找上一个
行内查找
f<X>
当前行内向行尾方向查找并定位到字符 X
t<X>
当前行内向行尾方向查找并定位到字符 X
之前
F<X>
当前行内向行首方向查找并定位到字符 X
T<X>
当前行内向行首方向查找并定位到字符 X
之后
;
继续向当前方向查找下一个字符
,
向当前相反方向查找下一个字符
匹配查找
Vim 中可以使用 % 对 ( 和 ),[ 和 ],{ 和 } 进行匹配查找,当光标位于其中一个 符号上时,按下 %,光标会跳到与之匹配的另外一个符号上。
文件历史buffer
Vim 的 buffer就是当前 Vim session 的文件历史记录。
- :使用buffers 或 :ls 命令查看,:bn 打开缓存中下一个文件
- :bp 打开缓存中上一个文件
- :b<N> 打开缓存中第 N 个文件
你也可以使用 :bdelete<N> 来删除所要关闭的缓冲区,缩写 :bd<N>。
三、插入、修改内容
插入内容
i
当前字符前插入
a
当前字符后插入
I
行首插入
A
行尾插入
o
在下一行插入
O
在上一行插入
删除(并保存到 Vim 剪贴板)
复制、粘贴
yy
复制当前行到 Vim 剪贴板
- y dd复制光标所在行向下的n行
- y 1G复制所在行在内到第一行
- yG复制所在行到最后一行
- y0复制光标到行首内容
- y$复制光标到行尾内容
鼠标选中
y<X>
复制指定内容到 Vim 剪贴板
粘贴
p
在当前位置后粘贴
P
在当前位置前粘贴
选中后鼠标中键
合并
替换
r<X>
将当前字符替换为 X
gu<X>
将指定的文本转换为小写
gU<X>
将指定的文本转换为大写
:%s/<search>/<replace>/
g 全文查找 search 内容并替换为 replace 内容
撤销、重做
保存文件
:w
保存当前文件
:wa
保存全部文件
:wq
or ZZ
保存并退出
:q!
or ZQ
强制退出,不保存
:saveas <new filename>
文件另存为
:w <new filename>
文件另存一份名为 <new filename>
的副本并继续编辑原文件
四、简单设置 Vim
Vim的全局配置一般在/etc/vim/vimrc或/etc/vimrc,对所有用户生效,个人配置在~/.vimrc如果没有就新建一个, 修改完成执行 :wq 或者 ZZ 保存退出,再次进入 Vim 时,你的这些配置就已经生效了
- :set number 显示行号
- :set relativenumber 显示相对行号(这个非常重要,慢慢体会)
- :set hlsearch 搜索结果高亮
- :set autoindent 自动缩进
- :set smartindent 智能缩进
- :set tabstop=4 设置 tab 制表符所占宽度为 4
- :set softtabstop=4 设置按 tab 时缩进的宽度为 4
- :set shiftwidth=4 设置自动缩进宽度为 4
- :set expandtab 缩进时将 tab 制表符转换为空格
- :filetype on 开启文件类型检测
- :syntax on 开启语法高亮
重复上一次命令
按 . 重复执行上一个命令
缩进
自动排版
- == 自动排版当前行
- gg=G 当前文档全文自动排版
- <N>== 对从当前行开始的 N 行进行自动排版
- =<N>j 对当前行以及向下 N 行进行自动排版
- =<N>k 对当前行以及向上 N 行进行自动排版