模式选择 | |||
a | 插入模式(在当前字符后面) | i | 插入模式(在当前字符前面) |
R | Replace模式 | o | 插入新的一行,从行首开始输入 |
翻页操作 | |||
<C-u> | 向上翻半页 | <C-d> | 向下翻半页 |
<C-b> | 向后翻一页 | <C-f> | 向前翻一页 |
光标移动操作 | |||
:0/gg | 移到文件的开头 | G | 移到文件的末尾 |
:#/#G | 移到第#行 | #l | 移到第#列 |
0/Home | 移到行首 | $/End | 移到行首末 |
b | 移到上个字的开头 | w | 移到下个字的开头 |
^ | 移到本行第一个字符处,空格字符除外 | ||
k,j,h,l操作 | |||
k | ↑ | j | ↓ |
h | ← | l | → |
K | 查询光标所在的字符串 | J | 删除行末的回车符 |
H | 移到当前页首行的行首 | L | 移到当前页末行的行首 |
undo / redo操作 | |||
u | undo | <C-r> | redo |
删除操作 | |||
x | 删除后面一个字符 | #x | 删除后面#个字符 |
X | 删除前面一个字符 | #X | 删除前面#个字符 |
dd/D | 删除一行 | #dd/#D | 删除后面#行 |
复制 | |||
yw | 复制从光标到字尾的字符 | #yw | 复制#个字 |
yy | 复制一行 | #yy | 复制#行 |
粘贴 | |||
p | 粘贴在光标后面 | P | 粘贴在光标前面 |
Visual模式下的操作 | |||
y | 复制 | x/d | 剪切 |
u | 所有字母小写 | U | 所有字母大写 |
> | 缩进 | < | 反缩进 |
普通模式下的操作:
. 在光标处重复上一次操作。
<C-+>/<C--> 缩放字体
<C-W>i 跳转到光标所在标识符的定义行
<C-W>_ 当同时打开几个文件时,使当前窗口最大化。
<C-W><C-W> 当同时打开几个文件时,在各窗口之间切换。
<C-O> 光标返回到以前的位置
<C-I> 光标返回到后来的位置
插入模式下的操作:
<C-P> 向上搜索,补全一个词
<C-N> 向下搜索,补全一个词
命令行模式下的操作:
:!命令 执行一条外部命令
:new 文件名 打开或新建文件(同时关闭当前文件)
:split 文件名 水平切分一个新窗口,打开指定文件。
如果省略文件名,则新窗口中仍显示当前文件。
:vsplit 文件名 垂直切分一个新窗口
:set scrollbind 设置卷动绑定属性。所有设置了卷动绑定属性的窗口将一起卷动。
:set noscrollbind 解除绑定
如果要比较A、B两个文件,可以命令行启动“vim-d A B”
或者先打开A,然后vsplit B,对文件A和B都输入命令“:diffthis”
定义键:
:nmap 只对普通模式有效 :vmap 只对可视模式有效
:imap 只对插入模式有效 :cmap 只在命令行下有效
:map 在普通模式和可视模式都有效
:map! 在插入模式和命令行下都有效
字符串搜索替换:
:/字符串 向下搜索字符串
:?字符串 向上搜索字符串
n 搜索下一个
N 搜索上一个
* 向下搜索光标所在字符串
# 向上搜索光标所在字符串
:set hlsearch 高亮显示搜索结果
:set ignorecase 设置忽略字母大小写
:set noignorecase 区分字母大小写。
:起始行,结束行 s/搜索串/替换串/g $可以表示最后一行
可以先进入Visual模式选择一段文本,将在选中区域中进行替换操作。
搜索字符串可以用正规表达式:
\ 取消后面字符的特殊含义
[] 匹配其中之一
[^] 匹配非其中之一
. 匹配任意一个字符
* 匹配前一字符≥0次
\+ 匹配前一字符≥1次
\? 匹配前一字符0次或1次
\(…\) 标记后面用到的匹配字符
\数字 表示前面标记的匹配表达式
VIM启动时将会把.vimrc文件作为命令行依次执行:
set nu 显示行号
set ruler 打开光标的行列位置显示功能
set path= 设置路径
syntax on 件语法自动变色。
set mouse=a 设置在所有模式使用鼠标功能
set tabstop=4 设置tab距离
set autoindent 打开自动缩进功能
set smartindent 打开自动缩进功能,可以识别C语法以在合适的地方增加/减少缩进。
set cindent 打开自动缩进功能,可以设置不同的缩进风格。
set shiftwidth=4 设置自动缩进格数
set makeprg=gcc\ -g\ -o\ %<\ %<.c 设置编译器选项,可以直接使用make命令。
set makeprg=g++\ -g\ -o\ %<\ %<.cpp 设置编译器选项,可以直接使用make命令。
map <F8> :w<CR>:!gcc -g -o%< %<.c<CR> 设置键<F8>为编译C源程序
map <F9> :w<CR>:!g++ -g -o%< %<.cpp<CR> 设置键<F9>为编译C++源程序