Vim 常用命令和配置
本文最后更新于 2020年10月13日 上午
模式
在其他模式下使用 Esc 切换回普通模式,命令行模式下使用 :命令 + Enter 执行命令。
| 命令 | 模式 | 描述 |
|---|---|---|
默认 |
普通模式 | 控制光标移动,可对文本进行复制、粘贴等操作 |
i |
插入模式 | 写入和编辑文本 |
: |
命令行模式 | 保存或退出文本等,设置 Vim 的配置项 |
v |
可视模式 | 配合方向键选取某一块文本区域,像使用鼠标一样 |
命令
注意 n 为数字,+ 表示组合使用,其他的字符对应键盘上的按键。
普通模式:
常用的光标移动命令。
命令 描述 n + h或n + ←光标左移 n 个位置 n + l或n + →光标右移 n 个位置 n + j或n + ↓光标下移 n 个位置 n + k或n + ↑光标上移 n 个位置 ctrl + f向下滚动一屏 ctrl + b向上滚动一屏 ctrl + d向下滚动半屏 ctrl + u向上滚动半屏 0跳到首行,可以理解为无穷大的h ^跳到行首开始的第一个非空白字符 $跳到行尾,可以理解为无穷大的l gg或1 + G跳到首行,可以理解为无穷大的k G跳到末行,可以理解为无穷大的j w跳到下一个词首 b跳到上一个词首 e跳到下一个词尾 ge跳到上一个词尾 H移动到屏幕的最上方那一行的第一个字符 M移动到屏幕的最中央那一行的第一个字符 L移动到屏幕的最下方那一行的第一个字符 n + Enter光标向下移动 n 行 c删除当前光标后面的部分. 进入插入模式 cc将当前行替换为空行,进入插入模式 cw删除当前单词的光标右侧部分,进入插入模式 s删除当前字母,进入插入模式 r替换当前字母,输入一个字母后自动返回普通模式 a在光标右侧插入文本 A在行末插入文本 i在光标左侧插入文本 I在行首插入文本 o在光标下插入新行 O在光标上插入新行 n跳转下一个搜索词 N跳转上一个搜索词 常用的复制、黏贴、删除、撤销、查找等操作。
命令 描述 n + x剪切(删除)光标右边n个字符 n + X剪切(删除)光标左边n个字符 y复制在可视模式下选中的文本 y + n复制在可视模式下选中的文本 yy复制光标所在整行 n + yy复制光标所在的向下 n 行 y + n + w复制1(n)个词 y + n + l复制光标右边1(n)个字符 y + n + h复制光标左边1(n)个字符 y + $从光标当前位置复制到行尾 y + 0从光标当前位置复制到行首 y + 0从光标当前位置复制到行首。 y + 1 + G或y + gg复制光标以上的所有行 d剪切(删除)在可视模式下选中的文本 dd剪切(删除)光标所在整行 n + dd剪切(删除)光标所在的向下 n 行 d + n + w剪切(删除)1(n)个词 d + n + l剪切(删除)光标右边1(n)个字符 d + n + h剪切(删除)光标左边1(n)个字符 d + $从光标当前位置剪切(删除)到行尾 d + 0从光标当前位置剪切(删除)到行首 d + 1 + G或d + gg剪切(删除)光标以上的所有行 d + G剪切光标以下的所有行 p粘贴光标上一行 P粘贴到光标下一行 u撤销 ctrl + r恢复上一步撤销 命令行模式:
命令 描述 :w保存 :q退出 :wq或ZZ保存退出 :q!或ZQ强制退出(放弃对文档的修改内容) :wq!强制保存退出 :set nu显示行号 :set nonu不显示行号 :整数跳转到该行 ?字符串在文本中从下至上搜索该字符串 /字符串在文本中从上至下搜索该字符串 :s/one/two将当前光标所在行的第一个one替换成two :s/one/two/g将当前光标所在行的所有one替换成two :%s/one/two/g将全文中的所有one替换成two :m,ny<cr>复制m行到n行的内容 :m,nd<cr>剪切(删除)m行到n行的内容 :help 命令查看命令帮助信息
配置
Vim 的全局配置一般在
/etc/vim/vimrc或者/etc/vimrc,对所有用户生效。用户个人的配置在~/.vimrc。配置项一般都有”打开”和”关闭”两个设置。”关闭”就是在”打开”前面加上前缀”no”,双引号开始的行表示注释。
加上
:可在命令行模式运行,一些常用配置: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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60" 显示行号
set number
" 不显示行号
set nonumber
" 不与 Vi 兼容(采用 Vim 自己的操作命令)
set nocompatible
" 打开语法高亮。自动识别代码,使用多种颜色显示。
syntax on
" 在底部显示,当前处于普通模式还是插入模式。
set showmode
" 普通模式下,在底部显示,当前键入的指令。
set showcmd
" 支持使用鼠标。
set mouse=a
" 使用 utf-8 编码。
set mouse=a
" 启用256色。
set t_Co=256
" 启文件类型检查,并且载入与该类型对应的缩进规则。
filetype indent on
" 按下回车键后,下一行的缩进会自动跟上一行的缩进保持一致。
set autoindent
" Tab 转为多少个空格。
set softtabstop=2
" 设置行宽,即一行显示多少个字符。
set textwidth=80
" 光标所在的当前行高亮。
set cursorline
" 自动折行,即太长的行分成几行显示。
set wrap
" 输入搜索模式时,每输入一个字符,就自动跳到第一个匹配的结果。
set incsearch
" 搜索时,高亮显示匹配结果。
set hlsearch
" 搜索时忽略大小写。
set ignorecase
" 递归的按键映射,按 a 和 c 等于按 b。
:map a b
:map c a
" 非递归的按键映射,表示按 d 等于按 a。
:noremap d a
插件
Unix 安装 vim-plus(一个极简的Vim插件管理器):
curl -fLo ~/.vim/autoload/plug.vim --create-dirs \ https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim配置:
在~/.vimrc中添加要下载的vim插件,然后重启。
1
2
3
4
5
6
7
8
9
10
11" 开始标签
call plug#begin('~/.vim/plugged')
" 单引号内些上你需要安装的插件
Plug 'xxx'
" 结束标签
call plug#end()使用和卸载:
在命令行模式输入命令使用插件。
命令 描述 :PlugInstall [name ...] [#threads]安装插件 :PlugUpdate [name ...] [#threads]安装或更新插件 :PlugClean[!]删除未列出的插件 :PlugUpgrade升级vim-plug :PlugStatus检查插件状态 :PlugDiff检查来自先前更新的更改以及未决的更改 :PlugSnapshot[!] [output path]生成脚本以还原插件的当前快照 更多插件参见 vim Awesome。
参考
Vim 常用命令和配置
http://www.loquy.cn/posts/3f5e4d56.html