<返回更多

黑客御用编辑器Vim,丢掉鼠标,你根本学不会

2019-10-21    
加入收藏
黑客御用编辑器Vim,丢掉鼠标,你根本学不会

 

我这台系统是centos 7,预装的vim 7.4版本。

Vim编辑器有3种模式,分别是命令模式,输入模式,末行模式。

黑客御用编辑器Vim,丢掉鼠标,你根本学不会

 

命令模式:刚刚你打开文件进入时候就是命令模式,可以复制,删行等操作

输入模式:可以输入你想要的内容

末行模式:在最下边,除编辑模式,可以输入诸多管理员命令。

黑客御用编辑器Vim,丢掉鼠标,你根本学不会

 

启动vim

vim -c cmd file: 在打开文件前,先执行指定的命令;

vim -r file: 恢复上次异常退出的文件;

vim -R file: 以只读的方式打开文件,但可以强制保存;

vim -y num file: 将编辑窗口的大小设为num行;

vim + file: 从文件的末尾开始;

vim +num file: 从第num行开始;

vim +/string file: 打开file,并将光标停留在第一个找到的string上。

操作文档

:e file –关闭当前编辑的文件,并开启新的文件。 如果对当前文件的修改未保存,vi会警告。

:e! file –放弃对当前文件的修改,编辑新的文件。

:e file – 开始新的文件,并从文件尾开始编辑。

:e n file – 开始新的文件,并从第n行开始编辑。

:e – 重新加载当前文档。

:e! – 重新加载当前文档,并丢弃已做的改动。

:e#或ctrl+^ – 回到刚才编辑的文件,很实用。

:f或ctrl+g – 显示文档名,是否修改,和光标位置。

:f filename – 改变编辑的文件名,这时再保存相当于另存为。

gf – 打开以光标所在字符串为文件名的文件。

:w – 保存修改。

:n1,n2w filename – 选择性保存从某n1行到另n2行的内容。

:wq – 保存并退出。

ZZ – 保存并退出。

:x – 保存并退出。

:q ——退出当前窗口。

屏幕移动

ctrl+f: 下翻一屏。

ctrl+b: 上翻一屏。

ctrl+d: 下翻半屏。

ctrl+u: 上翻半屏。

n%: 到文件n%的位置。

zz: 将当前行移动到屏幕中央。

zt: 将当前行移动到屏幕顶端。

zb: 将当前行移动到屏幕底端。

光标移动

以下移动都是在normal模式下。

h或退格: 左移一个字符;

l或空格: 右移一个字符;

j: 下移一行;

k: 上移一行;

gj: 移动到一段内的下一行;

gk: 移动到一段内的上一行;

+或Enter: 把光标移至下一行第一个非空白字符。

-: 把光标移至上一行第一个非空白字符。

w: 前移一个单词,光标停在下一个单词开头;

W: 移动下一个单词开头,但忽略一些标点;

e: 前移一个单词,光标停在下一个单词末尾;

E: 移动到下一个单词末尾,如果词尾有标点,则移动到标点;

b: 后移一个单词,光标停在上一个单词开头;

B: 移动到上一个单词开头,忽略一些标点;

ge: 后移一个单词,光标停在上一个单词末尾;

gE: 同 ge ,不过‘单词’包含单词相邻的标点。

(: 前移1句。

): 后移1句。

{: 前移1段。

}: 后移1段。

fc: 把光标移到同一行的下一个c字符处

Fc: 把光标移到同一行的上一个c字符处

tc: 把光标移到同一行的下一个c字符前

Tc: 把光标移到同一行的上一个c字符后

;: 配合f & t使用,重复一次

,: 配合f & t使用,反向重复一次

插入文本

i: 在光标前插入;一个小技巧:按8,再按i,进入插入模式,输入=, 按esc进入命令模式,就会出现8个=。 这在插入分割线时非常有用,如30i+<esc>就插入了36个+组成的分割线。

I: 在当前行第一个非空字符前插入;

gI: 在当前行第一列插入;

a: 在光标后插入;

A: 在当前行最后插入;

o: 在下面新建一行插入;

O: 在上面新建一行插入;

:r filename在当前位置插入另一个文件的内容。

:[n]r filename在第n行插入另一个文件的内容。

:r !date 在光标处插入当前日期与时间。同理,:r !command可以将其它shell命令的输出插入当前文档。

标记

m{a-z}: 标记光标所在位置,局部标记,只用于当前文件。

m{A-Z}: 标记光标所在位置,全局标记。标记之后,退出Vim, 重新启动,标记仍然有效。

`{a-z}: 移动到标记位置。

‘{a-z}: 移动到标记行的行首。

`{0-9}:回到上[2-10]次关闭vim时最后离开的位置。

“: 移动到上次编辑的位置。”也可以,不过“精确到列,而”精确到行 。如果想跳转到更老的位置,可以按C-o,跳转到更新的位置用C-i。

`”: 移动到上次离开的地方。

`.: 移动到最后改动的地方。

:marks 显示所有标记。

:delmarks a b – 删除标记a和b。

:delmarks a-c – 删除标记a、b和c。

查找与替换

/something: 在后面的文本中查找something。

?something: 在前面的文本中查找something。

/pattern/+number: 将光标停在包含pattern的行后面第number行上。

/pattern/-number: 将光标停在包含pattern的行前面第number行上。

n: 向后查找下一个。

N: 向前查找下一个。

:s/old/new - 用new替换当前行第一个old。

:s/old/new/g - 用new替换当前行所有的old。

:n1,n2s/old/new/g - 用new替换文件n1行到n2行所有的old。

:%s/old/new/g - 用new替换文件中所有的old。

剪切复制和寄存器

y: 复制在可视模式下选中的文本。

yy or Y: 复制整行文本。

y[n]w: 复制一(n)个词。

y[n]l: 复制光标右边1(n)个字符。

y[n]h: 复制光标左边1(n)个字符。

yor D: 删除(剪切)当前位置到行尾的内容。

d[n]w: 删除(剪切)1(n)个单词

d[n]l: 删除(剪切)光标右边1(n)个字符。

d[n]h: 删除(剪切)光标左边1(n)个字符。

d0: 删除(剪切)当前位置到行首的内容

[n] dd: 删除(剪切)1(n)行。

p: 在光标之后粘贴。

P: 在光标之前粘贴。

黑客御用编辑器Vim,丢掉鼠标,你根本学不会
声明:本站部分内容来自互联网,如有版权侵犯或其他问题请与我们联系,我们将立即删除或处理。
▍相关推荐
更多资讯 >>>