vim命令手册
vim:文本编辑器
功能描述:
vim是从 vi 发展出来的一个文本编辑器。
vim 具有程序编辑的能力,可以主动的以字体颜色辨别语法的正确性,方便程序设计。
命令语法:
vim [选项] [文件]
参考实例:
实例1
编辑指定文件:
[root@cnLinuxer ~]# vim readme.txt
实例2
从第5行开始编辑指定文件:
[root@cnLinuxer ~]# vim +5 readme.txt
实例3
打开文件,并定位到最后一行:
[root@cnLinuxer ~]# vim + readme.txt
实例4
在上次正用vim编辑文件时发生系统崩溃,恢复filename
[root@cnLinuxer ~]# vim -r readme.txt
知识点梳理
vim三种模式
vi/vim的三种模式:命令模式、末行模式、编辑模式。
三种模式相互切换逻辑与命令图:
命令模式
命令模式是vim的默认模式(即打开一个文件时的初始模式)。
命令模式的基本操作有:光标的移动、删除、复制、粘贴、更改、翻屏、退出等。
1、光标的移动
(1)光标移到最后一行 [G] (大写G)
(2)光标移到第一行 [两个g] (小写g)
(3)光标移到指定行 [行数 + G] (大写G)
(4)光标上移或下移 [行数 + ↑ 或 行数 + ↓]
(5)光标移至当前行内容的首字符 [^]
(6)光标移至当前行尾 [$]
(7)光标移至当前行首 [0](数字0)
(8)光标左移一个字符 [h]
(9)光标右移一个字符 [l]
(10)光标上移一行 [k]
(11)光标下移一行 [j]
2、删除,复制,粘贴,撤销
(1)删除当前字符 [x](小写x)
(2)删除光标所在行 [dd]
(3)删除n行 [ndd]
(4) 复制当前行 [yy]
(5)粘贴至当前行之后 [p]
(6)删除当前行光标后的所有内容 [D]
(7)撤销上一步操作 [u]
3、翻屏
(1)向下翻屏 [Ctrl+f]
(2)向上翻屏 [Ctrl+b]
(3)向前翻半屏 [Ctrl+d]
(4)向后翻半屏 [Ctrl+u]
4、退出
(1) 不保存并退出 [:q!]
(2)保存并退出 [:wq!]
(3)另存为 a.txt [:w a.txt]
末行模式
在命令模式下按下 : 进入末行模式。
末行模式下基本的操作有:保存、另存、退出、搜索、替换。
1、保存
命令:[:w] (w即write)
作用:将已做的更改进行保存。
2、另存
命令:[:w + 文件路径]
作用: 另存和保存命令基本相似,区别在于另存需要指定文件的保存路径
3、退出
(1) 不保存并退出 [:q!]
(2)保存并退出 [:wq!]
(3)另存为 a.txt [:w a.txt]
4、搜索
命令: /或?加上需要查找的字符串 (/用于正向往下搜索,?用于反向往上搜索)
例如: /fail 进入搜索fail字符串的模式
作用:可使用n(查找下一个)、N(查找上一个),改变光标位置,查找的位置会高亮。
5、替换
指令 | 功能描述 |
---|---|
:s/man/woman | 将光标当前行中第一个出现的man替换为woman |
:s/man/woman/g | 将光标当前行所有的man替换成woman |
:2,5 s/man/woman/g | 将第二行至第五行中所有的man替换成woman |
:%s/man/woman/g | 将文本中所有的man替换成woman |
编辑模式
在命令模式下按下i就进入了编辑模式。
在编辑模式中,可以使用以下按键:
字符按键以及Shift组合,输入字符 ENTER,回车键,换行 BACK SPACE,退格键,删除光标前一个字符 DEL,删除键,删除光标后一个字符 方向键,在文本中移动光标 HOME/END,移动光标到行首/行尾 Page Up/Page Down,上/下翻页 Insert,切换光标为输入/替换模式,光标将变成竖线/下划线 ESC,退出输入模式,切换到命令模式
补充几个常用命令
(1) 显示行号
末行模式下输入 : set nu,可实现行号显示。
该方法临时生效,下次打开文本,行号自动消失。永久生效方法:在当前用户家目录下输入:echo :set nu > .vimrc,即可实现全局行号永久显示。
(2)重做/撤销
如果想要撤销操作,在末行模式下输入[:u]
取消撤销:ctrl + r
多步撤销: 数字 + u
(3)文本异常关闭处理
背景:在文件没有正常关闭的情况下,未保存直接通过远程窗口关闭。
解决办法:删除该文件的交换文件
rm -f .data.txt.swp
//备注:一般交换文件的通常格式为:.文件名.swp
(4)退出方式:wq与:x有何区别?
在实际开发中建议使用:x方式退出。两者区别在于:
(1):wq方式无论文件是否有修改都会对文件的最后修改时间进行重置。
(2):x只有在文件内容真正改变时才会重置文件最后修改时间。
有收获,点个在看