概述
vim编辑器
vi:visual interface:文本编辑器
文本:ACSII,Unicode
文本编辑器种类:
- 行编辑器:sed
- 全屏编辑器:nano,vi
VIM - Vi IMproved :vim是vi的加强版
使用:
vim:模式化的编辑器
基本模式:
- 编辑模式,命令模式(默认)
- 输入模式
- 末行模式:vim内置命令行接口
打开文件:
#vim [OPTION]... FILE...
选项:
1、+# :打开文件后,直接让光标处于第#行
2、+/PATTERN:打开文件后,直接让光标处于第一个被PATTERN匹配到的行的行首
模式转换
编辑模式——》输入模式
i:insert,在光标所在处前输入
a:append,追加,在光标所在处后面输入
o:在当前光标所在行下方,打开一个新行,并进入输入模式
O:在当前光标所在行上方,打开一个新行,并进入输入模式
I:光标所在行,行首输入
A:光标所在行,行尾输入
c
C
输入模式——》编辑模式
Esc
编辑模式——》末行模式
:
末行模式——》编辑模式
Esc
末行模式——》输入模式
关闭文件
1、:q 退出
2、:q! 强制退出,不保存修改
3、:wq 保存退出
4、:x 保存退出
5、:w /PATH/TO/SOMEWHERE 保存到指定路径文件
6、ZZ 命令模式下,也表示保存退出
在vim中快速实现光标跳转:
- 字符间跳转
h(左) , j(下) , k(上) , l(右)
*COMMAND,跳转*个字符,如:12h
2、单词间跳转
w 下一个单词词首
e 跳转至当前或下一个单词的词尾
b 当前或者前一个单词的词首
*COMMAND,跳转*个单词,如:12w
3、行首行尾跳转
^ 跳转至行首的第一个非空白字符
0 跳转至行首
$ 跳转至行尾
4、行间移动
*G 跳转到第*行
G 最后一行
gg或者1G 回到行首
5、句间移动
(
)
6、段落移动
{
}
编辑命令
- 字符命令
x:删除光标处的字符
*x:删除光标后的*个字符
xp:交换光标所在字符及其后一位字符的位置
- 删除命令
d:删除命令,可结合光标跳转字符实现范围删除
d$ , d^ , 3dw 等
dd或者D 整行删除
*dd 删除*行
粘贴命令(p,put,paste)
小写p:缓冲区中存储的如果为整行内容,则粘贴至当前光标所在行的下方。如果为非整行,则粘贴至当前光标所在处的后面。
大写P:缓冲区中存储的如果为整行内容,则粘贴至当前光标所在行的上方。如果为非整行,则粘贴至当前光标所在处的前面。
复制命令(y,yank)
y :复制,工作行为相似于d命令
y$ , y^ ,y0 yw yb,
yy复制整行
*yy 复制多行
改变命令(c ,change)
c:修改
编辑模式——》输入模式
c$ c^ c0 cb ce cw cc *cc
替换命令(r,replace)
r:替换光标所在处的字符
模式不变
例如:ra(光标所在处字符替换为a) 3rm 7rn
可视化模式
v:按字符选定
V:按行选定
note:经常结合编辑命令使用:d c y
撤销操作
u:undo,撤销此前的编辑
*u :撤销操作次数
Ctrl + r :撤销此前的撤销
. :重复前一个编辑操作
翻屏操作:
Ctrl + f :向文件尾部翻一屏
Ctrl + b :向文件首部翻一屏
Ctrl + d :向文件尾部翻半屏
Ctrl + u :向文件首部翻半屏
vim自带练习教程
vimtutor
vim模式中的末行模式
内建的命令行接口
- 支持地址定界,
:start,end
n:第n行
n,m:从第n行开始,到第m行结束
n,+m:从n行开始,到n+m行结束
.:当前行
$:最后一行
例如 .,$-1:当前行到倒数第二行
%:全文,等同于 1,$
/匹配条件1/,/匹配条件2/:从第一次被条件1匹配的行开始到第一次被条件2匹配的行结束
使用方式:定界之后直接跟编辑命令
d y
如::1,9w /路径/文件.txt 将当前vim文件中的1到9行另存到文件.txt中
:5r /路径/文件.txt 在当前vim文件第5行插入文件.txt的内容
- 查找
/匹配条件:从当前光标所在处向文件尾部查找
?匹配条件:从当前光标所在处向文件首部查找
n:与命令同方向
N:与命令反反向
- 查找并替换
s:在末行模式下完成查找替换操作
s/要查找的内容/要替换为的内容/修饰符
要查找的内容可使用:正则表达式模式
替换为的内容:不能使用模式,但是可以1,2等向后引用,还可以使用&,引用前面查找时查找到的整个内容
修饰符:i:忽略大小写
g:全局替换,否则默认情况下每一行只替换第一次出现
:1 引用(.)
:&引用D(.)V,在所有D(.)V后加er
:路径替换/符号转义。
查找替换中的分隔符/可以替换为其他字符
如,效果同上
练习:
- 删除文件所有行的行首空白字符
- 复制/etc/rc.d/init.d/functions文件至/tmp,用查找替换命令为/tmp/functions的每行开头为空白字符的行的行首添加一个#
替换空白为#
空白前加#
vim的多文件模式(单屏幕显示)
vim {第一个文件,第二个文件,第三个文件}
文件显示切换::next first last prev
:wall保存所有
:qall 退出所有
vim的窗口分割模式 (多文件同屏幕显示)
vim -o/-O {file1,file2}
-o :水平分割
-O:垂直分割
在窗口间切换 :Ctrl + w
单文件窗口切割
Ctrl + w,s :水平分割
Ctrl + w,v :垂直分割
定制vim的工作特性
配置文件:永久有效
- 全局:/etc/vimrc
- 个人:~/.vimrc (默认不存在,需要自己创建,只对当前root用户有效)
末行配置:当前vim进程有效
- 行号
显示:set number (简写为set un)
取消显示:set nonumber (简写为set noun)
- 括号匹配
匹配:set showmatch (简写为set sm)
取消匹配:set nosm
- 自动缩进
启用:set ai
禁用:set noai
- 高亮搜索结果
启用:set hlsearch
禁用:set nohlsearch
- 语法高亮
开启语法高亮:syntax on
关闭语法高亮:syntax off
- 忽略字符大小写
启用:set ic
不启用:set noic (默认不忽略)
最后
以上就是天真含羞草为你收集整理的vim简介 2020/1/2的全部内容,希望文章能够帮你解决vim简介 2020/1/2所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复