vim的使用介绍
Vim是从vi发展出来的一个高级文本编辑器,在编写程序时非常有用,经常被认为“程序员的编辑器”,支持Linux、Mac OS、Windows系统,在终端中输入$vim [filename]命令即可进入Vim编辑器对该文件进行编辑,若文件不存在,则会在当前目录下以这个文件名新建一个文件。
Vim拥有如下三种模式:
插入模式:即 insert 模式,用来输入文本;
编辑模式:用以执行命令,也称为正常模式,也是进入Vim的缺省模式;
命令模式:用来执行冒号命令。
进入Vim后会直接进入编辑模式,接下来按下i进入插入模式,可以输入字符,按下键将从插入模式转换到编辑模式,该模式用于移动和操纵文本。在编辑模式下输入:即可进入命令模式,可以进行保存、查找、替换、配置Vim操作等。
vim的正确使用快捷键
1.移动光标的方法
h 左移一个字符 20h 左移20个字符
j下移一个字符 20j 下移20个字符
k上移一个字符 20k 上移20个字符
l右移一个字符 20l 右移20个字符
【Ctrl + f】 屏幕向下移动一页 相当于page down
【Ctrl + b】屏幕向上移动一页 相当于page up
【Ctrl + d】屏幕向下移动半页
【Ctrl + u】屏幕向上移动一页
+ 光标移动到非空格符的下一行
- 光标移动到非空格符的上一行n
n n表示数字 例如20 按下数字后按空格键,光标右移n个字符(会跨行移动)
0或者HOME键 移动到该行的最前面的字符处
$或者END 键 移动到该行的最后面的字符处
H 光标移动到这个屏幕的最上方那一行的第一个字符
M 光标移动到这个屏幕中央那一行的第一个字符
L光标移动到这个屏幕的最下方的那一行的第一个字符
G 光标移动到这个文件的最后一行
nG 移动到这个文件的第n行 例如58G
1G 或gg 移到该文件的第一行
N(ENTER) 光标下移N行
2.查找与替换
/word 向下寻找一个名称为word的字符串
?word 向上寻找
n 这个按键代表重复之前的查找,但是向上重复查找
N 这个代表向下重复查找
:n1,n2s/word1/word2/g 这个操作代表在n1与n2行之间查找word1并用word2来代替它
:1,$s/word1/word2/g 这个操作是从第一行到最后一行进行查找替换
:1,$s/word1/word2/gc 与👆一样只不过多了个确认confirm
3.删除复制与粘贴
x, X 在一行字当中,x 为向后删除一个字符 (相当于 [del] 按键), X 为向前删除一个字符(相当于 [backspace] 亦即是退格键) (常用)
nx n 为数字,连续向后删除 n 个字符。举例来说,我要连续删除光标后 10 个字符, 『10x』。
nX n 为数字,连续删除光标前面的 n 个字符。举例来说,我要连续删除光标前的 10 个字符, 『10X』.
dd 删除光标所在的那一整行(常用)
yy 复制光标所在的那一行(常用)
ndd n 为数字。删除光标所在行向下 n 行,例如 20dd 则是删除 20 行(常用)
nyy n 为数字。复制光标所在行向下 n 行,例如 20yy 则是复制 20 行(常用)
d1G 删除光标所在行到第一行的所有数据
y1G 复制光标所在行到第一行的所有数据
dG 删除光标所在行到最后一行的所有数据
yG 复制光标所在行到最后一行的所有数据
d$ 删除光标所在处,到该行的最后一个字符
y$ 复制光标所在的那个字符到该行行尾的所有数据
d0 那个是数字的 0 ,删除光标所在处,到该行的最前面一个字符
y0 复制光标所在的那个字符到该行行首的所有数据
p, P. p 将复制的数据,粘贴在光标的下一行,P将复制的数据,粘贴到光标的上一行
J 将光标所在行不下一行的数据结合成同一行
c 重复删除多个数据,可以通过上下键来决定删除光标上面的,还是下面的
u 撤销。(常用)
Ctrl + r 撤销的撤销。(常用)
4.一般模式切换到命令模式的按钮说明
i , I 进入插入模式(Insert mode): i 为『从目前光标所在处插入』, I 为『在目前所在行的第一个非空格符处开始插入』。 (常用)
a, A 进入插入模式(Insert mode): a 为『从目前光标所在的下一个字符处开始插入』, A 为『从光标所在行的最后一个字符处开始插入』。(常用)
o, O 进入插入模式(Insert mode): 这是英文字母 o 癿大小写。o 为『在目前光标所在的下一行处插入新的一行』; O 为在目前光标所在处的上一行插入新的一行!(常用)
r, R 进入替换模式(Replace mode): r 只会替换光标所在癿那一个字符一次;R会一直替换光标所在的文字,直到按下 ESC 为止;(常用)
5.一般模式切换到命令行模式的按钮说明
【:w】 保存编辑的内容
【:w!】强制写入该文件,但跟你对该文件的权限有关
【:q】 离开vi
【:q!】 不想保存修改强制离开
【:wq】 保存后离开
【:x】 保存后离开
【ZZ】 若文件没有更动,则不保存离开,若文件已经被更改过,则保存后离开
【:w filename】 将编辑的数据保存成另一个文件(类似另存)
【:r filename】 在编辑的数据中,读入另一个文件的数据。即将【filename】 这个文件的内容加到光标所在行后面。
【:n1,n2 w filename】 将n1到n2的内容保存成filename这个文件。
【:! command】暂时离开vi 到命令行模式下执行command的显示结果!例如 【:! ls /home】即可在 vi 当中察看/home底下以ls输出的文件信息!
【:set nu】 显示行号 【:set nonu】 与 set nu 相反,为取消行