推荐vim的插件
1. https://github.com/ma6174/vim
2. https://github.com/amix/vimrc
vi/vim的工作模式有三种: 普通模式、命令模式和编辑模式
模式切换:
- vi默认进入的模式时普通模式,在普通模式下输入 i(插入)、c(修改)、o(另起一行) 命令时进入编辑模式;
- 无论在何种模式下,按 esc 键都会退回到普通模式;
- 在普通模式下输入冒号(:)可以进入命令模式。输入完命令按回车,命令执行完后会自动退回普通模式。
删除
<dd> 删除一行<ndd> 删除n行<d>+down 删除光标当前行和下一行<d$> 删除光标至行尾的所有字符<D> 同<d$><x> 删除光标所在的字符
复制
<yy> 复制一行<nyy> 复制n行<yw> 将光标所在单词拷入剪贴板<y$> 将光标至行尾的字符拷入剪贴板<Y> 同<y$>
:12,24y 表示拷贝第12 行到第24 行之间的内容.:12,y 表示拷贝第12 行到光标所在行之间的内容.:,24y 表示拷贝光标所在行到第24 行之间的内容. 删除类似.
1. 在编辑模式下,按住CTRL+Y不放手可以快速复制上一行2. 快速补全已输入过的单词:(例):如果已经在文本中输入过hello, 再次输hello的时候,在输到he的时候按CTRL_P就可补全hello, CTRL_N为向后搜索。
粘贴
<p>: 粘贴
替换
:s/old/new/g=====>当前行的old被替换:50,100s/old/new/g====>50到100行的old被替换为new:1,$s/old/new/g=======>全部的old被替换:%s/old/new/g====>全部的old替换为new %s等同于1,$s表示全局的old都会被替换
:g/string/s//new/g 等价于 :%s/string/new/g
注意:在每一个g后面加上c,会出现是否替换的确认
1.应用删除^M^M在vim的输入方法是ctrl+V,会得到^,此时再按回车.会得到^M因此把全文件所有^M换成一个空格的语句是:%s/^M/ /g2.在shell脚本中加注释//在第5行到第10行的首字符加上#号注释:5,10s/^/#/g
其他
`. (就是反单引号+.)此命令相当强大, 它移动光标到上一次的修改点.'. (就是单引号+.)此命令相当强大, 它移动光标到上一次的修改行.ctrl+f (即ctrl 键与f 键一同按下) 本命令即page down.ctrl+b (即ctrl 键与b 键一同按下, 后同) 本命令即page up.<gg> 移动光标到文档首行.<G> 移动光标到文档尾行.