vim(1)基础知识(最常见的知识点)

Vim工作模式

Vim的三种最基础工作模式:

命令模式:以快捷键在命令模式做操作。vim默认为命令模式。
插入模式:即可以使用键盘做操作。
编辑模式:以命令与回车进行操作。

注:进入编辑模式的标志是冒号

模式之间的切换
这里写图片描述

在编辑模式下,输入命令可以打开或关闭行号的显示。

set nu :显示行号。
set nonu :隐藏行号。

插入命令

如下按键,使vim从命令模式切换到插入模式。

a:在光标后附加文本
A:在本行行末附加文本。
i:在光标前插入文本
I:在本行开始前插入文本。
o:在光标所在行之后下插入新行。
O:在光标所在行之前插入新行。

光标(定位)命令

字符间跳转:

这里写图片描述

数字+光标移动键

例:数字+h: 向左侧跳指定个字符;一以此类推。

行内跳转:

^: 跳至行首的第一个非空白字符。
$: 跳至绝对行尾。
0: 跳至绝对行首。

单词间跳转:

w: 后一个单词的词首
e: 跳至当前或下一个单词启尾;
b: 跳至当前或前一个单词启首;

句子间跳转:

) : 下一句;
( : 前一句;

段落间跳转:
} : 下一段;
{ : 前一段;

屏幕中跳转:

H:移至屏幕上端。
M:移至屏幕中央。
L:移至屏幕下端。

光标跳转至指定行:

gg :到第一行。
G :到最后一行。
nG :到第n行。
:n :到第n行。
<b>行号命令</b>

删除命令

x:删除光标所在处字符。
nx:删除光标所在处后n个字符。
dd:删除光标所在行。
ndd:删除n行。
D:删除从光标所在处到行尾。
dG:删除光标所在行到文件末尾的内容。

在编辑模式下

:n1,n2d:n1,n2表示行号。删除指定范围的行。

复制和剪切命令

yy、Y:复制当前行。
nyy、nY:复制当前行以下n行。
dd:剪切当前行。
ndd:剪切当前行以下n行。
p、P:粘帖在当前光标所在行下或行上。

剪切粘贴:

 dd+p

复制粘贴:

 yy+p

替换命令

字符 使用方法 说明 例子
r 更改光标所在处的字符
R 从光标所在处开始替换字符,按下Esc结束
:%s/old/new/g 全文替换字符串。old表示原字符串,new表示新字符串
:n1,n2s/old/new/g n1、n2表示行号。old表示原字符串,new表示新字符串。 4,10s/superman/aoteman/g
:n1,n2s/old/new/g c 在命令后使用c,表示替换时,会提示。

技巧

连续行注释

:n1,n2s/^/#/g :为n1行到n2行的行首插入“#”。n1,n2为数字,表示行号;^是一个特殊符号,表示行首。
:n1,n2s/#//g :为n1行到n2行中的“#”去除。n1,n2为数字,表示行号。
:n1,n2s/^#//g :为n1行到n2行中行首的“#”去除。n1,n2为数字,表示行号。^是一个特殊符号,表示行首。
:n1,n2s/^/\/\//g :为n1行到n2行的行首插入“//”。n1,n2为数字,表示行号;^是一个特殊符号,表示行首。\是转义符。

输入替换
编辑模式下输入
:ab mymail [email protected]
回车后,在插入模式下每当输入了“mymail ”,vim将自动将其替换为“[email protected]
取消ab设置。
:unab mymail [email protected]

搜索命令

/string :命令模式下输入“/”再输入需要查找的字符串,回车。vi即会开始查找字符串。该搜索区分大小写。

n:定位到下一个匹配的字符串。
N:定位到上一个匹配的字符串。

编辑模式写,打开 忽略大小写功能

:set ic

关闭 忽略大小写功能

:set noic

撤销命令

u:取消上一步操作。保存后无法再进行撤销。

保存与退出

命令模式

保存 :w
另存为 :w /filepath/filename
保存退出 :wq、ZZ(shift+z+z)
强制保存退出 :wq!
强行退出 :q!
注:文件的所有者或者root用户,即便没有文件的写权限,也可以强行保存退出。 

vi中执行命令

编辑模式下,使用:!后跟Linux命令,这样就可以在vi中执行Linux命令了。

例:查看/root目录下的内容
:! ls /root

导入文件内容

:r /fileparh/filename
将指定文件的内容导入到当前正在编辑的文件中

导入执行结果

:r !linux

例:这是一个小技巧,在文件中导入时间。
:r !date

map定义快捷键

:map 快捷键  替代内容

使用map可以在vi中定义快捷键。使用unmap取消快捷键。

例:定义【Ctrl+E】在文档中快速插入自己的邮箱。
“:map ^E [email protected]”

例:定义【Ctrl+B】在光标所在行的第一个字母取出。该快捷键可用于shell脚本中删除第一个字母 # 。
“:map ^B 0x”

注:^打法:ctrl+v

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章