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
-
退出:
:q!
(不保存修改)提示- vim 学习只能多练习,瞎练可不成,使用 vimtutor 系统的练习!
- 👉 OpenVim 👈 这个网站支持在线练习 VIM 。课程比 vimtutor 简单。有动画,比 vimtutor 有趣。
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。:wq
或ZZ
:保存并退出。
配置与定制 🧰
- 编辑
~/.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 )哦!😊