保存退出类:
q: quit,退出,如果有未保存的修改则无法退出
q!: force quit,强制退出
w: write edits to disk (save file),保存文件
w!: force write,强制保存
ZZ: quit and save edits,保存文件并退出
编辑:
i: insert,进入插入模式,新字符插入在光标前
a: append,进入编辑模式,新字符插入在光标后
移动光标类:
h: left,向左移动光标
j: down,向下移动光标
k: up,向下移动光标
l: right,向由移动光标(另外方向键)
跳转和删除
3G: go to line 3,移动到文件第三行
1G: go to line 1,移动到文件首行
G 最后一行
dd: delete line,删除整行
3dd: delete 3 line,删除三行
yy: yank line,拷贝整行
p (put)粘贴
移动
Ctrl+F :forward:同PageDown键,向下移动整屏
Ctrl+B: backward:同PageUp键,向上移动整屏
Ctrl+B: backward:同PageUp键,向上移动整屏
H: home:使光标移动到当前屏幕的首行
M: middle:使光标移动到当前屏幕的中间行
L: last:使光标移动到当前屏幕的尾行
M: middle:使光标移动到当前屏幕的中间行
L: last:使光标移动到当前屏幕的尾行
( 移动到句首(根据?.!等标点符号)
) 移动到下一句
{ 移动到段首(根据空行)
} 移动到下一段
) 移动到下一句
{ 移动到段首(根据空行)
} 移动到下一段
/assignment[Enter]:在文中搜索assignment
n:vi将跳到下一个匹配的搜索的地方
N:vi将跳到上一个匹配的搜索的地方
/:从光标位置向后搜索
?:从光标位置向前搜索
N:vi将跳到上一个匹配的搜索的地方
/:从光标位置向后搜索
?:从光标位置向前搜索
多文件处理
vi file1 file2
:n:切换到下一个文件
:N:切换到上一个文件
:N:切换到上一个文件
比较两个文件
vim -d file1 file2
vimdiff file1 file2
横向打开多个文件(大写o)
$ vim -O filename1 filename2
CTRL + ww 连个屏切换
CTRL 和 - vim字体变小
CTRL和 SHIFT和 + 字体变大
Ctrl+w =:将当前窗口的大小设置为合适大小
Ctrl+w k:移动到上面的窗口,横向水平窗口有效
Ctrl+w j:移动到左边的窗口,纵向垂直窗口有效
文本替换
:s/old/new/g:将当前行所有的old替换成new,s是substitute,g是global
:1,10s/old/new/g:将第1到第10行所有的old替换成new
:%s/old/new/g:将当前文件所有行的old替换成new,%是第一行的意思
:%s/old/new/gc:同上,但是替换前需要确认,c是confirm
:g/pattern/s/old/new/g:将符合pattern的行内的所有old替换成new,第一个g是指匹配pattern的所有行,第二个g是指行内所有的匹配old的字符串
:1,10s/old/new/g:将第1到第10行所有的old替换成new
:%s/old/new/g:将当前文件所有行的old替换成new,%是第一行的意思
:%s/old/new/gc:同上,但是替换前需要确认,c是confirm
:g/pattern/s/old/new/g:将符合pattern的行内的所有old替换成new,第一个g是指匹配pattern的所有行,第二个g是指行内所有的匹配old的字符串
环境配置
vim配置文件 /etc/vim/vimrc
:set autoindent (自动缩进)
:set number (vim 显示行号)