“上下左右”移动光标,删除字符,删除整行,复制粘贴
“i \ I \ o \ O \ a \ A \ r \ R”进入编辑模式,“ESC”退出编辑模式
“: 或 / 或 ?”可以将光标移动到最下面,可以搜索、读取、存盘、大量删除字符、离开vi 、显示行号等
移动光标:
h← j↓ k↑ l→ 移动n行(例如上移3行:3k 或 3↑)
Ctrl+f 向下移动一页
Ctrl+b 向上移动一页
Ctrl+d 向下半页
Ctrl+u 向上半页
n
0 移动到这一行最前面
$ 移动到这一行最后
G 移动到文件最后一行
nG 移动到第n行
gg 移动到文件第一行
n
搜索与替换:
/word 向下寻找word
?Word 向上寻找word
n 重复前一个搜索动作
N 反向进行前一个搜索动作(向上-》向下)
:n1,n2s/word1/word2/g n1与n2行之间寻找word1并替换为word2
:1,$s/word1/word2/g 第一行到最后一行之间寻找word1替换为word2
:1,$s/word1/word2/gc 替换时显示提示符给用户确认
删除、复制、粘贴:
X、x x向后删除一个字符,X向前删除一个字符
nx 向后删除连续n个字符
dd 删除一行
ndd 当前开始删除n行
yy 复制当前行
nyy 当前开始向下复制n行
P,p p粘贴到下一行,P粘贴到上一行
u 还原前一个操作
Ctrl+r 重做前一个操作
I、 i 从当前光标处插入,I当前行第一个非空格符处开始插入
a、A 从当前光标所在的下一字符开始插入,A当前行最后一个字符处开始插入
o、O 当前光标下一行插入新的一行,O当前光标上一行插入新的一行
r、R 替换光标所在那个字符,R一直替换光标所在的文字直到按下Esc
Esc 退出编辑模式
:w 将编辑的数据写入硬盘中
:q 离开vi
:wq
:e! 将文件还原到最初的状态。
ZZ 若文件没有更改则不储存离开,否则储存后再离开
:w [filename] 另存为。。。
:r [filename] 在编辑的数据中,将filenamez这个文件内容加到光标所在行后
:n1,n2 w[filename] 将n1到n2存储成filename文件
:set nu 显示行号
:set nonu 不显示行号
Vi具有“可恢复”功能,编辑时的修改都会暂存在 .filename.swp中(隐藏文件可以用ls -al查看)。死机后按R可恢复。
块选择:ctrl+v +方向。出现反白的区域为被选中区域
多文件编辑:
:n 编辑下一个文件
:N 编辑上一个文件
:files 列出当前vim打开的所有文件
多窗口功能:
:sp {filename} filename可有可无,如果要打开新文件就写文件名。
:ctrl+w +j 切到下一个窗口
Ctrl+w +k 切到上一个窗口
Ctrl+w +q 结束当前窗口
环境设置:
:set nu 设置行号,取消用nonu
:set hlsearch 设置是否将搜索的字符串反白,默认值时hlsearch,取消用nohlsearch
:set autoindent 设置自动缩排,不想自动缩排用no
:set backup 是否自动存储备份文件,一般用nobackup。(是否生成一个filename~文件)
:set ruler 是否显示右下角状态行说明
:set showmode 是否在左下角显示状态行 - -INSERT- -
:set backspace=(012) 某些版本,当backspace为2时,可以删除任意值,0或1时,仅可 以删除刚刚输入的字符,不可以删除原来已经存在的文字
:set all 显示当前所有环境参数设置值
:syntax (off|on) 根据程序相关语法显示不同的颜色。
Vim的默认文件设置,可以修改~/.vimrc(需要手动建立,默认不存在)。