普通模式
复制
y
dd
gU
gu
x
X
缩进
>
, <
或 =
4==
indent current line and next 3=ap
indent around paragraph=%
indent to end of method
移动
%
匹配括号移动,包括[
{
(
,需要将光标移动到括号上。#
,*
匹配光标所在单词,*
下一个,#
上一个0
行头^
本行的第一个非空白字符$
到行尾g_
到本行最后一个非空白字符fa
向前移动到查找的第一个 a 字符t,
移动到逗号前的第一个字符3fa
当前行查找第三个出现的字母 adt"
删除查找到的第一个双引号之前的所有的内容w
下一个单词到开头e
下一个单词的结尾
单词默认由字母、数字和下划线组成(程序变量),而使用大写 W
、E
的移动方式,单词由空白字符分隔。
action + text object
action
d
deletey
yankv
visualc
delete and inserts
same ascl
S
same ascc
text object
w
words
sentencep
paragraph'
"
}
]
)
specific characters
字符串(map (+) ("foo")),光标在第一个 o 的位置
vi"
select foova"
select “foo”vi)
select "foo"va)
select ("foo")v2i)
select map (+) ("foo")v2a)
select (map (+) ("foo")
Scrolling relative to cursor
:help scrolling
zt
- reposition viewport so your current line is at the topzz
- middlezb
- bottom<c-y>
<c-e>
<c-u>
<c-d>
<c-f>
<c-b>
buffers
当使用 vim 编辑器时,vim 会在被编辑的文件目录下,建立一个名为 .filename.swap
的文件
Summary:
- A buffer is the in-memory text of a file.
- A window is a viewport on a buffer.
- A tab page is a collection of windows.
:ls
查看缓冲区被打开的文件,%a 表示当前文件,相关标记如下:-
非活动的缓冲区a
当前被激活缓冲区h
隐藏的缓冲区%
当前的缓冲区#
交换缓冲区=
只读缓冲区+
已经更改的缓冲区:buffer
[数字编号] 切换文件
同 buffer
:n
编辑下一个文件:N
编辑上一个文件:files
列出目前这个 vim 开启的所有文件,同:ls
:n
and:N
doesn't switch between buffers
不同 buffers
:bn
编辑下一个文件(:bnext
):bp
编辑上一个文件(:bprevious
):blast
缩写:bl
:bfirst
缩写:bf
删除 buffer
:%bd
- delete all your buffers:bd
or:.bd
delete the current buffer:.,+2bd
delete the current buffer and 2 buffers after it (relative to their location in the buffer list)
多窗口
:sp {filename}
划分窗口,并打开指定文件:Hexplorer
缩写:He
(在下边分屏浏览目录):He!
(在上屏浏览文件目录):Vexplorer
缩写:Ve
(在左边分屏间浏览目录,右边为:Ve!
):Texplorer
缩写:Te
使用类似于浏览器 tab 标签的形式打开文件
窗口间移动
<crtl-w>j
光标移动到下方的窗口<ctrl-w>k
光标移动到上方的窗口<ctrl-w>q
退出窗口<ctrl-w>t
窗口在新标签页中打开
标签页间移动
在普通模式下,使用快捷键 <ctrl-w>t
,可以将一个 buffer 文件在另一个标签页中打开。
gt
- 下一个标签gT
- 前一个标签{i}gt
-i
数字,到指定标签页,比如 5gt 就是到第5个标签页:tabs
查看打开的窗口和 Tab 标签的情况:tabn
go to next tab:tabp
go to previous tab:tabfirst
go to first tab:tablast
go to last tab:tabclose[i]
指定标签数字,可以关闭指定标签页:bufdo tab split
把 buffer 中的文件全部转成 tabvim -p file1 file2
shell 命令行中以 tab 标签页的形式打开多个文件
vim 的环境配置和记录
.viminfo
主动记录你曾经做过的操作记录,以便你下次可以轻松地作业。
环境配置
- 在一般模式下输入
:set all
查看所有的参数设置值。 :set
显示与系统默认值不同的设置参数,一般来说就是自定变动过的设置参数。:syntax on
打开语法高亮