vim的使用
vim主要模式介绍, vim命令模式
查看vim, 在命令行输入 vim回车出现提示
查看命令位置及版本
[root@laser ~]# which vim
/usr/bin/vim
[root@laser ~]# rpm -qf /usr/bin/vim
vim-enhanced-7.4.629-6.el7.x86_64
也可使用
vim
[root@laser ~]# rpm -qf `which vim`
vim-enhanced-7.4.629-6.el7.x86_64
vi
[root@laser ~]# rpm -qf `which vi`
vim-minimal-7.4.629-6.el7.x86_64
vim是vi的加强版
问: vi和vim是同一个软件安装包吗?
不, vim是vi的增强版, 最明显的区别是vim可以语法加亮, 它完全兼容vi
例:
[root@laser ~]# vim /etc/passwd
vi编辑则没有颜色区别
vim编辑模式
首次进入文件 ---- 命令模式
出现 Insert
----- 编辑模式
输入 :
---- 命令行模式
注意: 不同模式之间需要按 esc
进入编辑模式:
a i o A I O
解释:
i : 当前字符之前插入(光标前)
I : 行首插入 (行首)
a : 当前字符之后插入(光标后)
A : 行尾插入(行尾)
o : 下一行插入 (另起一行)
O : 上一行插入 ( 上一行)
x : 向后删除一个字符 等同于delete
X : 向前删除一个字符
u : 撤销
r : 替换
在命令行下光标快速定位
光标定位
hjkl
左下上右 (老司机都这么用) 辨别新手和老司机最佳方式
0 和 home键表示切换到行首, $和end表示切换到行尾
gg 定位到文首, G定位到文末
/string(字符串) 找到或定位你要查找的单词或内容, 如果相符内容比较多 , 我们可以使用 n下一个查找 N表示向上查找, 查找到的内容会进行高亮显示
如:
取消高亮显示: :noh
如何对文本进行编辑
删除: dd 删除一行
删除N行: ndd 比如: ndd表示删除两行
复制: y复制(以字符为单位) 表示对单个字符进行复制, 如果要复制一整行, 用yy 复制
粘贴: p P
x: 删除光标所在位置的字符
D 从光标处形成到行末
Ctrl + r 还原撤销过的操作, 将做过的撤销操作再还原回去, 也就是撤销之前进行恢复
如何进入其他模式
: 进入命令行模式
v 进入可视模式 行为单位
Ctrl+ v进入可是块模式,
V 进入可视行模式 行为单位
进入模式后退出 `esc`
Ctrl + v 进入块模式如图,
批量注释方法
-
Ctrl + v 进入列表编辑模式
-
向上或向下移动光标
-
然后按大写 I
-
在光标位置输入
#
-
最后 按
esc
即可替换也一样
命令行模式
w 保存 save
w! 强制保存
q 退出
q! 强制不保存退出
wq 保存退出
wq! 强制保存退出
x 保存退出
重新打开后出现这种情况, 如何处理
先强制杀死进程, 在删除.passwd.swp文件, 对源文件不会影响
如果还想使用, 根据提示操作即可
查看进程
[root@laser ~]# ps aux|grep vim
root 2485 0.0 0.5 149748 5752 pts/1 S+ 20:58 0:00 vim /etc/passwd
杀
[root@laser ~]# kill -s 9 2485(进程号)
删除文件
[root@laser ~]# rm /etc/.passwd.swp
再进入就没有提示了
调用外部文件或命令
在打开编辑模式后, 执行 !命令
即可, enter回到编辑模式, 也可以读取文件
:!+命令
:r /etc/hosts
读取文件
文本替换
格式: 范围(其中%所有内容) s 分隔符 旧的内容 分隔符 新内容 (分隔符可以自定义)
默认是每一行的第一个符合要求的词 (全部替换 /g)
例: 替换第 1 到 3 行中出现的第一个 bin 替换为 chen
指定某一行替换 :2 s/bin/chen
:1,3 s/bin/chen
会把查找到的全部高亮显示, 全部替换最后加/g
:1,3 s/bin/chen/g
即可
% : 字符替换, 全文编辑, 后加 i 为不区分大小写
:% s/bin/chen/gi
注意: /
也可以用 @
代替
编辑环境
显示行号 :set nu
取消行号 :set nonu
取消高亮 :noh
拓展: 查看自己 使用vim 做了哪些操作
[root@laser ~]# vim .viminfo
永久设置行号, 需要到配置文件中配置
[root@laser ~]# vim .vimrc
输入内容 set nu
保存退出, 以后打开任何文件都会显示行号
vim同时打开多个文件
方式1
方法1 以上下形式打开两个文档
[root@laser ~]# vim -o /etc/passwd /etc/hosts
退出 :qa
方式2
左右形式打开两个文件, 退出qa
[root@laser ~]# vim -O /etc/passwd /etc/hosts
两个文件之间切换编辑方式
Ctrl+ww 两文件之间切换
注: 大写 O 左右分屏 小写o上下分屏
对比两文件, diff
和vimdiff
diff
[root@laser ~]# cp /etc/passwd a.txt
[root@laser ~]# echo aaa >> a.txt
[root@laser ~]# diff /etc/passwd a.txt
47a48
> aaa 输出差异字符
vimdiff
打开编辑模式显示差异
[root@laser ~]# vimdiff /etc/passwd a.txt
其他编辑器
nano 编辑器
emacs 编辑器
GEDIT 编辑器 图形化界面使用