Keep it simple enough.
常用指令
- i插入,在光标前插入
- x删除当前光标所在的字符
- dd删除并保持剪贴板,2dd删除2行
- p黏贴 3p
- hjkl左下右上
- 数字0到行头
- ^到本行第一个不是blank(空格,tab,换行,回车)字符
- $到本行行尾,0到本行开头
- g_本行最后一个不是blank字符位置
- /pattern 搜索出字符多个匹配,按n到下一个
- yy拷贝当前行,相当于ddp
- u撤销
- 反撤销
- .重复上一次命令 3.重复三次
- NG到第N行 :N如:137
- gg到第一行
- G到最后一行
- 块操作hjkl =自动缩进<>左右缩进
- 自动补全
.vimrc无插件基本配置说明
1 | """" |
2 | set nu |
3 | set relativenumber |
4 | syntax on |
5 | filetype on |
6 | set nocompatible |
7 | set history=1000 |
8 | set autoread |
9 | set autowrite |
10 | set autochdir |
11 | set showmatch |
12 | set matchtime=1 |
13 | set ruler |
14 | set mouse=a |
15 | set tabstop=4 |
16 | set shiftwidth=4 |
17 | set autoindent |
18 | set smartindent |
19 | set cursorline |
20 | set cursorcolumn |
21 |
|
22 | set incsearch |
23 | set hlsearch |
24 | set ignorecase |
25 | set smartcase |
26 |
|
27 | set showcmd |
28 | set cmdheight=2 |
29 | set showmode |
30 | set scrolloff=7 |
31 | set paste |
32 | set t_Co=256 |
33 |
|
34 | """" |
35 | set list listchars=tab:→\ ,trail:· |
36 |
|
37 | """" |
38 | au FileType c,cpp,python,vim set textwidth=80 |
39 | set colorcolumn=81 |
40 |
|
41 | """" |
42 | au FileType text,markdown,html,xml set wrap |
43 | set linebreak |
44 | set breakindent |
45 |
|
46 | """" |
47 | """" |
48 | if has("win32") |
49 | set fileformats=dos,unix,mac |
50 | else |
51 | set fileformats=unix,mac,dos |
52 | endif |
53 |
|
54 | """" |
55 | noremap <leader>m :%s/<C-V><C-M>//ge<CR> |
56 |
|
57 | """" |
58 | set encoding=utf-8 "设置编码" |
59 | set fencs=utf-8,ucs-bom,shift-jis,gb18030,gbk,gb2312,cp936 |
60 | set fileencodings=utf-8 "设置文件编码" |
61 | set termencoding=utf-8 "设置终端编码" |
62 | set langmenu=zh_CN.UTF-8 "设置语言编码" |
63 | set helplang=cn "帮助语言" |
64 |
|
65 | """""""""""""""""""""""""""""""""""""""""""""""""""" |
插件管理器vim-plug
安装命令:
1 | curl -fLo ~/.vim/autoload/plug.vim --create-dirs \ |
2 | https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim |
~/.vimrc
插件配置示例
1 | call plug#begin('~/.vim/plugged') |
2 |
|
3 | Plug 'junegunn/vim-easy-align' |
4 |
|
5 | Plug 'scrooloose/nerdtree', { 'on': 'NERDTreeToggle' } |
6 |
|
7 | Plug 'rdnetto/YCM-Generator', { 'branch': 'stable' } |
8 | call plug#end() |
插件管理Commands
Command |
Description |
PlugInstall [name ...] [#threads] |
Install plugins |
PlugUpdate [name ...] [#threads] |
Install or update plugins |
PlugClean[!] |
Remove unlisted plugins (bang version will clean without prompt) |
PlugUpgrade |
Upgrade vim-plug itself |
PlugStatus |
Check the status of plugins |
PlugDiff |
Examine changes from the previous update and the pending changes |
PlugSnapshot[!] [output path] |
Generate script for restoring the current snapshot of the plugins |
需要手动安装(非插件管理器安装)的工具
安装
1 | git clone https://github.com/universal-ctags/ctags |
2 | cd ctags |
3 | ./autogen.sh |
4 | ./configure |
5 | make |
6 | sudo make install |
7 |
|
8 | sudo ln -s /usr/local/bin/ctags /usr/bin/ctags |
vimrc配置
1 | """""""""""""""""universal-ctags""""""""""""""""""""" |
2 | "set tags=./.tags;,.tags |
3 | set autochdir |
常用插件命令
我使用的插件见我的配置文件,部分插件需要vim8支持,确保版本正确。
- ctrl-n 开启关闭nerdtree(文件管理器)
- F9开启关闭tagbar(代码提纲)
- ctrl-]跳转定义ctags
- ctrl-w]新窗口预览—->推荐用法
- ctrl-o返回之前位置
leaderf命令
<leader>
为\
键
<leader>f
检索文件
<leader>b
检索buffer
LeaderMru
搜索🔍最近使用过的文件
LeaderfFunction
搜索当前文件的函数
LeaderfLine
搜索当前文件中的某个单词
在leader运行起来后可执行如下操作
<ESC>
退出leaderf
<ctrl-r>
模糊匹配与正则匹配切换
<ctrl-f>
在全路径搜索与名字搜索之间切换
<tab>
在检索模式与选择模式切换
vim资源
- 我的配置文件:https://github.com/opfanswyx/Atticus_Vim
- vim在线中文文档
- VIM大冒险:https://vim-adventures.com/