跳到主要内容

VIM学习指南:如何开始学习并掌握VIM 🛠️

前言

由于学习方法不当,导致一直未能系统的掌握 VIM ,直到写下这篇文章的时候,才找到了比较好的学习方法。在此分享,希望能帮助你快速掌握 VIM。

1. 为什么选择学习 VIM?

  • CLI/TUI环境:GUI 下的编辑器当然是极好用的,但是某些时候只能使用 CLI/TUI 就要用上 VIM/nano 之类的编辑器了。
  • 适配性强:几乎在所有系统中都可使用 VIM。
  • 功能完善:VIM 本身的功能就比较完善,还支持丰富的插件与配置。

不要强迫自己只用 VIM 或者不用 VIM。

2. 学习 VIM 的方法与步骤 🌱

2.1 从视频了解 VIM

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

👉 点击查看视频 👈

2.2 使用 vimtutor 入门

视频只是起点,实际练习才是掌握 VIM 的关键:

  • vimtutor 是 VIM 自带的教学工具 vimtutor截图

  • 启动: vimtutor

  • 退出::q! (不保存修改)

    提示
    • vim 学习只能多练习,瞎练可不成,使用 vimtutor 系统的练习!

  • 👉 OpenVim 👈 这个网站支持在线练习 VIM 。课程比 vimtutor 简单。有动画,比 vimtutor 有趣。

OpenVim截图


VIM的基础用法总结
:::tip[学成后,写点笔记,偶尔看看] 1. 提炼重点(减少阅读时长) 2. 便于查询(放在网上) 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)、语法高亮等功能。

3. VIM 配置

Details
以下是一个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>

这个配置文件包含了VIM的一些基本设置、插件管理、主题设置、自定义映射以及一些自动命令和函数。以下是该配置的几点说明:

  • Vundle:这里使用了Vundle作为插件管理器,你需要先安装Vundle,然后运行:PluginInstall来安装列出的插件。
  • 插件:列出了一些常用的插件,如NERDTree(文件浏览器)、vim-airline(状态栏增强)、CtrlP(文件查找)等。
  • 主题:使用了Solarized主题,设置为暗色背景。
  • 自定义映射:定义了一些快捷键,如使用<C-n>来打开/关闭文件浏览器。
  • 自动命令:根据文件类型自动设置缩进宽度等。
  • 函数和命令:定义了一个函数和一个命令来清除行尾空白。
  • 自动保存:当光标停止移动时自动保存文件。

你可以根据自己的需求对这个配置进行调整或扩展。

4. VIM 的官方资料

如果你对 VIM 感兴趣,可以通过以下资源深入了解:

4.1 帮助文档

VIM 的帮助系统内容详尽,输入 :help 即可查看。例如:

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

4.2 官方文档与资源

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

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