Vi是Linux/Unix上最常用的文本编辑器
操作方法
- 01
Vi是Linux/Unix上最常用的文本编辑器,它的作用是建立、编辑、显示文本文件。 Vi没有菜单,只有命令。 vi filename 进入命令模式,命令模式进入到插入模式,可使用i、a、o键 1、插入命令 a 在光标后附加文本 A 在本行行末附件文本 i 在光标前插入文本 I 在本行开始插入文本 o 在光标下插入文本 O 在光标上插入文本 2、定位命令 h或方向左键 左移一个字符 j或方向下键 下移一行 k或方向上键 上移一行 l或方向右键 右移一个字符 $ 移至行尾 0 移至行首 H 移至屏幕上端 M 移至屏幕中央 L 移至屏幕下端 :set nu 设置行号 :set nonu 取消行号 gg 到第一行 G 到最后一行 nG 到第n行 :n 到第n行 3、删除命令 x 删除光标所在的字符 nx 删除光标所在处后n个字符 dd 删除光标所在行 ndd 删除n行 dG 删除光标所在行导末尾的内容 D 删除从光标所在行到末尾的内容 :n1,n2d 删除指定范围的行 4、复制和剪切命令 yy或者Y 复制当前行 nyy或者nY 复制当前行一下n行 dd 剪切当前行 ndd 剪切当前行以下n行 p或者P 粘贴在当前光标所在行下或行上 5、替换和取消命令 r 取代光标所在处的字符 R 从光标所在处开始替换字符,按Esc键结束 u 取消上一步操作 6、搜索和替换命令 /string 向前搜索指定命令,搜索时忽略大小写:set ic ,如搜索ftp: /ftp n 搜索指定字符串的下一个出现位置 :%s/被替换的字符串/替换成的字符创/g 例如把全文的ftp替换成hello :%s/ftp/hello/g :n1,n2s/被替换的字符串/替换成的字符创/g 在一定的范围内替换字符串 7、保存退出命令 :wq 或者 ZZ 保存退出 :q! 不保存退出 :wq! 强行保存退出 (root或者文件的所有者) 8、应用实例 1)在vi中导入文件 : :r 文件 如:导入/test目录下的abc.txt文件 :r /test/abc.txt 2)在vi中执行命令: :!命令 如:在vi编辑器中查看 /test目录下的文件详细信息 :!ls -l /test 这样就不需要先退出vi再去执行命令 3)把命令执行的结果导入到vi中: 如:把date命令执行的结果导入到vi中 :r !date 4)定义快捷键 :map 快捷键 触发的命令 如: :map ^P I#<ESC> ^表示定义的快捷键, 注意,在vi中,^这个符号是使用ctrl+v组合输入的符号,^P 在vi中的输入是ctrl+v和ctrl+p,或者ctrl+v+p :map ^P I#<ESC> 表示光标无论在行的哪个位置,只要按下ctrl+p就可以在行首插入#号,然后回到命令模式。I表示在行首插入文本,<ESC>表示 回到命令模式。 :map ^E acodeartisan@gmail.com 定义了一个快捷键ctrl+e,只要按下ctrl+e就可以在光标位置输入我的邮箱acodeartisan@gmail.com,非常方便。 再比如我们要定义一个快捷键,无论光标在行的哪个位置,只要按下ctrl+b,就可以去掉行首的#注释(实际上就是把行首的第一个字符删掉) :map ^B 0x 定义了一个快捷键ctrl+b。0表示移到行首,x表示删除光标所在字符。 5)连续行注释 :n1,n2s/^/#/g 在n1行和n2行之间的行首加入#注释 :n1,n2s/^#//g 把n1行和n2行之间的行首的#注释去掉 6)替换 :ab myemail acodeartisan@gmail.com 只要输入myemail,然后按回车或者空格,myemail就会变成acodeartisan@gmail.com :unab 取消替换操作 以上一些快捷键、替换命令操作在退出vi后就失效了,是因为vi没有保存配置。要想配置可以保存,可以把那些命令写在vi的配置文件中 /root/.vimrc