vim的简单应用
之前我们学习过Linux的思想,其中有一条就是一切皆文本,所以在这里大部分配置文件都是文本模式存在的,那么使用简单的文字编辑器就可以修改配置了,之前我们学习过nano文本编辑器,但是Vim会比nano使用的更为方便,也更强大。
-
基本现在所有的Linux系统都会内置vim,但是其他的文本编辑器就不一定会有了。
-
vim具有程序编辑的能力,还可以使用字体颜色标明语法,方便程序设计。
-
程序简单,如果上手了之后会更加快速的编辑文本。
-
很多软件的编辑接口都会主动调用vim。
文本编辑器分为很多种类:
-
行编辑器:sed
-
全屏编辑器:nano , vi
-
gedit 图形编辑器
-
gvim vim的图形版本
vi的基本概念 基本上vim可以分为三种状态,分别是命令模式(command mode)、插入模式(Insert mode)和扩展模式(last line mode),各模式的功能区分如下:
-
命令模式:默认的模式,控制光标的移动、字符、字或行的删除/剪切/粘贴,或者进入插入模式和扩展模式,相当于一个中转站,你无论进入那个模式都需要在命令模式里切换。
-
插入或者编辑模式:在这个模式里可以进行编辑,修改文本,按ESC退出到命令模式,在命令模式按i进入到编辑模式(后面会讲很多方法进入插入模式)。
-
扩展命令模式:将文件保存或者退出,也可以设置编辑环境,比如输入命令寻找字符串,列出行号等。
模式转换
命令模式切换至编辑模式
-
i 进入编辑模式光标原地不动
-
a 进入编辑模式光标向后移动一位
-
o 进入编辑模式光标向下插入一行
-
I 进入编辑模式光标跳至行首
-
A 进入编辑模式光标跳至行尾
-
O 进入编辑模式光标向上插入一行
模式转换
-
编辑模式按(Esc)切换至命令模式
-
命令模式按(:)切换至扩展命令模式
-
扩展命令模式按(Esc,enter回车)切换至命令模式
-
锁定和解锁:Ctrl+s,ctrl+q
扩展模式如何退出:
-
:q 退出
-
:q! 强制退出,不保存退出。
-
wq 保存退出
-
x 保存退出
命令模式如何退出:
-
ZZ 保存退出
-
ZQ 不保存退出
扩展模式(Ex模式)
-
按(:)进入编辑模式
-
创建一个命令提示符(:)在屏幕底部显示
-
命令:
-
r+文件名 读文件内容到当前光标处
-
w+文件名 将当前文件内容写入到另一个文件(另存为)
-
!+命令 执行命令
-
r!+命令 将执行命令的输出读入进来
命令模式
- 字符间移动:
-
h 向左移动(87键盘) ← (全键盘)
-
l 向右移动(87键盘) → (全键盘)
-
j 向下移动(87键盘) ↓ (全键盘)
-
k 向上移动(87键盘) ↑ (全键盘)
-
w 下一个单词的词首
-
e 当前或下一个单词的词尾
-
b 当前或前一个单词的词首
-
H 页首
-
M 页中间行
-
L 页底
-
G 最后一行行首
-
^ 跳至行首的第一个非空白字符
-
0 跳至行首
-
$ 跳至行尾
-
gg 第一行行首
-
Ctrl+f 向文件尾部翻一屏
-
Ctrl+b 向文件首部翻一屏
-
Ctrl+d 向文件尾部翻半屏
-
Ctrl+u 向文件首部翻半屏
- 删除,替换:
-
x 删除光标处字符
-
3x 删除光标处起始3个字符(数字可以随意换)
-
xp 交换光标所在处前后的字符位置
-
~ 转换大小写
-
J 删除当前行后的换行符
-
r 替换光标所在处的字符
-
R 切换成REPLACE模式(替换模式)
- 删除,复制,粘贴:
-
d$ 删除到行尾
-
d^ 删除到非空白行
-
d0 删除到行首
-
dw 删除一个单词
-
dd 删除一行 (删除命令d可以结合其他命令一起使用,我就不全部写下去了)
-
D 从当前光标位置一直删除到行尾,留空行(d$一样)
-
y 复制 (跟d一样,可以结合其他命令一起使用,我就不全部写了)
-
yy 复制行
-
p 粘贴
- 撤销
-
u 撤销最近的更改
-
#u 撤销之前多次更改 (#次)
-
U 撤销光标在这此行前后所有操作(光标不可离开这行,离开则无效)
-
(.) 重复前一个动作
-
n(.) 重复前一次操作n次
(注意在vim里面一定要注意大小写,大小写一定要分清楚)
没事可以多看看图片,当然自己多敲敲最好:
扩展命令模式
-
按(:)进入扩展命令模式
-
位置定界
-
# 具体第#行,如果是3就是第3行。
-
#,# 从左侧#表示起始行,到右侧#表示结尾行
-
#,+# 从左侧#表示起始行,加上右侧#表示结尾行,如果2,+3就是2到5行
-
(.) 当前行
-
$ 最后一行
-
% 全文
-
/PATTERN 从当前光标所在处向文件尾部查找
(例如:/^a 搜索a开头)
- ?PATTERN 从当前光标所在处向文件首部查找
-
s 在扩展模式下完成查找替换的操作
-
:%s /文件1/文件2/修饰符/ 搜索文件1替换为文件2
-
修饰符
-
i 忽略大小写
-
g 全局替换;默认情况下,每一行只替换第一次出现的
-
gc 全局替换,替换时会询问
编辑二进制文件
-
以二进制方式打开文件:vim -b 文件
-
扩展命令模式下,利用xxd命令转换为易读的十六进制:%!xxd
-
编辑二进制文件
-
扩展命令模式下,利用xxd转换回二进制:%!xxd -r
-
保存退出
vim 可以同时打开多个文件,简称多文件模式
- vim 文件1 文件2 文件3
-
:next 下一个
-
:prev 前一个
-
:first 第一个
-
:last 最后一个
-
:wall 保存所有
-
:qall 退出所有
-
wqall 保存退出所有
vim 可以使用多个窗口
- 多文件分割
-
vim -o 水平分割
-
vim -O 垂直分割
-
在窗口里面切换:Ctrl+w,Arrow
- 单文件窗口分割
-
Ctrl+w,s:split 水平分割
-
Ctrl+w,v:vertical 垂直分割
-
Ctrl+w,q 取消相邻窗口
-
Ctrl+w,o 取消全部窗口
-
wqall 退出
寄存器
-
寄存器就是粘贴,复制的意思,在Linux里一共有26个寄存器和一个无名寄存器,意思就可以复制26个不同的内容,然后进行粘贴,相当方便。
-
从a-z,一共26个字符,就相当于26个寄存器,它的时候方法是:
-
复制粘贴的时候加上a,就是复制到a的寄存器中
-
“ayy” 复制 (a可以随时更改一共26个字符,可以存26个)
-
“ap” 粘贴 (a可以随时更改一共26个字符,可以存26个)
vim的功能相当强大,这些都只是其中的一部分,这么多功能还要你自己去熟练运用,当你熟悉之后,你可以查看帮助了解更多。
-
type vim 查看是内部或外部命令
-
help 查看内部命令帮助
-
man 查看外部命令帮助
原创文章,作者:Az2h1丶,如若转载,请注明出处:http://www.178linux.com/78154