9. vim
打开文件
vim [opyions] files
+# 打开文件以后光标在#行
+/string 直接定位到第一个被匹配到的string的行的行首
-m 只读模式打开
-e 直接进入扩展命令行模式
-b 以二进制方式打开文件
模式:
-
命令模式:打开后默认
-
插入模式:编辑文件
-
扩展命令模式(末行模式):保存、退出等等
-
可视化模式
模式之间的切换
-
命令模式-->插入模式
-
i在当前光标所在的位置插入
-
I在当前行的行首位置开始插入
-
a光标的后面开始插入
-
A在当前行的行尾开始插入
-
o在当前光标所在行的下方打开一个新行
-
O在当前光标所在行的上方打开一个新行
-
-
插入模式-->命令模式
-
esc
-
-
命令模式--->扩展命令模式
-
:
-
-
扩展命令模式--->命令模式
-
esc enter
-
esc esc
关闭文件:
-
扩展命令行模式
-
:q 退出
-
:q! 不保存强制退出
-
:wq 保存退出
-
:wq!强制退出并保存
-
:x 保存退出
-
-
命令模式
-
ZZ 保存退出
-
ZQ不保存退出
-
9.1 扩展命令行模式
-
":"进图扩展命令行模式
-
命令
-
w 写入磁盘
-
wq退出保存
-
x 保存退出
-
q 退出
-
r filename 读入一个文件,在光标的下一行插入
-
w filename 将当前的文件另存为另一个文件
-
! command 执行命令,然后回车回到文件中
-
r!command 直接将命令的执行结果写入到文件中,光标所在行的下一行
-
地址界定:
:start,end
-
#具体多少行
-
m,n 从m开始到n结束
-
m,+n 从m开始到m+n结束
-
.代表当前行
-
$最后一行
-
¥-# 倒数#+1行
-
% 全部
-
#,/pat/,从第#开始,到第一次被pat匹配到的行
-
/pat1/,/pat2/从第一个被pat1匹配到的行到第一个被pat2匹配到的行
-
/pat/,# 从第一个被【pat匹配到的行,到#行
使用方法:
-
d 删除
-
y复制
-
w file:将范围内的文件另存为一个文件
-
r file 在指定的位置插入文件中的内容
9.2光标的移动:
-
字符间移动:
-
h 左移动
-
I 右移动
-
j 向下移动
-
k 向上移动
-
n command n个字符的跳转
-
-
单词间移动(除了下划线都认为是单词的分隔符)
-
w 下一个单词的词首
-
e 当前单词或者下一个单词的词尾
-
b 当前单词或者上一个单词的词首
-
n command n个单词之间进行跳转
-
-
当前页的跳转
-
H 当前页的第一行
-
L 当前页的最后一行
-
M当前页的最后一行
-
zt 将表表所在的行移动到屏幕的顶端
-
zb 将光标所在的行移动到屏幕的底部
-
zz 将贯标所在的行移动到屏幕的中间位置
-
-
行首行尾跳转
-
0(数字) 跳转到行首
-
$ 跳转到行尾
-
^ 跳转到行首的第一个非空白字符
-
-
行间跳转
-
gg 回到第一行
-
1G 回到第一行
-
G跳转到最后一行
-
扩展命令模式下: n 跳转到对应的n行
-
#G 跳转到指定的#行
-
-
段落间跳转
-
{ 上一段
-
}下一段
-
-
翻屏
-
ctrl+f 向下翻一屏
-
ctrl+b 向上翻一屏
-
ctrl+d 向下翻半屏
-
ctrl+u 向上翻半屏
-
9.3 命令行的操作
-
字符编辑
-
x 删除光标所在的位置
-
#x 删除#个字符
-
xp 交换位置
-
p 粘贴到光标所在的位置
-
~ 大小写转换
-
J 删除当前行后的换行符
-
-
替换
-
r 替换光标所在的位置
-
R切换到替换模式
-
-
删除
-
d 删除,需要结合光标跳转字符
-
d0 删除到行首
-
d$ 删除到行尾
-
d^ 删除到非空行首
-
dw 删除一个单词
-
de 删除当前单词到词尾的位置或者下一个单词、
-
db
-
dd 删除光标所在的行
-
#dd 删除#行
-
dG 产出到文件的行尾
-
dgg 删除到文件的行首
-
D 相当于d$
-
-
复制
-
y 复制,需要结合光标跳转字符
-
y$
-
y0
-
y^
-
yw
-
ye
-
yb
-
yG
-
ygg
-
yy 复制整行
-
#yy 复制#行
-
-
粘贴
-
p 如果是整行,则粘贴到当前行的下面,否则,则粘贴到光标所在的位置的后面
-
P 如果是整行,则粘贴到当前行的上面,否则,则粘贴到光标所在位置的前面
-
-
改变命令
-
c 修改之后切换到插入模式
-
c$
-
c0
-
c^
-
cb
-
ce
-
cw
-
#
-
cc 产出当前行并输入新内容
-
#cc 删除#行,并切换到插入模式
-
-
#[i|I|a|A|o|O]string esc 粘贴#次string
-
撤销
-
u撤销最近的更改
-
#u 撤销之前的#次操作
-
ctrl+r 重做最后的操作,撤销撤销
-
.重复前一个操作
-
#. 重复之前的动作#次
-
-
查找
-
/patterm 从当前光标位置向下查询
-
?pattern 从光标所在位置向上查找
-
n 同搜索命令
-
N 同搜索命令相反
-
9.4 查看替换
:地址定位符s/要查找的内容/要替换的内容/装饰器
-
要查找的内容:可以使用正则表达式
-
要替换的内容:不可以使用正则表达式,但是可以使用\1,\2等,也可以使用&来代替前面的内容
-
装饰器
-
i 忽略大小写
-
g 全部替换
-
gc 是替换之前要确认
-
y 确定
-
n 跳过
-
a 全部
-
-
/可以替换成别的符号
-
@
-
#
-
-
9.5 可视化模式
-
v 面向字符
-
V 面向行
-
ctrl+v 面向的是块
-
可以配合键盘移动键使用
-
突出显示的文件可以删除,复制,变更,过滤,替换等等
9.6 多文件操作
vim file1 file2 file3
-
:next 下一个
-
:prev 上一个
-
:first 第一个
-
:last 最后一个
-
:wqall
-
:wall
-
:qall
-
保存之后再切换
9.7 定制化vim
-
配置文件:
-
全局:/etc/vimrc
-
个人:~/.vimrc
-
-
扩展命令模式
-
添加行号 set nu 取消set nonu
-
搜索时忽略大小写 set ic 取消set noic
-
自动缩进(与上一行对齐) set ai 取消 set noai
-
搜索高亮 set hls 取消 set nohls
-
语法高亮syntax on 关闭 syntax off
-
设置光标所在的行的标识符 set cul 取消set nocul
-
获取帮助:set all
-
文件格式
-
转换成windows set fileformat=dos
-
转换成linux set fileformat=unix
-
-
-
:help
-
: help topic
-
vimtutor