写在前面的话:
1. 快捷键有大小写区分,一般来说大写字母的作用与小写字母相反,比如[n]与[N](shift+n),[n]是向下查找结果,[N]是向上查找,,或类似,比如[a]是在光标后插入,[A](shift+a)是在行尾插入
2. 某些快捷键可以有数字^$组合模式,
[number][command],例如方向键 [2][j] 代表向下移动2行
[command][^$],例如删除命令 [d][^]从当前删除到行首,[d][$]从当前删除到行末3. 有些有数字,命令1,命令2组合方式,
[number][command1][command2],例如删除命令 [2][w][d] 代表删除两个词4. 某些快捷键可以和自身重复,
[command][command],例如删除 [d][d] 代表删除当前行 [c][c]代表修正当前行 [y][y]代表复制当前行5. 用[.]可以重复上个命令
[d2d]删除两行
[.]重复上个命令,删除两行
快捷键
索引
一图胜千言
方向键
[h] [j] [k] [l]
分别代表 左 下 上 右
可以用 [count][key]
移动[count]次,例如
[5][k]
光标向上移动5行
[g][g]
(按两下g)光标移动到文章顶部
)
向后跳一句
(
向前跳一句
}
向后跳一段
{
向前跳一段
ctrl+o
上次光标处
ctrl+i
下次光标处
可以用[lineNumber][g][g]
跳到[lineNumber]行,例如
[42][g][g]
跳到第42行
[G]
光标移动到文章底部
[w]
移动光标到后一个单词的词首(这里的单词包括中文,英文和标点,以空格为界,两个空格之间为一个词,标点算一个词)
可以用[count][w]
快速移动多个词,
例如[5][w]
光标向后移动5个单词。
[e]
移动光标到词尾,再按一次移动到下个单词的词尾
[b]
移动到光标词首,再按一次移动到上个单词的词首
替换命令
[r][被替换字符]
替换当前光标字符为[被替换字符]
[r][count][被替换字符]
替换当前字符及之后[count]个字符为[被替换字符]
例如
123123123213213
[r][2][c]
之后变成
cc3123123213213
[s]
全文替换
:[range]s/pattern/string/[c,e,g,i]
range 行数范围 1,7 指从第一行至第七行,1,$ 指从第一行至最后一行,也就是整篇文章,也可以 % 代表。% 是目前编辑的文章,# 是前一次编辑的文章。
pattern 就是要被替换的字串,可以用 正则表达式表示。
string 替换的字符串 pattern 由 string 所取代。
c confirm询问模式,替换每个匹配之前进行询问
e 不显示error
g 整行替换
i ignore不区分大小写
编辑命令
[J]
合并行(保留行前空格),比如
第一行
第二行
此时在光标在第一行时按[J]
,会变成如下结果
第一行 第二行
[x]
删除当前光标的字符
[d]
删除命令:
[d][d]
删除整行,并将删除内容移动到缓冲区
[d][count][d]
删除[count]行
[d][count][w]
删除[count]个词
排序
:1,3sort u 1到3行按升序排列
选择/粘贴
[v]命令进入可视选择模式然后可以通过上面的移动命令进行可视选择
选择全文,借助于[v]
命令实现
1 gg #跳到第一行 v # 进入v模式 G #跳到最后一行
[>]
增加缩进
[<]
减少缩进
[p]
粘贴命令
[y]
复制命令
vim支持多个剪贴板,可以通过
[number][y]或者[number][p]的形式粘贴或复制到[number]号剪切板里,例如
[2][y][w]复制当前词到2号剪切板 [2][p]从2号剪切板粘贴内容到当前位置
查看各剪切板内容:
:reg
复制所有行到系统剪切板
gg"+yG gg到第一行 "+y把到...的内容复制到+(即系统剪切版)里 G到最后一行
从系统剪切版粘贴
"+p
复制到系统剪贴板
"+y
窗口分割与文件切换
在文件之间跳转也是必不可少的,因此我们可以用下面的命令来打开新文件:
:Vex (从当前目录选择文件并垂直分割窗口) :Sex (从当前目录选择文件并水平分割窗口) ctrl+w+f (在新窗口打开光标下的文件) 类似于gotofile :vsplit new.txt 在新窗口打开一个new.txt的新文件
然后用以下快捷键或b
来切换文件
:bnext 切换到下个文件 ctrl+w+w 切换tab :b tab 自动补全文件名
移动分割窗口
ctrl+w+L移动到左边 ctrl+w+R移动到右边
设置分割窗口高度
:res 50 (设置为50行高) :res +5 (加5行高) :res -5 (减5行高) ctrl+w+= 等高 ctrl+w++/- 增加减少高度
设置分割窗口宽度
:vertical resize 80 :vspilt xx.xx 新建一个文件
快速保存退出当前文件
ZZ
折叠
按[v]
选中需要折叠的部分,然后输入:fold
进行折叠
[zc]关闭一个折叠 [zo]打开一个折叠 [za]切换折叠状态 [zC]关闭所有折叠 [zO]打开所有折叠 [zA]切换所有折叠
Vim Everywhere
这里是搜集一些其他工具的vim插件
vistual studio vim插件: vs vim
chrome插件: Vimium
参考链接
vim替换命令
vim粘贴模式快捷方式
Go to file
Folding