Skip to the content.

CentOS 9 实战速查手册:Vim 从入门到进阶

欢迎来到《CentOS 9 实战速查手册》专栏的扩展阅读文章。在这篇文章中,我们将深入探讨 Vim 的基本使用常见配置,帮助你将 Vim 配置成一个强大的 IDE,适用于 C 语言和 Python 的开发环境。

1. Vim 简介

Vim(Vi IMproved)是从 vi 发展出来的一个文本编辑器,拥有许多增强功能,如多级撤销语法高亮文件名补全丰富的插件系统等。Vim 被广泛应用于程序开发、系统管理等领域。

2. Vim 基本使用

2.1 安装 Vim

CentOS 9 中,使用以下命令安装 Vim:

sudo dnf install -y vim

MacOS 中,使用 Homebrew 安装 Vim:

brew install vim

Ubuntu 中,使用以下命令安装 Vim:

sudo apt-get install -y vim

2.2 启动 Vim

vim filename

2.3 模式切换

3. Vim 常用快捷键

3.1 移动光标

3.2 编辑文本

3.3 查找和替换

3.4 文件操作

3.5 可视模式

3.6 宏操作

3.7 多文件操作

3.8 多窗口操作

4. Vim 常用命令

4.1 文件和目录操作

# 打开文件
vim filename

# 查看当前文件路径
:pwd

# 切换到上一个编辑的文件
:e#

# 退出文件并保存
:wq

4.2 文件系统操作

# 列出目录内容
:!ls -la

# 创建目录
:!mkdir /path/to/directory

# 删除文件或目录
:!rm -rf /path/to/file_or_directory

5. 常用操作案例

5.1 选择并复制多行

  1. V 进入行选择模式。
  2. 使用 jk 选择多行。
  3. y 复制选择的行。

5.2 查找并替换

  1. 在正常模式下输入 :%s/old/new/g 替换整个文件中的 oldnew
  2. 输入 :n 查找下一个匹配项,输入 :N 查找上一个匹配项。

5.3 删除多行

  1. V 进入行选择模式。
  2. 使用 jk 选择多行。
  3. d 删除选择的行。

5.4 使用宏重复操作

  1. qa 开始录制宏到寄存器 a
  2. 执行一系列命令。
  3. q 停止录制宏。
  4. @a 执行宏。

6. 配置 Vim 适合于 C 及 Python 语言开发的 IDE 环境

6.1 创建配置文件

Vim 的配置文件为 ~/.vimrc。你可以使用 Vim 创建和编辑此文件:

vim ~/.vimrc

6.2 基本配置

~/.vimrc 中添加以下基本配置:

" 基本设置
set number              " 显示行号
set tabstop=4           " 设置制表符为 4 个空格
set shiftwidth=4        " 设置自动缩进为 4 个空格
set expandtab           " 将制表符转换为空格
set autoindent          " 自动缩进
set smartindent         " 智能缩进
set cursorline          " 高亮当前行
set wildmenu            " 命令行补全增强
set showcmd             " 显示命令
set clipboard=unnamed   " 使用系统剪贴板
set hlsearch            " 高亮搜索结果
set incsearch           " 增量搜索
set ignorecase          " 搜索时忽略大小写
set smartcase           " 如果包含大写字母则区分大小写
syntax on               " 语法高亮
filetype plugin indent on " 启用文件类型检测、插件和自动缩进

6.3 安装插件管理器

使用 vim-plug 作为插件管理器。在终端中执行以下命令安装 vim-plug

curl -fLo ~/.vim/autoload/plug.vim --create-dirs \
https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim

6.4 安装 C 及 Python 语言开发相关插件

~/.vimrc 中添加以下内容来安装 C 及 Python 语言开发相关的插件:

" 加载插件管理器
call plug#begin('~/.vim/plugged')

" C 及 Python 语言语法高亮和代码补全插件
Plug 'preservim/nerdtree'            " 文件浏览器插件
Plug 'vim-airline/vim-airline'       " 状态栏美化插件
Plug 'vim-airline/vim-airline-themes'" 状态栏主题插件
Plug 'scrooloose/nerdcommenter'      " 代码注释插件
Plug 'junegunn/fzf', { 'do': { -> fzf#install() } }   " 文件搜索插件
Plug 'junegunn/fzf.vim'
Plug 'dense-analysis/ale'            " 语法检查和代码补全插件
Plug 'ycm-core/YouCompleteMe'        " 代码补全插件
Plug 'nvie/vim-flake8'               " Python 代码检查插件
Plug 'kien/ctrlp.vim'                " 文件搜索插件
Plug 'honza/vim-snippets'            " 代码片段集合
Plug 'tpope/vim-fugitive'            " Git 集成插件

" 结束插件管理器
call plug#end()

" C 语言开发配置
autocmd FileType c setlocal shiftwidth=4 tabstop=4

" Python 开发配置
autocmd FileType python setlocal shiftwidth=4 tabstop=4 expandtab

" NERDTree 配置
map <C-n> :NERDTreeToggle<CR>

" Airline 配置
let g:airline#extensions#tabline#enabled = 1

" FZF 配置
map <C-p> :Files<CR>

" ALE 配置
let g:ale_linters = {
\   'c': ['gcc'],
\   'python': ['flake8'],
\}

" YouCompleteMe 配置
let g:ycm_global_ycm_extra_conf = expand('~/.vim/.ycm_extra_conf.py')

6.5 安装插件

在 Vim 中执行以下命令安装插件:

:PlugInstall

6.6 配置代码补全插件

YouCompleteMe 需要进行额外配置。首先,安装 YouCompleteMe 的依赖:

CentOS 上:

sudo dnf install -y cmake gcc-c++ make cpython3-devel go
export GOPATH=$HOME/go
export PATH=$PATH:$GOPATH/bin
export GOPROXY=https://goproxy.cn,direct

source ~/.bashrc  # 或者 source ~/.zshrc
go install golang.org/x/tools/gopls@latest
cd ~/.vim/plugged/YouCompleteMe/third_party/ycmd
vim CMakeLists.txt
FetchContent_Declare(
  absl
  GIT_REPOSITORY https://github.com/abseil/abseil-cpp.git
  GIT_TAG        absl-20210324.2
)
FetchContent_Declare(
  absl
  GIT_REPOSITORY https://mirrors.tuna.tsinghua.edu.cn/git/abseil-cpp.git
  GIT_TAG        absl-20210324.2
)
curl -fsSL https://rpm.nodesource.com/setup_20.x | sudo bash -
sudo dnf install -y nodejs

MacOS 上:

brew install cmake python go

然后,编译 YouCompleteMe 插件:

cd ~/.vim/plugged/YouCompleteMe
python3 install.py --all

6.7 创建 .ycm_extra_conf.py 文件

在你的项目根目录下创建 ~/.vim/.ycm_extra_conf.py 文件,内容如下:

import os
import ycm_core

flags = [
  '-Wall',
  '-Wextra',
  '-Werror',
  '-std=c++17',
  '-x',
  'c++',
  '-I',
  '.',
]

c_flags = [
  '-Wall',
  '-Wextra',
  '-Werror',
  '-std=c11',
  '-x',
  'c',
  '-I',
  '.',
]

python_flags = [
  '-Wall',
  '-Wextra',
  '-Werror',
  '-x',
  'python',
  '-I',
  '.',
]

go_flags = [
  '-Wall',
  '-Wextra',
  '-Werror',
  '-x',
  'go',
  '-I',
  '.',
]

def Settings(**kwargs):
  language = kwargs['language']
  if language == 'cfamily':
    return {
      'flags': flags
    }
  elif language == 'python':
    return {
      'flags': python_flags
    }
  elif language == 'go':
    return {
      'flags': go_flags
    }
  return {}

6.8 配置 Python 环境

~/.vimrc 中添加以下内容来配置 Python 开发环境:

" 设置 Python 3 解释器路径
let g:python3_host_prog = '/usr/bin/python3'

" 启用 flake8 进行 Python 代码检查
let g:ale_linters = {
\   'python': ['flake8'],
\}

6.9 测试配置

现在,你可以打开一个 C 或 Python 语言文件,测试你的 Vim IDE 环境。以下是一些常用的快捷键和命令:

7. 总结

在这篇扩展阅读文章中,我们介绍了 Vim 的基本使用和常见配置,并展示了 Vim 的常用快捷键和多文件、多窗口操作。最后,我们配置出了一款适合于 C 及 Python 语言开发的 IDE 环境。通过掌握这些内容,你可以更高效地使用 Vim 进行代码编写和编辑。