JMing's Blog

vim快速入门

字数统计: 1.7k阅读时长: 6 min
2024/07/06

一、vim 命令常用选项

  • 查看 vim 版本、配置文件位置及编译信息
1
vim --version
  • 打开或新编辑
1
2
3
vim             # 直接开始编辑(保存文件时需指定文件名)
vim <filename> # 打开已有文件或为新文件指定文件名(文件未保存时文件还不存在)
vim <filelist> # 打开多个文件
  • 打开 vim 使用教程
1
vimtutor

二、vim 的几种模式

  • 命令模式(Command mode): 进入 vim 编辑器默认为此模式, 在该模式下, 键入的字符会被识别为命令
  • 插入模式(Insert mode): 插入模式可以像其他编辑器一样插入字符, 进入插入模式底部会显示 -- INSERT --
  • 底线模式(Last line mode): 在命令模式下键入 : 进入底线命令模式, 会在最底部出现 :, 此时可以输入行命令
  • 视图模式(Visual mode): 命令模式下键入 v 进入视图模式, 进入视图模式底部会显示 -- VISUAL --, 在此模式下可以移动光标对文本进行选中, 可以对选中的文本进行命令操作

三、vim 的基本使用

以下,<filename> 代表文件名, <text> 代表文本, <N> 代表一个数字, <char> 代表一个字符

退出 vim 编辑器

  • 在未改动文件的情况下: :q
  • 在改动过文件但未保存时: :q!(强制退出)

从命令模式到插入模式的几种方式

  • 在光标前: i
  • 在光标后: a
  • 光标下一行: o
  • 光标上一行: O
  • 光标所在行尾部: A

从插入模式返回到命令模式

  • ESC
  • <ctrl-[>
  • <ctrl-c>

保存相关

  • 文件存在或文件不存在但已指定文件名: :w
  • 还原文件到上一次保存的状态: :e!
  • 保存并退出
    • :wq
    • :x
    • ZZ(命令模式下)
  • 文件不存在且未指定文件名
    • :w <filename>
    • :wq <filename>
    • x <filename>

移动光标

  • 左下右上分别为: h, j, k, l
  • 移动到行首: 0
  • 移动到行尾: $
  • 移动到行首第一个非空白符: ^
  • 移动到行尾第一个非空白符: g_
  • 移动到下一个单词的开头: w
  • 移动到下一个单词的结尾: e
  • 移动到下一个单词的开头(紧挨在一起的非空白符识别为一个单词): W
  • 移动到下一个单词的结尾(紧挨在一起的非空白符识别为一个单词): E
  • 移动到相应代码块的对应括号: %
  • 移动到光标所在行内查找到的字符的前一个字符, 向右查找: t<char>
  • 移动到光标所在行内查找到的字符的前一个字符, 向左查找: T<char>

删除相关

  • 删除当前光标所指字符: x
  • 在本行内删除所有内容, 直到遇到指定字符: dt<char>

查看帮助文档

  • 进入帮助文档: :help
  • 退出帮助文档, 返回编辑器: :q
  • 退出帮助文档同时退出编辑器: qa!

查找定位

  • 向下查找: /<text>
  • 向上查找: ?<text>
  • 下一个: n
  • 上一个: N
  • 完整匹配光标当前所在的单词并查找下一个: *
  • 完整匹配光标当前所在的单词并查找上一个: #
  • 在光标所在行内查找字符, 向右查找: f<char>
  • 在光标所在行内查找字符, 向左查找: F<char>
  • 查找高亮: :set hlsearch

编辑器下方的 /text?text 未消失说明还在查找状态, 在查找状态可选择查找下一个或上一个

撤销与重做

  • 撤销上一次操作: u
  • 还原上一次撤销的操作: <ctrl-r>

复制相关

  • 复制光标所在行: yy
  • 剪切光标所在行: dd
  • 在光标下一行插入一行并粘贴: p
  • 将下一行的内容合并到本行: J

对原有命令进行附加操作

  • 重复上一个改变文本的命令: .
  • 重复某个命令 N 次: N<command>
  • 重复 N 次插入操作: Ni<text><ctrl-c><CR>

跳转相关

  • 跳转到第 N
    • <N>G
    • :<N>
  • 跳转到第一行: gg
  • 跳转到最后一行: G

四、vim 进阶使用

视图模式

以字符为选择单位, 命令模式下键入 v 进入视图模式, 进入视图模式底部会显示 -- VISUAL --

  • 选择双引号之间的内容, 但不包括引号本身: vi"
  • 选择双引号之间的内容, 包括引号本身: va"
  • 选择括号之间的内容, 但不包括括号本身: vi)
  • 选择括号之间的内容, 包括括号本身: va)"
  • … (只要是成对的符号都可以这样操作)

行视图模式

以行作为选择单位, 在命令模式下键入 V 进入行视图模式, 进入行视图模式底部会显示 -- VISUAL LINE --

块视图模式

可以进行矩形(块)选择, <ctrl-v> 进入块视图模式, 进入块视图模式底部会显示 -- VISUAL BLOCK --

  • 在块视图模式下键入 I 可以进入块插入模式, 可以对选择的块以行为单位进行批量插入

自动补全

在插入模式下, 键入<ctrl-n>, ctrl-p 可以进行自动补全, <ctrl-n> 为选中下一个补全项, <ctrl-p> 为选中上一个补全项

快速缩进

进入视图模式后, 可以键入 = 将选中的内容自动缩进

多文件与分屏

  • 上下分屏: :sp
  • 左右分屏: :vs
  • 在不同的分屏中跳转: <ctrl-w>*2
  • 在本分屏中载入文件: :b <filename>

五、vim 的配置文件

不同配置文件的位置与区别

  • 系统配置文件: /etc/.vimrc
  • 用户配置文件: ~/.vimrc

注意: 系统配置文件对所有用户生效, 用户配置文件仅对当前用户生效, 用户配置文件对于当前用户来说优先级较高, 所以在系统配置文件中我们一般只设置公共配置或不进行配置

六、vim 常用配置

视觉相关

  • 显示行号: set number
  • 查找高亮: set hlsearch
  • 成对匹配的符号高亮: set showmatch
  • 当前行高亮: set cursorline
  • 列高亮: set colorcolumn=82(个人习惯 82)

缩进相关

  • 自动缩进: set autoindent
  • 根据文件其他地方推测一个 tab 为几个空格: set starttab
  • 缩进量: set shiftwidth=2
  • 缩进及退格所缩进或删除的空格数: set softtabstop=2
  • 使用空格缩进: set expandtab

查找相关

  • 查找时忽略大小写: set ignorecase
  • 输入搜索时就高亮显示: set incsearch

七、vim 安装插件

安装 coc.nvim

暂未开始

到此还未结束, 本文档将不定时更新

written by jm

CATALOG
  1. 1. 一、vim 命令常用选项
  2. 2. 二、vim 的几种模式
  3. 3. 三、vim 的基本使用
    1. 3.1. 退出 vim 编辑器
    2. 3.2. 从命令模式到插入模式的几种方式
    3. 3.3. 从插入模式返回到命令模式
    4. 3.4. 保存相关
    5. 3.5. 移动光标
    6. 3.6. 删除相关
    7. 3.7. 查看帮助文档
    8. 3.8. 查找定位
    9. 3.9. 撤销与重做
    10. 3.10. 复制相关
    11. 3.11. 对原有命令进行附加操作
    12. 3.12. 跳转相关
  4. 4. 四、vim 进阶使用
    1. 4.1. 视图模式
    2. 4.2. 行视图模式
    3. 4.3. 块视图模式
    4. 4.4. 自动补全
    5. 4.5. 快速缩进
    6. 4.6. 多文件与分屏
  5. 5. 五、vim 的配置文件
    1. 5.1. 不同配置文件的位置与区别
  6. 6. 六、vim 常用配置
    1. 6.1. 视觉相关
    2. 6.2. 缩进相关
    3. 6.3. 查找相关
  7. 7. 七、vim 安装插件
    1. 7.1. 安装 coc.nvim
  8. 8. 到此还未结束, 本文档将不定时更新