保存, :w
推出, :q
退出不保存, :q!
在文件中导航(命令模式下):
h 和 l 分别表示向左和向右
k 向上移动光标
j 向下移动光标
移动到一行的开头,可以按 0
移动到一行的末尾,可以按 $
w 键将向前移动一个单词
b 键将向后移动一个单词
Ctrl-u 向上翻一页
Ctrl-d 向下翻一页
gg 可以将光标移动到文档中的第一行
G 可以将光标移动到文档中的最后一行
编辑:
i 可以在当前光标位置的前面进入到插入模式
a 键可以进入到插入模式,但它将在光标当前位置之后添加文本
A 键,那么您可以在该行的末尾输入文本,无论光标当前处于什么位置
I 键(大写字母),您可以在一行的开头进行输入,即使您的光标位于该行的末尾
在当前光标位置之前插入新的一行,可以按 O 键
在当前光标位置之后插入新的一行,可以按 o 键
替换文本:
r 键,它将删除光标位置的字符,并进入到插入模式以便输入单个替换的字符
按 c 键,然后按 w 键,change word, 这个命令删除当前的单词,并进入到插入模式
删除文本:
x 键,一次删除一个字符
dw 键,delete word,一次删除一个单词
要删除光标到一行末尾的文本,可以使用 d$
要删除整行文本,可以按 dd
J 键,将光标所在行的下面一行文本向上移动到光标所在行,而不会删除任何文本
剪切,复制,粘贴:
按两次 y 键,可以复制整行文本
按 y 键和 w 键,可以复制一个单词
按 y 键和 $ 键,可以从当前光标位置开始复制该行文本
小写的 p 键将数据粘贴到光标位置之后
大写的 P 键将数据粘贴到光标位置之前
要复制一行文本,可以使用 yy 命令,并使用 p 命令进行粘贴
要剪切并粘贴一行文本,可以使用 dd 命令和 p 命令
大小写转换:
gu 预转换为小写(还没有告诉vim要转换到什么地方为止)
gU 预转换为大写
guw 光标下的单词变为小写
gUw 光标下的单词变为大写
交换:
ddp 来交换两行
xp 来交换两个字符
在 vi 命令前面加上数字:
按 2键,按两次 d 键,然后按 p 键,一次剪切并粘贴两行文本
在 p 命令前面加上数字 10,可以粘贴多行文本
然后在 dd 前面加上数字 5,删除其中的几行文本
按 30 键,然后按 l 键,这样可以将光标向右移动 30 个字符
按 7 键,然后按 G 键,这样可以将光标移动到文件的第七行
按 5 键,然后按 w 键,这样可以将光标移动到第五个单词
重复执行:
. 键可以再次执行最后一条命令
搜索:
按 / 键(斜杠键),再加上希望搜索的字符串,然后按 Enter 键
? 键可以像 / 键那样进行搜索,但它将反向而不是正向搜索文档
* 键可以向后搜索光标所在位置的单词
# 键可以向前搜索光标所在位置的单词
第一次使用 * 或者 # 进行搜索之后,则可以使用 N 或 Shift-N 继续进行搜索
:set ic 搜索时不区分大小写
:set noic 搜索时区分大小写
:set hlsearch 高亮显示
:set nohlsearch 关闭高亮显示
在代码中跳转:
% 键可以查找匹配的括号
[{ 和 ]} 命令可以跳转到光标所在程序块的开头和结尾
gd 来跳转到该变量(局部变量)的定义处
gD 来跳转到该变量(全局变量)的定义处
Ctrl-O 执行后退
Ctrl-I 执行前进
查看变量:
[i 命令可以快速察看光标所在位置的变量的定义
[d 命令可以快速察看光标所在位置的宏的定义
ga 可以看到光标下的字符的ASCII值
自动补全:
Ctrl-N或者Ctrl+P键,vim会在当前文档中查找匹配的单词并自动将输入补齐
撤销,重做:
u 键以撤销上一个命令
Ctrl-r 以重新执行该命令
外观:
:set nu 显示行号 :set number
:set nonu 命令关闭行号 :set nonumber
:set ai 打开自动缩进 :set autoindent
:set noai 关闭自动缩进 :set noautoindent
:set tabstop=4 定义tab所等同的空格长度
:set shiftwidth=4 把每级缩进设置为四个空格
:set expandtab 把tabs转换成空格
:set tw=100 设置文本行宽度
:set fo+=mM 设置自动换行的条件
:set cindent 使用C语言的缩进方式
:set cinoptions cinoptions=>4,n-2,{2,^-2,:2,=2,g0,h2,p5,t0,+2,(0,u0,w1,m1 shiftwidth=2 tabstop=8 GNU编码风格
举例:
1、要组合使用您的 vi 技能,可以按 / 键,输入think,按 Enter,然后使用 cw 命令将这个单词更改为 know。 在完成操作之后,不要忘记按 Esc 键。如果您希望对第二行进行相同的操作,按 n 键以找到下一个 think,然后按 . 键将该单词更改为 know。
模式切换:
返回命令模式:ESC
显示打开的文件
:f
我的home目录下的.vimrc文件
syntax on
set tabstop=4
set softtabstop=4
set shiftwidth=4
set autoindent
set cindent
set cinoptions={0,1s,t0,n-2,p2s,(03s,=.5s,>1s,=1s,:1s
set nu