普通模式
复制
yddgUguxX
缩进
> , < 或 =
4==indent current line and next 3=apindent around paragraph=%indent to end of method
移动
%匹配括号移动,包括[{(,需要将光标移动到括号上。#,*匹配光标所在单词,*下一个,#上一个0行头^本行的第一个非空白字符$到行尾g_到本行最后一个非空白字符fa向前移动到查找的第一个 a 字符t,移动到逗号前的第一个字符3fa当前行查找第三个出现的字母 adt"删除查找到的第一个双引号之前的所有的内容w下一个单词到开头e下一个单词的结尾
单词默认由字母、数字和下划线组成(程序变量),而使用大写 W、E 的移动方式,单词由空白字符分隔。
action + text object
action
ddeleteyyankvvisualcdelete and insertssame asclSsame ascc
text object
wwordssentencepparagraph'"}])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 scrollingzt- 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:nand:Ndoesn't switch between buffers
不同 buffers
:bn编辑下一个文件(:bnext):bp编辑上一个文件(:bprevious):blast缩写:bl:bfirst缩写:bf
删除 buffer
:%bd- delete all your buffers:bdor:.bddelete the current buffer:.,+2bddelete 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 标签的情况:tabngo to next tab:tabpgo to previous tab:tabfirstgo to first tab:tablastgo to last tab:tabclose[i]指定标签数字,可以关闭指定标签页:bufdo tab split把 buffer 中的文件全部转成 tabvim -p file1 file2shell 命令行中以 tab 标签页的形式打开多个文件
vim 的环境配置和记录
.viminfo 主动记录你曾经做过的操作记录,以便你下次可以轻松地作业。
环境配置
- 在一般模式下输入
:set all查看所有的参数设置值。 :set显示与系统默认值不同的设置参数,一般来说就是自定变动过的设置参数。:syntax on打开语法高亮