vi/vim手册

快捷键

命令模式

全部删除

d + G

复制一行

y + y

复制当前行到下一行,此复制不会放到剪切板中

y + y + p

全部复制

ggyG

全选然后删除

gg 全选 ,然后按dG删除所有

ggdG

全选高亮显示

ggvG

或者

ggVG

粘贴

p

撤消操作

u

在当前行上面新建一行,光标在新行

O

在当前行下面新建一行,光标在新行

o

删除(剪切)当前行

dd

保存不退出

:w

向下(等于方向键下)

j

向上(等于方向键上)

k

移动光标

向上移动

k

向上移动n行

nk

向下移动

j

向下移动n行

nj

向左移动

h

向左移动n列

nh

向右移动

l

向右移动n列

nl

光标右移一个字符

空格键

space

光标左移一个字符

删除键、退档键

backspace

光标下移一行

回车

enter

光标右移一个字至字首

w

W

光标左移一个字至字首

b

B

光标右移一个字至字尾

e

E

光标移至句尾

)

光标移至句首

(

光标移至段落开头

}

光标移至段落结尾

{

光标移至第n行尾

n$

光标移至屏幕顶行

H

光标移至屏幕中间行

M

光标移动到屏幕最后行

L

光标移动到当前行首

是数字零,不是字母0

0

移动光标到行首第一个非空字符上

^

光标移至当前行尾

$

光标移动到第一行行首

gg

移动光标到当前行后面的字符a上(向后移动到a)

fa

移动光标到当前行前面的字符a上(向前移动到a)

Fa

移动到与制匹配的括号上去(),{},[],<>等

%

移动到第n行上

nG

到最后一行

G

跳到光标上一个位置
ctrl键和字母o键同时按

ctrl + o

删除技巧

删除当前单词(inside word)

diw

删除DOS方式的回车^M

:%s/[Ctrl-v][Enter]//g

删除行尾空白

:%s= *$==

删除重复行

:%!sort -u

只是删除第一个pdf

:%s/^.{-}pdf/new.pdf/

删除多行注释

:%s///

删除所有空行

:g/^$/d

删除不含字符串'dd'的行

:g!/^dd/d

删除不含字符串'dd'的行

:v/^dd/d

删除所有第一个含str1到第一个含str2之间的行

:g/str1/,/str2/d

压缩空行

:v/./.,/./-1join

压缩空行

:g/^$/,/./-j

删除光标处开始及其后的 n-1 个字符

ndw

ndW

删至行首

d0

删除到某一行的第一个字符位置(不包括空格或TAB字符)

d^ 

删至行尾

d$

删除当前行及其后 n-1 行

ndd

删除一个字符

x

X 

删除输入方式下所输入的文本

ctrl + u

删除到行尾

D

删除与复制包含高亮区

x,y

删除当前字符(与x命令功能相同)

dl

删除到某一行的开始位置

d0

删除到某个单词的结尾位置
光标位于单词开头,用dw删除光标右边的一个单词

dw

删除到第三个单词的结尾位置

d3w

删除到某个单词的开始位置
光标位于单词结尾,用db删除光标左边的一个单词

db

删除到某个以空格作为分隔符的单词的结尾位置

dW 

dB 删除到某个以空格作为分隔符的单词的开始位置

删除 access_log /var/run/nginx/abc.com/access.log; 时,当光标处于 ; 时,按下dB

删除到前面7个以空格作为分隔符的单词的开始位置

d7B

删除到某个语句的结尾位置

d)

删除到第四个语句的结尾位置

d4)

删除到某个语句的开始位置

d(

删除到某个段落的结尾位置

d)

删除到某个段落的开始位置

d{

删除到当前段落起始位置之前的第7个段落位置

d7{

删除当前行

dd

删除从文本中出现“text”中所指定字样的位置,一直向前直到下一个该字样所出现的位置(但不包括该字样)之间的内容

d/text

删除从文本中出现字符“c”的位置,一直向前直到下一个该字符所出现的位置(包括该字符)之间的内容

dfc

删除当前行直到下一个字符“c”所出现位置之间的内容

dtc

删除到某一行的结尾

D

删除到某一行的结尾

d$

删除从当前行所开始的5行内容

5dd

删除直到屏幕上最后一行的内容

dL

删除直到屏幕上第一行的内容

dH

删除直到工作缓存区结尾的内容

dG

删除直到工作缓存区开始的内容

d1G

删除当前行到文件最顶行的内容

dgg

搜索后关闭高亮

:noh

set nohlsearch

set hlsearch!
nnoremap <F3> :set hlsearch!<CR>
格式化代码

正常模式下输入:

1GVG=
设置tab为4个空格

修改文件

vim /etc/vim/vimrc

vim ~/vimrc

添加内容

set ts=4
set expandtab
set autoindent

其中set autoindent是自动缩进格式,可按情况添加

设置文件编码为utf-8
set encoding=utf-8
set fileencoding=utf-8
设置搜索高亮颜色
:hi

选择相应的颜色后,复制颜色右边的值,如

:hi Search term=standout ctermfg=0 ctermbg=3
设置sql语法高亮格式
:se ft=sql

如果没有显示,试试:syntax on