vi编辑器共3中模式:一般模式、编辑模式、命令行模式
- 一般模式(默认的模式):一般模式中可进行删除、复制、粘贴等操作,可使用上下键移动光标
其中“test.txt”表示文件名,6L表示6行,105C表示有105个字符
- 编辑模式:一般模式下按下“i”,“o”,“a”等进入编辑模式,若要回到一般模式,须按下[ESC]即可退出编辑模式
- 命令行模式:一般模式下,输入“:”,“/”,“?”中任一个,可将光标移动到最下面一行。此模式中,可提供你查找数据的操作,而读取、保存、大量替换字符、离开vi、显示行号等操作在此模式中完成
常用按键:
移动光标:
- h或←:光标向左移动一个字符
- j或↓:光标向下移动一个字符
- k或↑:光标向上移动一个字符
- l或→:光标向右移动一个字符
- [Ctrl]+[f]:屏幕向下移动一页,相当于[Page Down]
- [Ctrl]+[b]:屏幕向下移动一页,相当于[Page Down]
- [Ctrl]+[d]:屏幕向下移动半页
- [Ctrl]+[u]:屏幕向下移动半页
- +:光标移动到非空格符的下一行
- -:光标移动到非空格符的上一行
- 0或[Home]:移动到这一行的最前面字符处
- $或[End]:移动到这一行的最后面字符处
- G:移动到此文件最后一行
- gg:移动到此文件第一行
- N[Enter]:n为数字,光标向下移动n行
- :n1,n2s/word1/word2/g:n1,n2为数字。在n1行与n2行间寻找word1字符串,并将该字符串替换为word2
- :1,$s/word1/word2/g:第一行到最后一行间寻找word1字符串,并将该字符串替换为word2
- :1,$s/word1/word2/g:第一行到最后一行间寻找word1字符串,并将该字符串替换为word2,替换前询问是否替换
- x,X:x相当于[Del],X相当于[Backspace](前面加数字表连续删除n个字符)
- dd:删除光标所在行(前面加数字表连续删除n行)
- yy:复制光标所在行(前面加数字表连续复制n行)
- p,P:p将已复制数据在光标下一行粘贴,P在光标上一行粘贴
- u:复原前一个操作
- [Ctrl]+r:重做上一个操作
- ”.“:小数点,重复前一个操作
- i,I:进入插入模式:i为从目前光标所在处插入,I为在目前所在行的第一个非空格符处开始插入
- a,A:进入插入模式:a为从目前光标所在的下一个字符处开始插入,A为从光标所在行的最后一个字符处开始插入
- o,O:进入插入模式:o为在目前光标所在下一行处插入新的一行,O为在目前光标所在处上一行插入新的一行
- r,R:进入替换模式:r只替换光标所g在的那一个字符一次,R会一直替换光标所在的文字,直至按下[Esc]
- :w:将编辑的数据写入硬盘文件中
- :w!:文件为“只读”时,强制写入,若无权限修改则失败
- :q:退出vi
- :q!:强制退出不保存
- :w[filename]:另存为[filename]
- :r[filename]:在编辑的数据中,读入另一个文件的数据,将[filename]文件内容加到光标所在行后
- :!command:暂离vi到命令行模式下执行command的显示结果
vim环境的更改:
- :set nu:显示行号
- :set nonu:取消行号