Vim logo

Vim是一个非常优秀的编辑器。但其学习曲线陡峭。

不要纠结于配置Vim成为一个“完美的IDE”。最佳实践是在各种IED中使用Vim模式进行编辑。

致敬Vim之父 Bram Moolenaar。

基本概念

  • 模式 —— Vim的编辑方式。
    1、一般模式 —— 默认模式。可控制光标的移动、文字的选择、复制粘贴删除。按Esc进入。
    2、插入模式 —— 编辑模式。对文字的编辑。按字母a、A、i、I、o、O之一进入。
    3、命令模式 —— 命令行模式。进行一些功能性操作,如全局替换、录制宏等。按:进入。
  • 任何模式都要由一般模式进入,最终也要回到一般模式。即按Esc键。

基础配置

配置文件 ~/.vimrc

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
" Configuration file for vim  
set modelines=0 " CVE-2007-2438

" Normally we use vim-extensions. If you want true vi-compatibility
" remove change the following statements
set nocompatible " Use Vim defaults instead of 100% vi compatibility
set backspace=2 " more powerful backspacing

" Don't write backup file if vim is being called by "crontab -e"
au BufWrite /private/tmp/crontab.* set nowritebackup nobackup
" Don't write backup file if vim is being called by "chpass"
au BufWrite /private/etc/pw.* set nowritebackup nobackup

let skip_defaults_vim=1
set number
set tabstop=4
syntax on
set cursorline
set ruler
set novisualbell
set noerrorbells
set ignorecase smartcase
set laststatus=2
set statusline=\ %<%F[%1*%M%*%n%R%H]%=\ %y\ %0(%{&fileformat}\ %{&encoding}\ %c:%l/%L%)\ "设置在状态行显示的信息
colorscheme desert

常用命令笔记

1
2
3
4
5
6
7
8
9
10
11

za 折叠、展开 (当前光标所在的层级)
zM 折叠所有 (整个文件 . 包括子层级)
zR 展开所有 (整个文件 . 包括子层级)
zo 展开当前层级 (当前代码块) open
zO 展开所有层级 (当前代码块) Open
zc 折叠当前层级 (当前代码块) close
zC 折叠所有层级 (当前代码块) Close



  • vscode中,jk移动会自动打开折叠的解决方法
    在vscode中执行ctrl + , 然后搜索 vim.foldfix enable即可。