跟着笨鸟学Linux-vim使用技巧1
vim是linux最常用的文本编辑器,vim是vi的高级版,可能在有些linux发行版上只提供了vi命令,但是没关系,学会了vim,vi一样可以用
vim的模式与模式间的切换
vim的三种模式
编辑模式(vim打开后的默认模式)
输入模式
命令模式
模式转换
vi在打开时处在编辑模式
-
编辑模式—>输入模式
i:在光标所在处插入
a:在光标所所在处后方插入
o:在光标所在行下方打开一行插入
I:在光标所在行行首插入
A:在光标所在行行尾插入
O:在光标所在行上方打开一行插入 -
输入模式—>编辑模式
按ESC键
-
编辑模式—>末行模式
输入:
-
末行模式—>编辑模式
按ESC键
vim关闭保存文件
zz 保存并退出
:wq 保存并退出
:w 保存文件
:w /路径 保存在指定路径下(原文件还在)
:q 退出文件(仅适用于未对文件做任何修改)
:q! 强制退出(修改过文件也可以退出,修改内容不保存)
:x 保存并退出
vim中光标的跳转(编辑模式下)
字符间跳转
键盘上h、j、k、l键
k:上
h:左 l:右
j:下
//可以在该操作前添加数字代表跳转到指定的行,如10j表示向后跳转10行
单词间跳转
w:后一个单词的词首
b:当前或前一个单词的词首
e:当前单词或者后一个单词的词尾
//可以在该操作前添加数字代表跳转到指定的单词,如10w表示向后跳转10个单词
行首行尾跳转
^:跳转至行首的第一个非空字符
0:跳转至行首
$:跳转至行尾
行间跳转
G:跳转至最后一行
#G:(#代表任意数字)跳转至#行
1G:类比上面跳转至第一行,也就是跳转至首行
gg:等同于1G,跳转至首行
翻屏操作
enter:向下翻一行
ctrl+f:向尾部翻一屏
ctrl+b:向首部翻一屏
crtl+d:向尾部翻半屏
ctrl+u:向首部翻半屏
vim的编辑命令(编辑模式下)
删除命令
x(小写):删除光标所在处的字符(往后删,相当于Delete键)
X(大写):删除光标所在处前面的字符(往前删,相当于Backspace键)
#x:删除光标所在处开始的#(代表数字)个字符
d:删除命令,删除后放在缓冲区,可以结合光标跳转命令实现范围删除
例:
d$:删除光标至行尾
d^:删除光标至行首(非空字符)
d0:删除光标至行首
d10j:从光标行开始,再向下删10行(总共删了11行)
等等...........
替换命令
r:替换光标所在处单词,r后面要加需要替换的字符,如rt的意思就是将光标所在处的单词替换成t
复制命令
y:复制命令,复制后放在缓冲区中,使用方法可以参考d命令
例:
y$:复制光标至行尾
y^:复制光标至行首(非空字符)
y0:复制光标至行首
y10j:从光标行开始,再向复制10行(总共复制了11行)
等等...............
粘贴命令
p(小写):缓冲区中的内容如果为整行,则粘贴在当前光标所在行的下方;否则,则粘贴至当前光标所在处的后方;
P(大写):缓冲区中的内容如果为整行,则粘贴在当前光标所在行的上方;否则,则粘贴至当前光标所在处的前方;
撤销操作
u:撤销此前的操作,一直按一直爽,默认可以撤销50次
crtl+r:撤销此前的撤销操作
重复操作
. :重复此前的操作,比如你之前输入了一个d1j,此次再按 . 键就是重复d1j的操作
vim的末行模式
查找功能
:/字符串 从光标位置开始向尾部查找能够被匹配的字符串
:?字符串 从光标位置开始向首部查找能够被匹配的字符串
//注:要想查看下一个被匹配的字符串怎么翻页?
按n键:下一个,与查找方向相同
按N键:上一个,与查找方向相反
查找并替换
固定格式:
s/要查找的内容/要替换的内容/修饰符
- 要查找的内容:可以使用正则表达式
- 要替换的内容:不能使用正则表达式,但可以引用正则表达式结果
- 修饰符:
i:忽略大小写
g:全局替换,若一行中匹配到多次,则均替换(默认情况下若一行中匹配了多次,则只替换这行中的第一次) - 分割符:固定格式中写的是用“/”作为分隔符,但是假如遇到内容中也有这个字符则可以使用其他的分隔符,例如@、#、*等等。举例:s@a@b@g、s#a#b#g等
设定查找范围
%: 表示全文查找
#:(#表示数字)表示指定的行
#,#: 表示从#到#行
#,+#:表示从#开始,往下+#行
.:表示当前行
$:表示最后一行
.,$:表示从当前行到最后一行
vim的其他功能
vim打开多文件
vim file1 file2 file3
此时可以在末行模式下使用命令从三个文件内切换
:next 下一个
:prev 上一个
:first 第一个
:last 最后一个
退出文件可以使用以下命令
:wqall 保存所有文件并退出;
:wall 保存所有文件
:qall 退出所有文件
vim打开多窗口
vim [-o|-O] file1 file2 file3
-o:水平分割窗口
-O:垂直分割窗口
在窗口间切换:Ctrl+w, ARROW
注意:单个文件也可以分割为多个窗口进行查看:
Ctrl+w, s:水平分割窗口
Ctrl+w, v:垂直分割窗口
vim特性配置
注意:在末行模式下的设定,仅对当前vim进程有效;
永久有效:
全局:/etc/vimrc
用户个人:~/.vimrc
1、行号
显示:set number, 简写为set nu
取消显示:set nomber, set nonu
2、括号匹配高亮
匹配:set showmatch, set sm
取消:set nosm
3、自动缩进
启用:set ai
禁用:set noai
4、高亮搜索
启用:set hlsearch
禁用:set nohlsearch
5、语法高亮
启用:syntax on
禁用:syntax off
6、忽略字符大小写
启用:set ic
禁用:set noic