vi/vim 是linux中标准的文本编辑器,而vim相当于vi的友好版本。vi编辑器的功能十分全面,这里介绍一下其基本的使用命令技巧和模式介绍。
除了上下左右键进行光标移动外,小写英文字母「h」、「j」、「k」、「l」,分别控制光标左、下、上、右移一格。
vi文本编辑器有三种模式:命令模式;输入模式;末行模式;
命令模式 --》其他模式下按esc
输入模式 --》命令模式下输入a,i,o
按「i」切换进入插入模式,按"i"进入插入模式后是从光标当前位置开始输入文件;
按「a」进入插入模式后,是从目前光标所在位置的下一个位置开始输入文字;
按「o」进入插入模式后,是插入新的一行,从行首开始输入文字。
末行模式 --》命令模式下输入:
命令模式下的使用:
x或DEL | 删除光标处单个字符 |
dd | 删除光标所在行 |
#dd | 删除从光标所在行开始的#行字符 |
d^ | 删除当前光标之前到行首的所有字符 |
d$或D | 删除当前光标处到行尾的所有字符 |
*dd | 后的内容处于剪切板,可以被粘贴 |
#G或者#gg | 将光标移动到#行 |
h 向左移动光标 l 向右移动光标 | j向下移动光标 k向上移动光标 |
y#y | 复制从当前光标开始的#行 |
yy | 复制当前光标所在整行 |
#yy | 复制从光标所在行开始的#行内容 |
p | 将缓冲区中的内容粘贴到光标位置之后 |
P | 将缓冲区中的内容粘贴到光标位置之前 |
/word | 从上而下的查找字符串“word” |
?word | 从下而上的查找字符串“word” |
n | 定位下一个匹配的被查找字符串 |
N | 定位上一个匹配的被查找字符串 |
u | 撤销最近一次的操作(可重复操作) |
U | 用于取消对当前所在行的所有编辑 |
ZZ | 保存当前文件内容并退出vi |
shift+r 对光标所在单个字符进行替换操作
shift+R 替换光标所到之处的字符,直到按下「ESC」键为止。
shift+6 ^ 将光标移动到当前行的行首
shift+4 $ 将光标移动到当前行的行末
shift+9 ( 将光标移动到页面最末端 shift+g也可以
shift+0 ) 将光标移动到页面最首部 shift+h也可以
Ctrl+f 向前翻屏
Ctrl+b 向后翻屏
Ctrl+d 向前翻半屏
Ctrl+u 向后翻半屏
末行模式下的命令使用:
:s/old/new | 当前行中查找到的的第一个“old”替换为“new” |
:s/old /new/g | 当前行中查找到的所有“old”替换为“new” |
:#,# s/old/new/g | 在行号“#,#”范围内对“old”替换为“new“ |
:% s/old/nwe/g | 整个当前文件范围内对”old“替换为”new“ |
:s /old/new/c | 对每个替换动作提示用户进行确认 |
:1,2 m 3 | 第一二行的内容移动到第三行下 |
:1,2 co 3 | 第一到二行复制到第三行 |
:wq | 保存退出 |
:wq! | 强制保存退出 |
:q | 退出 |
在:w后加上文件名可以将文件以输入的文件名进行保存
:set nu 显示行号
!vi/vim 进入上一个编辑的文件