vim操作集锦

  |  

摘要: 本文整理 vim 中常见的操作和小功能,持续更新

【对算法,数学,计算机感兴趣的同学,欢迎关注我哈,阅读更多原创文章】
我的网站:潮汐朝夕的生活实验室
我的公众号:算法题刷刷
我的知乎:潮汐朝夕
我的github:FennelDumplings
我的leetcode:FennelDumplings


配置

如果要永久生效,要写在 vimrc 文件中。

缩进改为 4 空格

1
set ts=4

显示行号

1
:set nu

如果要永久显示

原生 vim 操作

(1) 命令行模式

将源文件中的2空格缩进变成4空格缩进

首先,把 2 空格转换成 tab。

1
2
3
:set ts=2
:set noexpandtab
:%retab!

再把缩进宽度有2空格编程4空格长度。

1
:set ts=4

最后缩进转空格。

1
2
:set expandtab
:%retab!

(2) 标准模式

切换 Tab

在标准模式下,切换 Tab:

1
2
gt: 向后
gT: 向前

插件

(1) spf13

spf13 类似于一个懒人集合包,它主要是把一些经典的 vim 插件自动安装了,同时用户可以自己增减插件,以及配置快捷键映射。

安装 spf13

1
curl https://j.mp/spf13-vim3 -L > spf13-vim.sh && sh spf13-vim.sh

.vimrc.local

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
" 键盘映射 {
" 保存和退出
nmap fw :w<CR>
nmap fq :q<CR>
nmap fwq :wq<CR>

" NERDTree
nmap <C-E> :NERDTreeToggle<CR>
" }

" 数字格式默认10进制
set nrformats=

" 修改注释颜色
hi comment ctermfg=5 cterm=bold
" 修改普通文本颜色
hi normal ctermfg=7
" 代码中关键字加粗
hi Identifier cterm=bold
hi String ctermfg=6 cterm=bold
hi Number ctermfg=6 cterm=bold
hi Statement cterm=bold
hi Type cterm=bold
hi Constant cterm=bold

(2) vimgrep: 在文件及目录中查找字符串

1
:vimgrep /{pattern}/[g][j] {file} ...

就是在路径和文件名符合 {file} 的所有文件中, 查找符合 {pattern} 的字符串。查找的结果可以用 :copen 命令打开 quickfix 列表查看。

参数 g 表示是否把每一行的多个匹配结果都加入,如果没有则每行只查找一次关键字。

参数 j 表示是否搜索完后定位到第一个匹配位置,如果没有则查找后 VIM 会跳转至第一个关键字所在的文件。

一些常见的查找任务的例子:

1
2
3
4
5
vimgrep /pattern/ %           在当前打开文件中查找
vimgrep /pattern/ * 在当前目录下查找所有
vimgrep /pattern/ ** 在当前目录及子目录下查找所有
vimgrep /pattern/ *.c 查找当前目录下所有.c文件
vimgrep /pattern/ **/* 只查找子目录

查找完成后,用一下命令浏览结果:

1
2
3
4
5
cn         查找下一个
cp 查找上一个
copen 打开 quickfix
cw 打开 quickfix
cclose 关闭 qucikfix

(3) ctrlp: 模糊搜索

:CtrlP 模糊搜索当前目录及其子目录下的所有文件。

:CtrlPFunky 模糊搜索当前文件中所有函数。

搜索框出来后, 输入模糊搜索的关键字, 然后用以下命令进行访问。但是不支持中文。

1
2
3
4
ctrl+j/k 进行上下选择
ctrl+x 在当前窗口水平分屏打开文件
ctrl+v 在当前窗口垂直分屏打开文件
ctrl+t 在新 tab 中打开

此外还可以通过以下命令切换查找的模式:

1
2
3
ctrl+f/b  在查找文件、缓冲区、MRU文件这几种模式之间进行切换
ctrl+d 路径匹配和文件名匹配之间切换
ctrl+r 字符串模式和正则表达式模式之间切换

Share