vim学习
第一级 存活
Etc
在 Normal 和 insert 中切换i
→ Insert 模式,按 ESC 回到 Normal 模式x
→ 删当前光标所在的一个字符:wq
→ 存盘 + 退出 (:w
存盘,:q
退出)dd
→ 删除当前行,并把删除的行存到剪贴板里p
→ 粘贴剪贴板h
→ 光标向左移动j
→ 光标向下移动k
→ 光标向上移动l
→ 光标向右移动
在Vim的Normal模式下,所有的键都是功能键
第二级 感觉良好
a
→ 在光标后插入i
→ 在光标前插入o
→ 在当前行后插入新行O
→ 在当前行前插入新行cw
→ 替换从光标所在位置到后一个单词结尾的字符0
→ 将光标移动到行头$
→ 将光标移动到本行行尾^
→ 将光标移动到本行第一个不是空字符的位置g_
将光标移动到本行最后一个不是空字符的位置/pattern
→ 搜索pattern
的字符串p
→ 粘贴yy
→ 复制当前行u
→ 重复前一个动作:e
→ 打开一个文件:w
→ 存盘:saveas
→ 另存为:w
→ 存盘:q
→ 退出:wq
→ 保存并退出:q!
→ 退出不保存
第三级 更好, 更快, 更强
.
→ 可以重复上一次的命令N<command>
→ 重复某个命令N次- N
G
→ 跳到第 N 行 gg
→ 跳到第一行G
→ 跳到最后一行w
→ 到下一个单词的开头e
→ 到下一个单词的结尾%
匹配括号移动,包括(
,[
,{
*
和#
匹配光标当前所在的单词,移动光标到下一个(或上一个)匹配的单词(*是下一个,#是上一个)
为何要学vi?
很重要的一点是很多个别软件的编辑接口都会主动呼叫vi。
vi的使用
基本上vi一共分为三种模式:一般指令模式、编辑模式与指令列命令模式*。
-
一般指令模式
-
编辑模式
-
指令列命令模式
按键说明
- 第一部分:一般指令模式可用的按钮说明,光标的移动、复制粘贴、搜寻取代等
几个常用的指令:
- E移动光标的方法:
- ctrl + f:向下移动一页
- ctrl + b:向上移动一页
- e:移动到下一个字的结尾
- 0:移动到当前行的第一列
- $:移动到这一列的最后面的字符处
- G:移动到这个文件的最后一列
- gg:移动到这个文件的第一列
- n:将光标向下移动n列
- 搜寻与取代
- /word:向光标下寻找一个名称为word的字符串
- :n1, n2s/word1/word2/g:在n1和n2列之间寻找word1这个字符串,并且将word1这个字符串取代为word2
- :1, $s/word1/word2/g:在1和最后列之间寻找word1这个字符串,并且将word1这个字符串取代为word2
- 删除、复制与粘贴:
- x, X:在一列字当中,x为向后删除一个字符,X为向前删除一个字符
- dd:删除游标所在的那一整列
- ndd:删除光标所在向下n列
- yy:复制游标所在那一列
- nyy:复制光标所在向下n列
- p, P:p为将已复制的数据在光标下一列贴上,P则为贴在游标上一列。
- u:复原前一个动作
- ctrl + r:重复上一个动作
- .:重复前一个动作
- 一般指令模式切换到编辑模式可用的按钮说明:
- i,I:进入插入模式(Insert mode)。i 为从目前光标所在处插入,I 为在目前所在的列的第一个非空格处开始插入
- a,A:进入插入模式。a 为从目前所在的光标的下个字符处,A 为从光标所在的列的最后一个字符处开始插入
- o,O:进入插入模式。o 为在目前所在的光标的下一列处插入新的一列,O 为在目前所在的光标的下一列处插入新的一列
- r,R:进入取代模式。
- esc:退出编辑模式,进入一般指令模式
- 一般指令模式切换到指令列模式的可用按钮说明:
- :w:将编辑的数据写入硬盘文件当中
- :q:离开vi
- :wq:存储后离开