vi是Linux/Unix底下最常用的文本编辑器。
假设有这样一个文本:
The gd software is a library for drafting programs
You are the best is mean you are the no. 1
The world <Happy> is the same with "glad"
I like dog
google is the best tools for search keyword
goooooogle yes
aaswswccsee
命令模式常用命令:
• 光标定位
– M 移动光标到页面中央 (注意要大写的)
– L移动光标到页面尾处
– H移动光标到页面开始处
– Ctrl+f向后翻页 也可以用pageup,和pagedown
– Ctrl+b向前翻页
– 0移动光标到行首 也可以用^
– $移动光标到行尾
• 复制 粘贴 删除
– nyy 复制光标所在的向下n行内容
假设当前光标在第一行,2yy,将复制
The gd software is a library for drafting programs
You are the best is mean you are the no. 1
– p在光标处粘贴复制的内容
将之前复杂的内容粘贴
– ndd删除光标所在向下n行的内容
– #x例如3x删除光标处向右的三个字符
– #yw例如:2yw就是复制两个单词
• 撤销和重复
– u复原前一个动作 (有撤销之意)
– . 重复前一个动作
–
输入模式常用命令:
• i和I键插入:在目前光标处输入文字,已存在的文字会向后
• A和a键:a为从目前光标所在的下个字符处开始插入,A为从光标所在行的最后一个字符开始插入
• O和o:在目前光标所在下一行处插入新的一行.O为在目前光标所在处的上一行插入新行
• R和r 取代:r会取代光标所在的那个字符:R会一直取代光标所在的文字,直到按下ESC为止
末尾模式常用命令:
• 退出命令
– :q 退出vi
– :q! 不保存退出
:wq! 保存退出
• 搜索字符串
– 输入/+要查找的字符串
如:/like 将在文中搜索有like的词
– 按n键重新查找下一个
• 复制
在末尾 :a,by将复制a到b行的数据
– 例如:3,5y复制第三行到第五行内容到缓存区
• shell切换
– :!+shell命令 如 !ls –l 在vi中使用ls命令
– :sp +filename 在同一个vi中编辑两个文件
• :set nu显示行号
• :set nonu取消行号
• 替换
• :s/old/new用new替换行中首次出现的old
• : s/old/new/g 用new替换行中所有出现的old
• :#,# s/old/new/g用new替换从第#行到第#行中出现的old
• :% s/old/new/g用new替换整篇中出现的old