Fork me on GitHub

vim使用技巧

以前整理的一套vim使用技巧,整理的用的txt,还是以markdown的形式写出来吧。

ps:javascript快整理完了,我会陆续发布到博客上面的(虽然我知道没啥人看)。

关于Vim

一款基与于linux经典的编辑器。它一共有五种模式。

命令模式

ls 可以看当前目录下有啥内容 。显示为黑色的都为 文本文件。
对于这些文本文件是可以采用vi或者vim将其打开的。
alias可以更换命令的名字。
例如 输入 alias vim=vi。可以将vim等效成vi(以后要打开vim输入vi即可)。
所有vi能实现的功能vim都能实现。
输入clear可以实现清除屏幕的效果。
cat install.log(文本文件名) 可以看文本文件是否是空的。
然后可以用vim install.log对其打开。
如果(ls)目录下没有文本文件,是可以利用vi +(文本文件名)对文本文件进行创造的。
进入该文本文件之后文本文件是个空的,我们可以在里面随意输入内容。
然后回车输入wq进行保存退出。
那么你的目录下就会有aa这个文本文件。
如果在命令下输入 vi 回车 会弹出关于vi的一些帮助信息。
输入help 可以查看vim的一些用法,用page up,page down 进行翻页。
命令w(保存的意思),wq(保存退出的内容)。 wq 后面接个自己取的名字可以进行退出。

光标的移动。(上下左右箭头)

移动光标:h(左) l(右) j(上) k(下)。
光标移到每一行的头部 0;
每一行的尾部 $(shift+4);
按page up 和 page down 键可以表示上下翻滚屏幕。
大写的H表示将光标移动到当前屏幕的顶部。(Head)
大写的M表示将光标移动到当前屏幕的中间。(Middle)。
大写的L表示将光标移动的当前屏幕的底部。(Low)。
w或W表示将光标移动到下一个单词。
大写的G命令能够将光标移动到整个屏幕的底部。
gg:将光标移动到文章的首行。

复制或者粘贴的命令:

yy或大写Y:复制光标所在的整行。
p小写:粘贴到光标的下面,如果复制的是整行,则粘贴到光标所在行的下一行。(粘贴到光标的后面,如果使用yw复制单词的话)。
P大写:粘贴到光标的上面,如果复制的是整行,则粘贴到光标所在行的上一行。(同小写的p)
2yy或者y2y:表示复制2行,6yy则是复制6行。
y^或者y0:复制当前字符(光标)所在的位置到达行首不含光标所在处的字符。
y$:复制从当前光标的位置当行尾的字符,但是它含当前光标所在的字符。
yw:复制一个word(单词),是从光标处开始复制一直到单词的结尾处。
y2w:复制2个单词。
yG:表示复制至文件的末尾。(整行复制)。
y1G:复制至文件的首部(也是整行复制)。

删除命令:

x(小写):删除一个字符。
nx:表示输入下面n个字符。(包括光标所在处的字符)。
X(大写):删除的是光标前面的字符。
dd(小写):删除当前行。
dG:删除至文件的尾部(整行删除,包括光标所在行)。
d1G:删除到文件的首部(整行删除,包括光标所在行)。
D或者是d$:删除当前行到尾部。
d0:删除至行首(不含光标所在处的字符)。
ndd:删除后面的n行。(从光标所在处的行开始计算)。
dw:删除至word尾。
ndw:删除后面的n个word。
nd$:删除后面的n行(从光标当前处开始算起)。

撤销操作的命令

u:可以撤销误操作的命令(很重要)。类似于ctrl+alt+z
U:取消一行内的所有的更动。

ps:打开vi刚进去的那个模式就是命令模式。

输入模式。

a: 表示当在命令底下输入a之后表示在光标之后插入内容。
A: 表示在光标当前行的末尾插入内容。
i: 表示在光标之前插入内容。
I: 表示在光标当前行的开始部分插入内容。
o: 表示在光标所在行的下面新增加一行。
O: 表示在光标所在行的上面新增加一行。

末行模式。

在冒号模式下输入上下左右键可以把以前输入过的命令调出来。
在命令模式底下输入一个:可以进入末行模式(敲的第一个字符)。
:w :在末行模式下可以输入该命令对文本文件进行保存。
:q :如果你改变文件没有进行保存就输入:q进行退出的话,会导致编辑器报错,强制退出用下面的命令。(结束vim程序)。
:q! :但如果你想强制退出的话,用该命令可以强制退出,但是文件不保存。
:wq或:x :保存退出的意思。如果一个文件保存退出报错为没有文件名的话,是可以用wq+文件名进行保存退出的。
:e 文件名 :表示将在原窗口重新打开一个新文件(进入新的文件时记得要对原文件进行保存否则会报错)。
:e! : 放弃所有的更改,重新编辑文档。
:r 文件名 : 表示在当前的光标下一行插入文件内容
:r! 命令 :在当前光标的下一行插入命令执行的结果。
:set nu或:set nonu :set nu可以将一个文档每一行的编号展示出来。set nonu不显示行号的。
:number(数字) :将光标定位到number行。
:[range]s///[g,c,i,e] :一个替换的功能。
range 表示的是范围 range300,350(从300到350行)。

range

%(表示全文替换)
100,300(从100行到300行)
1,$(表示从第一行到最后一行)

s:搜索
match:要被替换掉的字符串
string:替换match的内容。
c:每次替换前做一个确认。
e:不显示error。
g:表示做整行替换。
i:忽略大小写
%s/good/bye/c 表示就是将全文的good 替换成 bye(但每次替换之前要确认一次)。
后面加g就整行替换。
前面如果不加%也指的是全文替换。

可视化模式。

在命令模式下面输入一个v即可进入可视化模式。
可视化模式下面有几个可以使用的命令。
c: 剪切
y: 复制
p: 粘贴
在可视化模式下可以通过移动光标来选择需要操作的对象.

总结

emm 还行。

-------------本文结束感谢您的阅读-------------