vim主要模式介绍
vim的三种主要的模式:命令模式、命令行模式、编辑模式。
vim命令模式
字符操作
i 当前插入
I 行首插入
a 当前字符之后插入
A 行尾插入
o 下一行插入
O 上一行插入
x 向后删除一个字符
X 向前删除一个字符
nx 如"3x"表示删除光标所在位置开始的3个字符。
r 替换光标所在位置的一个字符 (replace)
R 从光标所在位置开始替换,直到按下"Esc"
u 撤销一步
Ctrl+u 向上翻半页
Ctrl+d 向下翻页
Ctrl+g 显示光标所在位置的行号和文件的总行数
ESC退出当前模式
行操作
end键或者$ 光标移动到行尾
home键或者^ 光标移动到行首
dd 删除一行
Ndd 删除N行
yy 将光标所在位置的一行复制到缓冲区
nyy 将光标所在位置的n行复制到缓冲区
p 将缓冲区里的内容粘贴到光标所在位置
J 把当前行的下一行接到当前行的尾部
nG 光标跳到文件的第n行行首
G 光标跳到文件最后一行
0 光标跳到当前行的行首
$ 光标跳到当前行的行尾
词操作
dw 删除一个词,删除时要将光标移动到这个词的词首,另外,如果光标不再词首,则删除光标之后的字母(包括光标所在的字母)
yw 复制一个词
w 光标跳到下个单词的开头
b 光标跳到上个单词的开头
e 光标跳到本单词的尾部
dw 删除光标所在位置到本单词结尾的字符。
cw 从光标所在位置开始替换单词,直到按下"Esc"
块操作
D或d + $ 删至行尾
d + ^ 删至行首
y + $ 复制至尾
y + ^ 复制至首
v模式
进入v模式,移动光标所在的区域
编程时需要进行多行注释步骤
1.ctrl + v进入列编辑模式
2.向下或者向上移动光标
3.把需要注释的行的开头标记起来
4.然后按大写的I
5.再插入注释符,如“#”、“//”等
6.再按ESC,就会全部注释了
删除多行注释步骤
按ctrl + v进入列编辑模式了向下或者向上移动光标,选中注释部分,然后按d,就会删除注释符号。
其他操作
ZZ 保存
. 重复执行上一次执行的vi命令。
~ 对光标当前所在的位置的字符进行大小写转换。
Ctl+insert 复制鼠标选中的文本,相当于Ctl+c。
Shift+insert 输出鼠标选中的文本,相当于Ctl+v。
vim命令行模式
按:符号,就会进入命令行模式
:w 保存 save
:q 没有进行任何修改,退出(quit)
:q! 修改了,不保存,强制退出
:wq 保存并退出
: wq! 强制保存并退出
:x 保存并退出
: !bash 执行相关的bash,按回车再次回到vim中
替换
:%s/this/that # 将每一行的this替换为that
:%s/this/that/g # 将文本中所有的this替换为that
:g/this/s//that/g # 把文件中所有的this替换成that
:i, j s/this/that/g # 将第i行至第j行中的this替换成that
查找
:set nu # 显示行号和取消行号
:/target # 查找target,找到的结果会高亮显示
:noh 或者随便查找一组没有的字符 # 取消高亮显示
:!bash 调用系统命令
命令模式下
n 往下查找
N 往上查找
vim打开多个文件
$vim -O file1 file2
效果跟Windows10的分屏差不多
ctrl + ww 在两个文件间切换
设置vim开发环境
vim可以通过配置文件来进行默认设置。全局的配置文件位于“/etc/vim/vimre”。而个人用户也可以拥有自己独立的配置文件,配置文件位于“~/.vimrc”。如果没有该文件,则用以下命令来创建
$vim ~/.vimrc
以下是一个配置的文本文件
set nu # 显示行号
syntax on # 语法高亮(syn on 也可)
set ruler # 显示光标位置
set background=dark # 设置背景为黑色
set noerrorbells # 出错时不发出警告声
set smartindent # 智能缩进
set autoindet # 自动缩进
set tabstop=4 # tab宽度为4