第五章 文本编辑器Vim
第一节 Vim常用操作
Vim没有菜单,只有命令
Vim的工作模式有三种:
- 第一种:命令模式 vi/vim+文件名 进入命令模式 不可以输入文字,只能识别命令
插入命令:
a:在光标所在字符后插入
A:在光标所在行尾插入
i:在光标所在字符前插入
I:在光标所在行行首插入
o:在光标下插入新行
O:在光标上插入新行 - 第二种:插入模式 按i/a/o进入,可以继续输入文字,按Esc退出
- 第三种:编辑模式 在命令模式下按:,即可进入 编辑模式 可以输入编辑命令 比如:保存并退出,加行号
定位命令:- :set nu 设置行号
- :set nonu 取消行号
- gg 到第一行
- G 到最后一行
- nG 到第n行
- : n 到第n行 和上面一样的格式
- $ 移动到行尾
- 0 移动到行首
- 删除命令:
- x 删除光标所在处的字符
- nx 删除光标所在处后n个字符
- nd 删除光标所在行
- ndd 删除n行
- dG 删除光标所在行到文件末尾的内容
- D 删除光标所在处到行尾内容
- :n1,n2d 删除指定范围的行 n1-n2的行全部被删除
- 复制和剪切命令:
- yy 复制当前行
- nyy 复制当前行一下n行
- dd 剪切当前行
- ndd 剪切当前行以下n行
- p 粘贴在当前光标所在行下
- P 粘贴在当前光标所在行上
- 替换或取消命令:
- r 替换光标所在处字符
- R 从光标所在处开始替换字符,按Esc结束
- u 取消上一不操作
- 搜索和搜索替换命令:
- /string 搜索指定字符串string 与less命令操作类似
搜索时忽略大小写:set ic
搜索时不忽略大小写:set noic - n 搜索指定字符串的下一个出现位置
- :%s/要替换的字符串/替换的新的字符串/g 不询问
把/g换成/c 进行询问确认
全文替换指定字符串 - :n1,n2s/要替换的字符串/替换的新的字符串/g
在一定范围内替换指定字符串
- /string 搜索指定字符串string 与less命令操作类似
- 保存和退出命令:
:w 保存修改
:w new_filename 另存为指定文件
:wq 保存修改并退出
ZZ 快捷键,保存修改退出
:q! 不保存修改退出
:wq! 保存修改并退出(只有文件所有者以及root可以使用)适合保存root只有只读权限的文件
第二节 Vim使用技巧
在Vim中有许多黑科技小技巧便于我们操作,我总结了以下几天最为方便的操作,以供大家学习:
- :r !命令 当前的Vim文档导入命令执行结果
例子:
:r !date 直接把当前时间导入当前的Vim文档 - map [快捷键] [触发命令] 定义快捷键
其中快捷键需要按ctrl+v+需要设定的键位,设定好之后颜色会变,比如想设定ctrl p为快捷键那么就按ctrl+v+p 会出现^P ,不能按shift+6出现的^,这两个虽然看起来一样但是颜色不一样
触发命令按需要执行的命令的先后顺序来排列,比如给脚本加注释#键就可以把[触发命令]设为I#
例子:
map ^P I# 给脚本行首加#注释 - :n1,n2s/^/#/g 替换行首字符为#,连续行的注释,不过需先设置行号 :set nu
- :n1,n2s/^#/ /g 取消注释
- :n1,n2s/^/ \ / \ //g 给行首加// 需先设置行号 :set nu
因为系统无法识别太多的,所以需要在//每一条/前都加转义符\,\表达命令的正在含义,比如ls /etc 里面的文件会有颜色,但是\ls 就没有,他是表达执行ls真正含义不执行ls别名 - ab [a内容][b内容]
例子:
ab mymail 1771566679@qq.com
替换命令,当你在vim文档中输入mymail时按回车或者空格会自动变1771566679@qq.com
即:会自动把b内容替换成a
非常实用的小技巧
有些时候在重启服务器之后,定义的快捷键会消失,这时候我们需要在用户的家目录下写配置文件,保存快捷键
root用户在 /root/.vimrc
其他用户在 /home/username/.vimrc在里面进行编辑,永久生效