1.命令模式常用命令
1.1.光标移动

0:光标移至行首
$:光标移至行尾
w:光标移至下一个word词首
b:若光标当前在一个word内则移至词首,否则移至上一个word词首
e:光标移至词尾,规则同上
1.2.文本修改
x:删除当前光标所在位置字符
dd:删除光标所在行
u:撤销修改
r:替换光标位置上的一个字符
.:重复上次修改
2x:删除2个字符
2dd:删除两行
dw:删除光标所在单词
dw:若当前光标处于一个单词词首则删除此单词
1.3.字符串搜索
/ 或 ?
/:方向从前向后
?:方向从后往前
n:下一个匹配
N:上一个匹配
2.进阶知识
vim -c command filename:直接打开文件并对文件执行命令
2.1.编辑多个文件
vim file1 file2 file3
(1):n 启动下一个文件
(2):n! 放弃修改启动下一个文件
(3):w :n
(4)q/q!:退出文件
(5):ar 查看同时编辑的文件名列表
(6):e filename 切换到新文件(:e!强制切换)
(7):r file2 将file2内容插入当前文件光标下一行
(8)a,b.. w 文件名 将当前文件的a,b..段放入新文件内
2.2.删除、复制、移动和修改命令键
(1)d 删除指定位置文本并保存到缓冲区
(2)y 复制指定文字文本到缓冲区
(3)P 将指定缓冲区内容放到当前光标位置之上
(4)p 将指定缓冲区内容放到当前光标位置之下
(5)c 删除文本并进入编辑模式
2.3.重排文本
(1)dd+p:删除当前行并将其放置于光标之下
(2)yy+p:复制当前行并将其放置于光标之下
2.4.域控制键
域:vi中文本的范围
(1)$ 光标位置开始到当前行尾
(2)0 光标位置到当前行首
(3)e或w 光标位置开始到当前字(词)尾
(4)b 光标位置前到当前字(词)头
2.5.操作符与域控制键的组合使用
(1)删除: d\$ d0 dw 2dw de db
(2)复制: y\$p y0P
(3)清除域: c+域
2.6.在vi中使用寄存器(缓冲区)

2.6.1.数字编号寄存器

粘贴数字寄存器内容: “np 或 “nP
2.6.2.字母编号寄存器

命令中使用寄存器: “+字母(a-z)+命令(y:复制,d:删除,p:粘贴)
例:”wdd 删除此行且将行放入w寄存器内
2.7.光标定位键
Ctrl d 向下翻半页
Ctrl u 向上翻半页
Ctrl f 向下翻一页
Ctrl b 向上翻一页
n+G 光标移动到第n行
G 光标移动到最后一行
:n 光标移动到第n行
gg 移动到首行
Ctrl g 获取当前行号
2.8.定制vi编辑器
(1)set命令
1.布尔选项
设定: set X 取消:set noX
2.数字式选项
赋值: set X=number
3.串选项
赋值: set X=string
(2) :set 显示修改后的选项
:set X? 显示选项X的值
(3)常用设置选项
选项名(缩写) | 类型 | 默认值 | 描述 |
autoindent(ai) | 布尔 | noai | 将新行与前一行的行首对齐 |
ignorecase(ic) | 布尔 | noic | 在搜索选项中忽略大小写 |
magic | 布尔 | magic | 在搜索选项中允许使用特殊字符 |
number | 布尔 | nonu | 显示行号 |
report | 数字 | 2 | 通知命令影响的行数 |
scroll | 数字 | 与终端类型相关 | 设定[Ctrl-d]翻动的行数 |
shiftwidth(sw) | 数字 | 8 | 按一次[Ctrl+d]缩进的空格数 |
showmode(smd) | 布尔 | showmode | 显示vi编辑器的模式 |
terse | 布尔 | noterse | 缩写错误信息 |
1.行长和行回绕
wrapmargin=n 输入字符列数>80-n列,vi开始新行,即自动插入换行符
wrapmargin(wm) 数字 0
2.缩写和宏
(1)设置缩写字符串
:ab 缩写字符串 被缩写字符串
(2)使用缩写字符串
缩写字符串+空格
(3)取消缩写
unab 缩写字符串
(4)设置宏
map 单个键 命令键序列
例:
:map q 5dd 将q键指定为删除5行的命令
:map V /unix 将V键指定为搜索unix的命令
(5)显示所有宏
:map
(6)高级应用

(7)取消宏
unmap 单个键
(8)在用户主目录下创建.vimrc配置文件,设置选项,则设置将永久化

2.9. 允许shell命令
(1)命令格式
:! command
示例:
: ! date
(2)将命令执行结果加入文本
:r ! command
示例:
: r ! date
2.10.其他指令
(1)连接行 J
(2)使用s命令替换单词
命令语法:
: [行范围(默认当前行)] s / 被替换单词 / 新单词 / [g(全行替换)]
示例:
: s/misspelled/spelled correctly/
: s/misspelled/spelled correctly/ g
: 2,8s/misspelled/spelled correctly/
: 1,$s/misspelled/spelled correctly/gc (c:确认后再替换)
(3)查看可空供恢复文件的swap文件
vi -r filea
(4)恢复文件
:recover
Comment