<
Vim 编辑器学习
>
上一篇

Python 练习题
下一篇

借助 jekyll 搭建静态博客

Vim 编辑器使用方法。

Vim 三种模式

命令模式、编辑模式(输入模式)、末行模式(尾行模式)

命令模式:在该模式下是不能对文件直接编辑,可以输入快捷键进行一些操作(删除行,复制行,移动光标,粘贴等等),打开文件之后默认进入的模式。
编辑模式:在该模式下可以对文件的内容进行编辑。
末行模式:可以在末行输入命令来对文件进行操作(搜索、替换、保存、退出、撤销、高亮等等)。

Vim的打开文件的方式

#vim <path> //打开指定的文件
#vim +number <path> //打开指定的文件,并将光标移动到指定行
#vim +/keyword <path> //打开指定的文件,并高亮显示关键词
#vim <path1> <path2> <path3> //同时打开多个文件

命令模式

光标移动

  1. 光标移动到行首
    按键:shift + 6 或 ^

  2. 光标移动到行尾
    按键:shift + 4 或 $

  3. 光标移动到首行
    按键:gg

  4. 光标移动到末行
    按键:G

  5. 翻屏
    向上翻屏:按键 ctrl + b(before)或 PgUp
    向下翻屏:按键 ctrl + f(after)或 PgDn

复制操作

  1. 复制光标所在行
    按键:yy
    粘贴:在想要粘贴的地方按下p键

  2. 以光标所在行为准(包含当前行),向下复制指定的行数
    按键:数字yy

  3. 可视化复制
    按键:ctrl + v(可视块)或 V(可视行)或 v(可视),然后按下 ↑↓←→ 方向键来选中需要复制的区块,按下 y 键进行复制,最后按下 p 键粘贴

剪切/删除

  1. 剪切/删除光标所在行
    按键:dd (删除之后下一行上移)
    注意:dd 严格意义上说是剪切命令,但是如果剪切了不粘贴就是删除的效果。

  2. 剪切/删除光标所在行为准(包含当前行),向下删除/剪切指定的行
    按键:数字dd(删除之后下一行上移)

  3. 剪切/删除光标所在的当前行之后的内容,但是删除之后下一行不上移
    按键:D(删除之后当前行会变成空白行)

  4. 可视化删除
    按键:ctrl + v(可视块)或 V(可视行)或 v(可视),上下左右移动,按下 D 表示删除选中行,d 表示删选中块

  5. 撤销/恢复
    撤销:输入:u(不属于命令模式)或者 u(undo)
    恢复:ctrl + r 恢复(取消)之前的撤销操作

光标的快速移动

  1. 快速将光标移动到指定的行
    按键:数字G

  2. 以当前光标为准向上/向下移动 n 行
    按键:数字↑,数字↓

  3. 以当前光标为准向左/向右移动 n 字符
    按键:数字←,数字→

  4. 末行模式下的快速移动方式:移动到指定的行
    按键:输入英文 “:”,其后输入行数数字,按下回车

末行模式

进入方式:由命令模式进入,按下 : 或者 /(表示查找) 即可进入
退出方式:
a. 按下esc
b. 连按2次esc键
c. 删除末行全部输入字符

保存操作(write)

:w //保存文件  
:w <path> //另存为

退出(quit)

:q //退出文件

保存并退出

:wq //保存并且退出

强制(!)

:q! //表示强制退出,刚才做的修改操作不做保存

调用外部命令(了解)

:! //外部命令

搜索/查找

/keyword
N/n //在搜索结果中切换上/下一个结果(next)  
:nohl //取消高亮(no highlight)  

替换

:s/keyword/newword //替换光标所在行的第一处符合条件的内容
:s/keyword/newword/g //替换光标所在行的全部符合条件的内容
:%s/keyword/newword //替换整个文档中每行第一个符合条件的内容
:%s/keyword/newword/g //替换整个文档的符合条件的内容
% //表示整个文件
g //表示全局(global)

显示行号(临时)

:set nu //number
:set nonu //取消显示

使用vim同时打开多个文件,在末行模式下进行切换文件

:files //查看当前已经打开的文件名称
%a:a=active //表示当前正在打开的文件
# //表示上一个打开的文件

切换文件的方式

a. 指定切换文件的名称

:open 已经打开的文件名

b. 通过其他命令来切换上一个文件/下一个文件

:bn //切换到下一个文件(back next)
:bp //切换到上一个文件(back prev)

编辑模式

退出方式:按下esc键

Top
Foot