Vim
一、Vim学习套装
Vim本身只是一个提高效率的工具,切勿沉迷它本身。
Vim82安装包 提取码:1234,这是windows系统下的Vim最新版本(时间截至2022/1/26),
Vim advantures游戏 第三关之后需 付费
二、IDE中的Vim配置
1.JetBrain系列
如IDEA、PyCharm等)中添加Vim插件:
File —> Settings —> Plugins —> MarketPlace中搜索IdeaVim
2.VSCode
在extension中搜索Vim,安装第一个即可
三、快捷键表格
1.Command mode(命令模式)
命令 | 效果 |
---|---|
w(word,小写) | 向后跳过单词,不跳过标点 |
W | 向后跳过单词,跳过标点 |
b(backward) | 向前跳过单词,不跳过标点 |
B | 向前跳过单词,跳过标点 |
} | 向下跳段落,相当于page down |
{ | 向上跳段落,相当于page up |
G | 跳到文章最末尾 = ctrl+end |
gg | 跳到文章开端 = ctrl+home |
0 | 跳到行首 = home |
$ | 跳到行尾 = end |
h | ← |
j (gj) | ↓ (一行代码被编辑器压成两行或多行时,小范围向下) |
k (gk) | ↑ (一行代码被编辑器压成两行或多行时,小范围向上) |
l | → |
/x(x是输入的内容,下同) | 使用/之后再输入你要搜索的字符,不用输入引号 |
n(next) | 在搜索模式下,向下跳 |
N | 在搜索模式下,向上跳 |
* | 在全文中,搜索游标所在的单词 |
fx | f跟上要找的字,跳到光标之后的这个字,不用输入引号 |
Fx | f跟上要找的字,跳到光标之前的这个字,不用输入引号 |
zz | 将此行拉到画面中间 |
zt | 将此行拉到画面上面(top) |
zb | 将此行拉到画面底部(bottom) |
v | 进入视觉模式(visual),从而能够进行选取操作 |
V | 进入视觉模式(visual),选中一整行 |
y —— yank(猛拉) | 复制 |
p | 在光标之后的位置粘贴 |
yy | 复制整行 |
y$ | 从游标地方复制到行末 |
yG | 从游标地方复制到文章最底部 |
u | 回到上一步 = ctrl+z |
ctrl + r | 往前走一步 |
"ay | 将复制的内容存到a暂存区 |
"ap | 将a暂存区的内容粘贴出来 |
x | 右删除 = delete |
d | 一定要先选中删除选中内容 |
D | 删除光标之后的内容 |
dd | 删除光标所在行 |
c | 与d功能相同,但之后会直接进入insert模式 |
C | 与D功能相同,但之后会直接进入insert模式 |
r | 替换 |
= | vim对选中内容自动进行缩排 |
gt/gT | 向后/向前页签切换 |
ctrl+^ | 切换到上一个buffer |
V | 切换到Visual Line模式 |
ctrl+v | 切换到Visual Block模式 |
viw | 选择光标所在字符 |
vi" | 选择双引号里面括起来的字符 |
vit | 选择tag里面的东西 |
vat | 连同tag一起选择 |
v} | 向下选取一个段落 |
v{ | 向上选取一个段落 |
vaw | 选择光标附近的单词 |
diw | 删除光标所在的单词 |
ciw | 删除光标所在单词,并进入insert模式 |
c} | 删除下一个段落,进入insert模式 |
c{ | 删除上一个段落,进入insert模式 |
v3w | 选取3个word |
^ | 跳到行首,忽略空格 |
10G | 跳到代码的第10行 |
ctrl+f | 往下翻一页 |
ctrl+b | 往上翻一页 |
zf | 将代码段折叠(fold) |
zfip | 将光标所在段落折叠 |
. | 重复上一次的动作 |
J | 将下一行抬升到本行 |
2.Insert mode(输入模式)
命令 | 效果 |
---|---|
I(大写) | 跳到行首并进入insert模式 |
A | 跳到行末并进入insert模式 |
O | 在光标上方加一行并进入insert模式 |
ctrl+w | 删除光标当前所在word |
ctrl+u | 删除光标前至行首内容 |
3.Last line mode(底线命令模式)
命令 | 效果 |
---|---|
:q | 退出(quit) |
:wq | 保存并退出(write and quit) |
:set nohlsearch | 不高亮搜索 |
:set clipboard=unnamed | 将vim编辑器内外的复制内容相通 |
:set shiftwidth=2 | 以2个字符宽度缩排 |
:tabe | 新标签页 |
:new | 开一个水平视窗 |
:vnew | 开一个垂直视窗 |
:ls | 目前开的文件 |
:b3 | 切换到buffer 3,其它同理 |
:bn | 到下一个buffer |
:bp | 到上一个buffer |
:bl | 到最后一个buffer |
:bf | 到第一个buffer |
:bd | 关掉当前的buffer |
:b filename | 切换到名字为filename的buffer |
:tab ba | 将文件全部展开成tab形式 |
:set number | 显示代码行号 |
:set nonumber | 取消显示代码行号 |
:! 指令 | 在终端机中运行指令,然后返回当前文件 |
:r !指令 | 运行终端机中的指令,并且将运行结果的内容复制进文件光标所在地 |
四、Buffer、Window、Tab
A buffer is the in-memory text of a file
buffer = save of a file
window = show of a file
tab = typography
五、Vim Text Object(Vim文本对象)
词性 | 含义 |
---|---|
1.名词 | w = word s = sentence p = paragraph t = tag |
2.动词 | y = yank p = paste d = delete c = change |
3.范围 | i = inner a = a or around |
4.量词 | p = paragraph t = tag 搭配数字使用:1、2、3、4、5… 比如3p表示粘贴三次 |