Vim 手册

Vim 手册

  • .: 重复上一次改变,比如 x 可以删除字符,那么 x.. 就可以连续删除三个字符。
  • u: undo changes
  • dd: 删除当前行
  • >G: 当前行增加缩进

配置

  • :set number 显示行号,:set nonumber 除去行号

移动

  • $: 移动到行尾
  • f{char}: 在当前行寻找下一个 char 出现的位置,然后移动上去,同时 ; 可以重复上一次 f 命令搜索的字符,继续进行搜索,使用 , 可以反方向搜索
  • F{char}: 在当前行寻找上一个 char 出现的位置,然后移动上去
  • /pattern<CR>: 在整个文档寻找下一个出现的位置,n 继续,N 反方向
  • ?pattern<CR>: 在整个文档寻找上一个出现的位置,n 继续,N 反方向
  • /content: 搜索某个字符
  • %: 在匹配的括号之间来回跳转
  • zz: 让当前行显示在屏幕中间
  • 10w: 向前移动 10 个 word 的距离
  • 50j: 向下移动 50 行
  • 10G 或者 :10: 跳转到第 10 行
  • gg 或者 1G 或者 :1 跳转到首行
  • G 或者 :$ 跳转到末尾

  • Ctrl + F: 移动到下一屏幕
  • Ctrl + B: 移动到上一屏幕
  • Ctrl + D: 下移半屏
  • Ctrl + U: 上移半屏

编辑

  • i: 改变到输入模式,光标前插入字符
  • a: 在当前光标的字符下一个位置追加字符
  • I: 当前行开头处插入数据
  • A: 在当前光标的行的末尾追加字符
  • o: 当前行下面插入一行
  • O: 当前行上面插入一行
  • s: 多个字符替换一个单个字符,进入 Insert 模式
  • r: 替换单个字符
  • x: 删除当前字符
  • X: 删除光标左侧的字符
  • D: 删除从当前光标到行末尾的所有字符
  • dd: 删除当前行
  • :lined 删除指定行
  • :line,lined 删除指定范围的行
  • d10w: 删除 10 个 word
  • p: 缓冲区内容插入到光标之后
  • P: 缓冲区内容插入到光标前面
  • xp: 调换两个字符
  • ddp: 调换两行
  • ~: 改变字符大小写

Insert Mode:

  • <C-h> Delete back one character (backspace)
  • <C-w> Delete back one word
  • <C-u> Delete back to start of line
  • <C-[> 或者 Esc 都可以回到 Normal Mode

替换

命令格式:

:[range]s[ubstitute]/{pattern}/{string}/[flags]
  • :s/target/replacement: 执行替换,u 可以撤销,& 可以重复
  • :s/going/rolling 将第一个 going 替换为 rolling
  • :s/going/rolling/g 将当前行所有的 going 替换为 rolling
  • :%s/going/rolling/g 将文档中所有的 going 替换为 rolling
  • :%s/content/copy/gc 每一次替换都问一下是否替换,y 代表是,n 代表跳过
  • :57s/UNIX/Linux: 第 57 行替换
  • :57,60s/UNIX/Linux: 第 57 - 60 行替换
  • :.,$s/UNIX/Linux/g: 当前行到末尾替换
  • :1,.s/UNIX/Linux/g: 开头到当前行执行替换
  • :1,$s/UNIX/Linux/g:%s/UNIX/Linux/g 效果一样

Visual Mode

  • v: 字符级
  • V: 一行
  • <C - v>: 块级
  • 每一行末尾加上 ;,如果是在行开头加上注释应该是输入 I :

拆分窗口

多个窗口中移动焦点

  • <C-w>w Cycle between open windows
  • <C-w>h Focus the window to the left
  • <C-w>j Focus the window below
  • <C-w>k Focus the window above
  • <C-w>l Focus the window to the right

关闭窗口:

  • :cl[ose] <C-w>c Close the active window
  • :on[ly] <C-w>o Keep only the active window, closing all others

输入 shell 命令

  • :!command: 执行 command
  • :sh: 启动一个新的 shell 副本,使用完之后,按下 Ctrl + D 或者输入 exit 命令停止这个 shell,返回 vim
  • :!bash