返回

vim101

普通模式

复制

  • 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 当前行查找第三个出现的字母 a
  • dt" 删除查找到的第一个双引号之前的所有的内容
  • w 下一个单词到开头
  • e 下一个单词的结尾

单词默认由字母、数字和下划线组成(程序变量),而使用大写 WE 的移动方式,单词由空白字符分隔。

action + text object

action

  • d delete
  • y yank
  • v visual
  • c delete and insert
  • s same as cl
  • S same as cc

text object

  • w word
  • s sentence
  • p paragraph
  • ' " } ] ) specific characters

字符串(map (+) ("foo")),光标在第一个 o 的位置

  • vi" select foo
  • va" 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 top
  • zz - middle
  • zb - 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 :Ndoesn'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 中的文件全部转成 tab
  • vim -p file1 file2 shell 命令行中以 tab 标签页的形式打开多个文件

vim 的环境配置和记录

.viminfo 主动记录你曾经做过的操作记录,以便你下次可以轻松地作业。

环境配置

  1. 在一般模式下输入 :set all 查看所有的参数设置值。
  2. :set 显示与系统默认值不同的设置参数,一般来说就是自定变动过的设置参数。
  3. :syntax on 打开语法高亮

References