Vim笔记

写在前面的话:

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]删除两行
[.]重复上个命令,删除两行

快捷键

索引


一图胜千言

vimshotcut

方向键


[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

打赏

博主开通了微信公众号,欢迎关注啦

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.