vim常用操作

本文许多内容借鉴于spacevim中文社区: https://github.com/vim-china/hello-vim.git


模式

  • vim 有三种常见的模式
    Normal(普通模式) Insert(插入模式) visual(可视模式)
  • Normal
    Vim 打开是默认的模式是 Normal 模式,在这一模式下,按键不能直接将字符插入至文件,而是执行各种命令.
    在任何模式下单击都能进入到normal模式下
  • 从Normal切换到Insert:
按键 描述 助记
i 在当前光标字符前插入 insert
I 在当前行首插入 Insert
a 在当前光标字符后插 append
A 在当前行尾插入 Append
o 在下方开一新行插入 open
O 在上方开一新行插入 Open
  • 从Normal切换到Visual:
按键 描述 助记
v 选中当前光标字符,并进入可视模式 visual
V 不同于小写 v,这时移动光标只会按行选择 Visual
块选择模式,此时移动光标会选择一个矩形块
  • 从Insert切换到Normal:
按键 描述 助记
s 删除当前已选择的内容,并进入插入模式
c 删除当前已选择的内容,并进入插入模式 change
di 删除当前已选择的内容,并进入插入模式

文件

  • 直接打开多个文件
    在terminal输入gvim file1 file2 ...
  • terminal下分栏打开多个文件
    上下分栏 : gvim -on file1 file2 ...
    左右分栏 : gvim -On file1 file2 ...
  • gvim中将当前文件分栏
    :sp 上下分栏
    :vsp 左右分栏
  • 分栏打开新文件
    :sp file 上下分栏
    :vsp file 左右分栏
  • 打开文件
    :e file1 file2 ...
  • 显示正在编辑的文件
    :ls
  • 切换文件
    :bn 下一个文件
    :bp 上一个文件

编码方式

  • 查询现在编码方式
    :set enc
  • 将当前文本转换为指定xx编码
    :set fenc=xx
  • 以指定编码显示文本
    :set enc=xx
  • 查看当前文本的模式类型(fileformat),一般为dos,unix
    :set ff
  • 修改文本类型为xx
    :set ff=xx

编辑命令

  • 移动光标
    方向键、h、j、k、l
  • Normal下快捷移动光标
按键 描述 助记
0 跳到行首,可以理解为无穷大的h
^ 跳到行首开始的第一个非空白字符
$ 跳到行尾,可以理解为无穷大的l
gg 跳到首行,可以理解为无穷大的k
G 跳到末行,可以理解为无穷大的j
w 跳到下一个词首 word
b 跳到上一个词首 back-word
e 跳到下一个词尾 end
ge 跳到上一个词尾
  • 快速移动光标
    数字+移动光标/快捷移动光标
  • 选中
    v(字符选择:VISUAL) 移动光标
    V(行选择:VISUAL LINE) 移动光标
    /(块选择:VISUAL BLOCK) 移动光标
  • 删除
    选中 d
  • 复制
    选中 y
  • 粘贴
    粘贴到位置后: 移动光标(到粘贴位置) p
    粘贴到位置前: 移动光标(到粘贴位置) P
  • 多行缩进
    选中 >(向右缩进)
    选中 <(向左缩进)
  • 自动排版
    选中 =
    n = (排版以下n行)

工作路径

  • 查看当前工作路径
    :pwd
  • 改变vim的当前工作路径
    :cd 路径
  • 改变当前窗口的工作路径
    :lcd 路径
  • 自动设当前编辑的文件所在目录为当前工作路径
    :set autochdir

查找替换

  • 查找字符串
    /[查找的字符串]
  • 跳转查找结果
    n 下一个
    N 上一个
  • 取消查找高亮
    :noh
  • 查找与替换
    :s(substitute)命令用来查找和替换字符串。语法如下:
    :{作用范围}s/{目标}/{替换}/{替换标志}
    g例如:%s/foo/bar/g会在全局范围(%)查找foo并替换为bar,所有出现都会被替换(g)

特殊命令

  • 显示历史命令
    V (在行可视模式下)
    :q

你可能感兴趣的:(vim常用操作)