命令
- . 命令重复上次修改,相当于宏
- x 删除光标下面的字符
- dd删除一行
- j 向下移动光标
- $ 移动到行末
- ^ 移动到行首
- C 删除光标之后所有东西
- f{char} 命令让Vim查找下一处指定字符出现的位置,如果找到了,就直接把光标移到那里
- cw 命令会删除从光标位置到单词结尾间的字符,并进入插入模式
- gu 转换为小写 gU 转换为大写
- v 可视化模式
切换到插入模式的命令
命令 | 说明 |
---|---|
i | 在当前字符之前插入 |
I | 在当前行的行首插入 |
a | 在当前字符之后追加文本 |
A | 把光标移动到行末尾插入 |
o | 在当前行的下面添加一行 |
O | 在当前行的上面添加一行 |
s | 删除光标下的内容并开始插入 |
S | 删除一整行开始插入 |
cc | 删除当前行并进入插入模式 |
C | 删除光标之后的内容并进入插入模式 |
移动命令
命令 | 说明 |
---|---|
k | 将光标上移一行 |
j | 将光标下移一行 |
- | 移动光标到上一行的行首 |
+ | 移动光标到下一行的行首 |
h | 左移 |
l | 右移 |
0数字 | 移动到当前行的行首 |
w | 向前移动到下一个单词的首位 |
W | 向前移动到下一个空格后的单词首位 |
b | 向后移动到下一个单词的首位 |
B | 向后移动到下一个空格后的单词首位 |
e | x向后移动到下一个单词的末尾 |
E | x向后移动到下一个单词的末尾,以空白为分隔符 |
H | j将光标移动到当前屏幕的第一行 |
M | 将光标移动到屏幕中间 |
L | 将光标移动到屏幕末尾 |
复制粘贴命令
命令 | 说明 |
---|---|
yy/Y | 复制一行,默认为当前行,若需要复制多行则是需要在yy前面加上数字 |
p | 把缓冲区的内容插入到当前字符之后 |
P | 把缓冲区的内容插入到当前字符之前 |
查找与替换命令
注意: 在address中,.代表当前行,$代表缓冲区的最后一行,%代表整个缓冲区,表中列出了一些查找与替换的命令及说明。
命令 | 说明 |
---|---|
: s/old/new | 将当前行中的old替换为new |
:1,.s/old/new/g | 将当前行之前的所有old替换为new,g代表每一行都允许进行多次替换 |
:1,$s/old/new/g | 将所有行中的old替换为new |
:%s/old/new/g | 将所有行中的old替换为new |
:.,.+10s/old/new/g | 从当前行开始连续十行内出现的old替换为new |
/old/s/old/new/g | 将首次出现字符串old的行中的old替换为new |
:5,./old/new/g | 将第五行到当前行之间所有行中出现的old替换为 |
配置用法
配置文件地址 /etc/vim/vimrc
-
显示行号 : set nu
-
不看索马里儿童: set shortmess=atI
-
每次都是按照四个字符缩进:
set ts=4 set expandtab set autoindent
-
若是vim中文显示乱码
set fileencodings=utf-8,ucs-bom,gb18030,gbk,gb2312,cp936 set termencoding=utf-8 set encoding=utf-8
-
字体设置 : set guifont=Courier_New:h12:cANSI
-
配色方案 : colorscheme desert
-
设置显示空白符
set list set listchars=tab:\>\ ,trail:.
-
设置行尾空格高亮显示
highlight WhitespaceEOL ctermbg=red guibg=red match WhitespaceEOL /\s\+$/
-
在状态行上显示光标所在位置的行号和列号
set ruler set rulerformat=%20(%2*%<%f%=\ %m%r\ %3l\ %c\ %p%%%)
-
自动格式化
set formatoptions=tcrqn