Vim

Vim编辑器,顾名思义就是编辑文本的输入工具,现在市面上的主流的UI编辑器有VScode、Edit、Sublime Text等等,这些都拥有可视化的界面,可以让文本编辑更快更方便。

但是,这些编辑器一般是不能直接运行在服务器上的,也就是说,我们不能直接在服务器上使用这些编辑器进行开发和修改,一般我们也不那么做。我们一般把项目上传到服务器上后,需要进行部署、调试和调优等操作时,需要修改一下配置或者相关代码,如果仅仅依赖UI编辑器,那么我们就会在服务器和本机之间反复上传和下载,大大降低了开发效率,而服务器上也是有文本编辑器的,那就是Vim。

Vim可以让我们很方便的在服务器上直接进行配置和相关代码的修改,减少了文件传输的繁琐操作,当然,这只是其中的一个小作用,至于更大的作用,取决于你在文本编辑这一方面的需求。

模式介绍

vim中共有8种模式,分别如下:

  1. 普通模式(Normal Mode) :这是 Vim 的默认模式。在普通模式下,你可以移动光标、复制、粘贴、删除、查找文本等,但不能直接输入文本。
  2. 插入模式(Insert Mode) :在插入模式下,你可以直接输入文本。你可以从普通模式切换到插入模式以开始输入文本,通常使用 i​、I​、a​、A​、o​ 或 O​ 等命令。
  3. 可视模式(Visual Mode) :可视模式允许你选择文本块,以便进行复制、剪切或其他操作。可视模式有多个变体,如字符可视模式(Visual Mode)、行可视模式(Visual Line Mode)和块可视模式(Visual Block Mode)。
  4. 命令行模式(Command-Line Mode) :在命令行模式下,你可以执行各种命令,如保存文件、退出 Vim、查找替换文本等。命令行模式通常以冒号 :​ 开始。
  5. 替换模式(Replace Mode):替换模式允许你覆盖文本。你可以从普通模式切换到替换模式,通常使用 R​ 键。
  6. 可选择模式(Select Mode):这个模式较少使用,但它允许你选择文本块,然后将其替换为你键入的文本。你可以从普通模式切换到可选择模式,通常使用 g​ 键。
  7. 外部命令模式(Ex Mode):这个模式用于执行高级编辑任务和批处理操作。你可以通过在普通模式下按 Q​ 进入外部命令模式。
  8. 输入识别模式(Input-IME Mode):如果你的系统支持多国语言输入法,Vim 可能会进入输入识别模式,以便与输入法协同工作。

其中前面4种模式是比较常用的。

普通模式

普通模式的vim的默认模式,当你进入vim时,就处于该模式下,其他模式基本都是在该模式下进行切换的。

光标移动

  • h​:左移一个字符。
  • j​:下移一个字符。
  • k​:上移一个字符。
  • l​:右移一个字符。
  • w​:左移一个单词。
  • b​:右移一个单词。
  • 0​:移到行首。
  • $​:移到行尾。
  • G​:移到文件末尾。
  • gg​:移到文件开头。
  • 行号G​或行号gg​:移动到指定行。
  • %​:跳转到匹配的括号。
  • f 字符​:跳转该行到最近的字符。

文本操作

  • y​:复制选中的文本。
  • d​:剪切选中的文本。
  • p​:在光标后粘贴。
  • P​:在光标前粘贴。
  • u​:撤销出一个操作。
  • <Ctrl + r>​:重复上一个操作。

插入模式

文本操作

  • i​:在光标前插入文本。
  • a​:在光标后插入文本。
  • I​:在当前行首插入文本。
  • A​:在当前行尾插入文本。
  • o​:在当前行下面插入新行并插入文本。
  • O​:在当前行上面插入新行并插入文本。
  • <Backspace>​或<Ctrl+h>​:删除前一个字符。
  • <Ctrl+w>​:删除前一个单词。
  • <Ctrl+u>​:删除当前行的文本。

其他操作

  • <Esc>​:退出插入模式为普通模式。
  • <Ctrl+n>​:复用后面的单词。
  • <Ctrl+p>​:复用前面的单词。
  • <Ctrl+z>​:撤销上一个操作。
  • <Ctrl+r>​:重复上一个操作。
  • <Ctrl+v>​或<shift+Insert>​:粘贴文本。

命令模式

文件操作

  • :w​:保存文件。
  • :w 文件名​:文件另存为指定文件名。
  • :q​:退出vim,不会保存。
  • :q!​:强制退出vim,不会保存。
  • :wq​或:x​:保存文件并退出。
  • :e 文件名​:打开指定文件。
  • :bn​:切换下一个缓冲区(文件)。
  • :bp​:切换上一个缓冲区。
  • :bd​:关闭当前缓冲区。

查找操作

  • :/pattern​:查找包含pattern的文本。
  • :?pattern​:查找不包含pattern的文本。
  • :s/old/new/g​:替换当前行中所有匹配项。
  • :s/old/new/gc​:同上,但每次替换都需要确认。
  • :%s/old/new/g​:替换全文中所有匹配项。
  • :%s/old/new/gc​:同上,但每次替换都需要确认。

其他操作

  • :set option​:启用某个选项,如:set number​启用行号。
  • :set nooption​:禁用某个选项,如:set nonumber​禁用行号。
  • :!command​:执行外部命令,如:!ls​查看目录文件。
  • :set expandtab​:制表符转空格。
  • :set tabstop=4​:设置制表符长度为4个空格。
  • :set softtabstop=4​:设置软制表符长度为4个空格。

可视模式

  • v​:切换到字符可视模式,可移动光标来选中字符。
  • V​:切换到行可视模式,可移动光标来选中行。
  • <Ctrl+v>​:切换到块可视模式,可移动光标来选中矩形区域的文本。

选中后的文本可以配合普通模式下的文本操作进行一个配合来达到一些想要的效果。

配置文件

  1. 基本设置:

    • set number​:显示行号。
    • set relativenumber​:使用相对行号。
    • set tabstop=4​:设置制表符宽度为 4 个空格。
    • set expandtab​:将制表符扩展为空格。
    • set autoindent​:启用自动缩进。
  2. 颜色主题:

    • colorscheme <theme>​:选择并应用颜色主题。
  3. 搜索和替换:

    • set hlsearch​:高亮搜索结果。
    • set incsearch​:逐字符增量搜索。
    • set ignorecase​:在搜索时忽略大小写。
    • set smartcase​:在搜索时根据输入内容决定是否忽略大小写。
    • set nowrapscan​:禁用循环搜索。
  4. 缩进和折叠:

    • set foldmethod=indent​:使用缩进来定义折叠。
    • set foldmethod=syntax​:使用语法高亮来定义折叠。
    • set foldlevel=1​:设置折叠级别。
    • set nofoldenable​:禁用折叠功能。
  5. 备份和临时文件:

    • set backup​:启用备份文件。
    • set backupdir=~/.vim/backup​:指定备份文件的目录。
    • set undofile​:启用撤销历史记录文件。
    • set undodir=~/.vim/undo​:指定撤销历史记录文件的目录。
  6. 插件管理:如果你使用插件管理器(如 Vundle、Pathogen、或 Vim-Plug),你可以在配置文件中添加插件相关的设置和命令。

  7. 自定义键绑定:

    • map <key> <command>​:将 <key>​ 绑定到 <command>​。
    • nnoremap <key> <command>​:创建非递归键绑定。
    • inoremap <key> <command>​:在插入模式下创建非递归键绑定。
  8. 文件类型相关配置:根据不同文件类型(filetype)定制编辑器行为,例如:

    • autocmd FileType python setlocal shiftwidth=4​:为 Python 文件设置不同的缩进选项。
  9. 自定义函数和命令:你可以在配置文件中定义自己的 Vim 函数和命令,以满足特定需求。

  10. 自动命令:使用 autocmd​ 命令来在特定事件发生时执行命令。例如,你可以在保存文件时运行自定义命令。

  11. 键盘映射:使用 map​ 命令创建自定义键盘映射,以便于快速执行操作。

插件

在 Vim 中添加插件通常需要使用插件管理器来简化和管理插件的安装和更新过程。以下是在 Vim 中添加插件的一般步骤:

  1. 选择插件管理器:
    在 Vim 中,有多个插件管理器可供选择。一些流行的插件管理器包括:

    • Vim-Plug:一个轻量级、高效的插件管理器。
    • Vundle:一个易于配置和使用的插件管理器。
    • Pathogen:用于将插件放置在单独目录中的插件管理器。
    • dein.vim:一个快速且强大的插件管理器。

    你可以选择一个适合你需求的插件管理器,然后按照相应的文档安装它。

  2. 配置插件管理器:
    在你的 ~/.vimrc​ 配置文件中添加插件管理器的配置。不同的插件管理器有不同的配置方式,但通常你需要在 ~/.vimrc​ 中添加一些设置来告诉插件管理器从哪里下载插件、如何管理它们以及如何启用它们。以下是一个使用 Vim-Plug 的示例配置:

    vimCopy code
    " Vim-Plug 配置
    call plug#begin('~/.vim/plugged')

    " 添加插件
    Plug '作者/插件名称'

    " 结束插件列表
    call plug#end()

    替换 '作者/插件名称'​ 部分为你要安装的插件的 GitHub 仓库地址或插件名称。

  3. 安装插件:
    保存并退出 ~/.vimrc​ 文件,然后重新打开 Vim。运行以下命令来安装配置文件中定义的插件:

    vimCopy code
    :PlugInstall

    插件管理器会自动下载和安装插件到指定的目录中。

  4. 配置插件:
    每个插件可能需要不同的配置,你可以查阅插件的文档或 GitHub 页面以获取更多信息。通常,你需要在 ~/.vimrc​ 文件中添加插件相关的配置。

  5. 更新插件:
    你可以定期更新插件以获取新功能和修复。使用插件管理器提供的命令来更新插件,例如,使用 Vim-Plug 可以运行以下命令:

    vimCopy code
    :PlugUpdate

这将检查每个插件是否有更新并自动安装更新。

添加插件可以极大地扩展 Vim 的功能,使其更适应你的工作需求。记住根据你选择的插件管理器的不同,配置和使用插件的细节可能会有所不同,因此阅读相关文档以获取更多信息是很重要的。同时,你也可以根据你的需求安装和配置多个插件,以构建自己理想的 Vim 环境。