之前写过vim的, 但是时间久了,发现了忘了不少。mmp再geigei。 顺便挣点微不足道的积分。
还有谁tm说vim超级好用的,我真想拍死他。
n 空格 | 光标会向后面移动n个字符 |
0 End | 其实这没啥说的 |
$ Home | 可是以后要换mac 不知道还有没有end和home |
H | 移动到屏幕的最上方的第一个字符 |
M | 屏幕中间的那一行的第一个字符 |
L | 屏幕最下方那一行的第一个字符 |
G | 移到文件最后一行 |
nG | 已达文件的第n行 |
gg | 移到文件的第一行 |
n 回车 | 光标线下移动n行 |
/word | 向下查找 |
?word | 向上查找 |
n N | 解释起来麻烦,自己意会吧 |
:n1,n2s/word1/word2/g | 替换n1到n2的word1为word2 |
:1,$s/word1/word2/gc | 替换第一行到最后一行的word1到word2, c是是否替换时询问。 |
x 和 X | x 相当于del X相当于 backspace |
dd | 删除光标所在的一行 |
ndd | 删除剪切下面的n行 |
d1G | 删除剪切光标到第一行所有的数据 |
dG | 删除剪切光标到最后一行的所有数据 |
d$ | 删除剪切光标到行首的所有数据 |
d0 | 到行尾的数据 |
yy | 复制当前的行 |
nyy | 向下复制n行 |
y1G | 复制光标到第一行的所有数据 |
yG, y0, y$ | 同理 |
p, P | 粘贴,p在下一行复制,P在上一行复制 |
J | 将光标 |
u | ctrl z |
ctrl r | ctrl shift x z |
i I | i和大I i为从光标处插入(实际是光标前面的那个位置) 大I所在行的第一个非空格处插入。 |
a与A | a为光标 所在下一个位置,其实a更好用,A所在行的最后一个字符。 |
o,O | o 所在行的下一行插入,O所在上一行插入 |
r,R | r替换一次,R替换多次,直到按下esc退出。 |
:w [filename] | 将编辑的文件保存为另一个文件 |
:r [filename] | 在编辑的数据中,读入另一个文件的数据 |
n1,n2 w[filename] | 将n1,n2的内容保存到filename这个文件 |
:! command | 暂时退出vi命令,可以看其他命令的执行结果 |
:set nu | 设置行号 |
:set nonu | 取消行号 |
vim的缓存,回复与打开时的警告信息
有时vim打开时会出现报错,不多解释,暂且认为自己理解那种情况。
造成有缓存的原因:
1 还有人在编辑同一个文件
2 之前vim操作,由于不知道什么原因中断
vim这时会有五种选项;
[o] pen Read-Only (E)dit amyway (R)ecover (D)elete it (Q)uit (Abort
①只读, 只是想查看文件,并不想编辑
②就是要编辑 , 正常编辑, 并不会加载缓存的内容,但是很容易出现两个用户互相改变对方的问题
③覆盖,就是加载缓存的内容,用来救回之前为保存的数据,但是当救回来并且保存退出时,还要手动删除那个缓存文件。
④删除,确定缓存是无用的,将会删除缓存文件
⑤quit和abort就是退出
可视区块:
v | 字符选择,会将光标经过的的地方反白选择 |
V | 行选择,会将光标经过的行反白选择 |
ctrl + v | 可视区块,可以用矩形的方式选择数据 |
y | 将反白的数据复制起来 |
d | 将反白的数据删除起来 |
p | 将刚刚复制的区块,在光标处粘贴 |
就这几个快捷方式,记住就好了。
多文件编辑:
:n | 编辑下一个文件 |
:N | 编辑上一个文件 |
:files | 列出目前这个vim开启的所有文件 |
就是vim时候,一次多来几个文件,vim test1.py test2.py 这个亚子
多窗口功能:
先vim 打开一个文件,然后输入,:sp [filename] ,打开另一个文件的窗口
先按住ctrl不放,再按下w, 放开所有的键,在按上箭头 | 移到上面的窗口 |
先按住ctrl不放,再按下w, 放开所有的键,在按下箭头 | 移到下面的窗口 |
ctrl + w + q | 退出窗口 |