vi常用命令
插入:
i 从光标当前位置开始插入
a 从光标当前位置的下一个字符开始插入
o 在光标位置的下行插入一个空行,再进行插入
O 在光标位置的上一行插入一个空行,再进行插入
I 从光标所在行的开头开始插入正文
A 从光标所在行的末尾开始插入正文
esc = ctrl+[
文件保存与退出:
:w 保存文件 :q 退出文件 :wq 保存并退出文件 = :x :w <filename> 另存为 <filename> :w! 强制保存文件 :q! 强制退出文件
删除,撤消,反撤消:
[n]x 删除从光标开始的连续n个字符 dd 删除光标所在行 [n]dd 删除从光标开始的n行 u 撤消 U 撤消对一行的全部操作 ctrl+r 反撤消 . 重复上次操作
复制,粘贴:
yy 复制光标所在的行
[n]yy 复制从光标开始的n行
y$ 从光标位置复制在行尾
p 粘贴
gp 粘贴
选择:
v 按字符选择
V 按行选择
ctrl+v 按块选择
光标跳转:
h、j、k、l 左、下、上、右
H、M、L 屏幕最上边、屏幕中间位置、屏幕最下边
gg 跳到文件第一行
G 跳到文件最后一行
$ 跳到行末
0(数字0) 跳到行首
[n]gg(或[n]G) 跳到文件第n行
编辑模式下按v 进入可视状态进行内容选择:
[n]shift + > 所选内容向右移动一个tab
[n]shift + < 所选内容向左移动一个tab
查找替换:
/string 查找字符串 ,配合n(next)使用 * 向后搜索光标所在位置的一个word # 向前搜索光标所在位置的一个word /\<xxx 查找以xxx开头的字符串 /xxx\> 查找以xxx结尾的字符串 /\<xxx\> 完全匹配查找 d/int main 从光标所在位置开始删除,直到遇到int main :s/str1/str2 用str2替换行中首次出现的字符串str1 :s/str1/str2/g 用str2替换行中所有的字符串str1 :%s/str1/str2/g 用str2替换全文中所有的字符串str1,不询问,强制替换 :%s/str1/str2/gc 用str2替换全文中所有的字符串str1,询问
vim设置:
set number set nonumber set ignorecase #忽略大小写 (查找字符串时) set noignorecase set ruler #显示当前光标所在位置 set nuruler set hlsearch #高亮显示 (查找字符串是,找到后高亮显示) set nohlsearch set incsearch #在输入字符串时就开发查找 set noincsearch syn on #高亮显示 set backspace=2 #backspace可用