跳到主要内容

VIM 适当掌握终端编辑器

1. 为什么使用 VIM?

  1. 服务器没有桌面环境
  2. VIM 启动快,很适合简单编辑文本。

2. 学习方法

2.1 视频学习

通过视频学习直观清晰,能直接看到操作带来的效果。

👉 点击查看视频 👈


2.2 vimtutor 练习(推荐)

vimtutor 是 VIM 自带的教学工具,使用命令 vimtutor 启动教程,通过实操逐一完成教学章节。

vimtutor 截图


2.3 在线练习

👉 OpenVim 👈 在线练习 VIM 。不太推荐。

OpenVim 截图


3.基础操作总结

启动 VIM

  • vim filename:打开或创建一个文件。
  • vim:不指定文件名,进入 VIM 的空编辑环境。

模式切换

  • 正常模式(Normal Mode):默认模式,按 Esc 键进入。
  • 插入模式(Insert Mode)
    • i:在光标前插入。
    • a:在光标后插入。
    • o:在当前行下方插入新行。
  • 命令模式(Command Mode):按 : 进入。
  • 可视模式(Visual Mode):按 v 进入字符可视模式,V 进入行可视模式,Ctrl + v 进入块可视模式。

移动光标

  • h, j, k, l:分别向左、下、上、右移动光标。
  • w:跳到下一个单词开头。
  • b:跳到上一个单词开头。
  • $:移动到行尾,0:移动到行首。

编辑文本

  • 删除x 删除字符,dd 删除行,dw 删除单词。
  • 复制和粘贴yy 复制行,p 在光标下方粘贴。
  • 撤销与重做u 撤销,Ctrl + r 重做。

搜索与替换

  • /pattern:搜索模式,向下查找。
  • :%s/old/new/g:全局替换文本。

文件操作

  • :w:保存文件。
  • :q:退出 VIM。
  • :wqZZ:保存并退出。

配置与定制

  • 编辑 ~/.vimrc 文件,启用行号显示(set number)、语法高亮等功能。

4. VIM 配置

创建 ~/.vimrc ,根据需求添加配置项:

" 设置VIM基本配置
set nocompatible " 关闭兼容模式
filetype plugin indent on " 启用文件类型检测,加载相应的插件和缩进规则
syntax on " 启用语法高亮

" 显示相关设置
set number " 显示行号
set ruler " 显示光标位置
set showcmd " 显示命令
set showmode " 显示当前模式
set laststatus=2 " 总是显示状态栏
set wildmenu " 启用命令行补全菜单

" 编辑相关设置
set autoindent " 自动缩进
set smartindent " 智能缩进
set tabstop=4 " 设置Tab键宽度
set shiftwidth=4 " 设置自动缩进宽度
set expandtab " 使用空格代替Tab
set backspace=indent,eol,start " 允许在插入模式下使用退格键删除

" 搜索相关设置
set incsearch " 增量搜索
set hlsearch " 高亮搜索结果
set ignorecase " 搜索时忽略大小写
set smartcase " 如果搜索模式包含大写字母,则不忽略大小写

" 文件编码设置
set encoding=utf-8 " 设置VIM内部使用的编码
set fileencodings=ucs-bom,utf-8,gb18030,gbk,gb2312,cp936 " 文件编码自动识别

" 性能和安全设置
set nobackup " 不创建备份文件
set nowritebackup " 不创建写时备份
set noswapfile " 不使用交换文件
set undofile " 启用持久化撤销
set undodir=~/.vim/undodir " 设置撤销文件保存目录

" 其他设置
set mouse=a " 启用鼠标支持
set clipboard=unnamedplus " 使用系统剪贴板
set autoread " 自动重载外部修改的文件
set hidden " 允许在有未保存的更改时切换缓冲区
set history=1000 " 命令历史记录的最大条数

" 插件管理器:Vundle
set rtp+=~/.vim/bundle/Vundle.vim
call vundle#begin()

Plugin 'VundleVim/Vundle.vim' " 必须安装Vundle本身
Plugin 'tpope/vim-fugitive' " Git 插件
Plugin 'scrooloose/nerdtree' " 文件浏览器
Plugin 'vim-airline/vim-airline' " 状态栏增强
Plugin 'vim-airline/vim-airline-themes'
Plugin 'altercation/vim-colors-solarized' " Solarized配色方案
Plugin 'Yggdroot/indentLine' " 显示缩进线
Plugin 'ctrlpvim/ctrlp.vim' " 文件查找

call vundle#end()

" 插件配置
let g:airline_theme='solarized'
let g:airline_powerline_fonts = 1
let g:indentLine_char = '│'
let g:ctrlp_map = '<c-p>'
let g:ctrlp_cmd = 'CtrlP'

" 主题设置
set background=dark
colorscheme solarized

" 自定义映射
nnoremap <C-n> :NERDTreeToggle<CR> " 打开/关闭文件浏览器
nnoremap <C-p> :CtrlP<CR> " 打开文件查找

" 自动命令
autocmd FileType python setlocal expandtab shiftwidth=4 softtabstop=4
autocmd FileType javascript setlocal expandtab shiftwidth=2 softtabstop=2

" 函数和命令
function! TrimWhiteSpace()
%s/\s\+$//e
endfunction
command! TrimWhiteSpace call TrimWhiteSpace()

" 自动保存
autocmd CursorHold,CursorHoldI * update

" 注释快捷键
autocmd FileType python nnoremap <buffer> <leader>c I#<esc>
autocmd FileType javascript nnoremap <buffer> <leader>c I//<esc>

说明:

  • Vundle:这里使用了 Vundle 作为插件管理器,你需要先安装 Vundle,然后运行 :PluginInstall 来安装列出的插件。

    安装
    git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim
  • 插件:列出了一些常用的插件,如 NERDTree(文件浏览器)、vim-airline(状态栏增强)、CtrlP(文件查找)等。

  • 主题:使用了 Solarized 主题,设置为暗色背景。

  • 自定义映射:定义了一些快捷键,如使用 <C-n> 来打开/关闭文件浏览器。

  • 自动命令:根据文件类型自动设置缩进宽度等。

  • 函数和命令:定义了一个函数和一个命令来清除行尾空白。

  • 自动保存:当光标停止移动时自动保存文件。

5. 获取帮助

进入 VIM 查看指定指令的帮助,例如:

  • :help copy:查看复制命令的帮助。
  • :help :q:查看退出命令的帮助。

image-20250522062759011

image-20250522062954702

4.2 官方文档与资源

  • VIM 官网:获取官方文档与最新版本。

希望这篇学习指南能帮助你迈出第一步,轻松上手 VIM!赶紧试一试吧!✨
别忘了收藏 在线知识库www.zxzsk.com )哦!😊