vim学习笔记, 自从入了60%键盘, 就有了学习vi-mode的想法. 虽然大一上就学习了vim. 不过这么长时间来, 只会打开, insert, 保存, 退出. vscode装vim插件就行, 不想折腾neovim, spacesvim之类的.
第一讲
- 方向键:
h j k l - 退出:
:q!放弃所有更改. (quit):wq保存更改
- 正常模式下, 删除光标所在位置的字符:
x - 插入 添加
i在光标前插入文本 (insert)a在光标后添加文本 (add)
第二讲
删除类
dw删除当前单词并跳到下一个单词首位 (word)de删除当前单词并跳到单词末尾(即空格) (end)d$从当前光标删除到行末 (正则表达式中的末尾)
使用计数指定动作
2w使光标向前移动两个单词. (我们的行末就是”前方”)3e使光标向前移动到第三个单词的末尾- 输入数字
0, 移动光标的行首 d2w删除两个单词
操作整行
dd删除整行2dd删除两行
撤销类
u撤销最后执行的命令 (针对整个文本)U撤销对整行的修改 (针对整行)CTRL-R撤销掉”撤销命令”
另
w跳到下一个单词的首位e跳到当前单词的末尾 (即空格)
第三讲
p将已经删除的文本内容置入光标之后, 最后一次删除的是一整行, 那么该行将置于当前光标所在行的下一行.r替换光标所在位置的字符. (replace)cecw意义相同. 从当前光标到单词末尾都替换掉(即删除), 并进入插入模式. (change)c$, 从当前光标到行末都替换掉(即删除), 并进入插入模式
第四讲
定位及文件状态
CTRL-G页面底部出现状态信息行, 并显示当前行号G使得当前光标直接跳到文件最后一行gg使得当前光标直接跳到文件第一行4G跳到第四行
搜索类
/+字符串在文档中正向查找该字符串 (从文档开头开始搜索)?+字符串在文档中反向查找该字符串 (从文档末尾开始搜索)n出现多个匹配的查找字符串时, 选择下一个字符串 (next)N出现多个匹配的查找字符串时, 反向查找下一个字符串CTRL-O带您跳转回较旧的位置,CTRL-I则带您到较新的位置
配对括号的查找
%如果光标当前位置是()[]{}, 将光标移动到配对的括号上.
替换命令
:s/old/new在一行内替换头一个字符串 old 为新的字符串 new:s/old/new/g在一行内替换所有的字符串 old 为新的字符串 new:#,#s/old/new/g在两行内替换所有的字符串 old 为新的字符串 new:%s/old/new/g在文件内替换所有的字符串 old 为新的字符串 new:%s/old/new/gc进行全文替换时询问用户确认每个替换需添加 c 标志
第五讲
:!command用于执行一个外部命令 command。 (MS-DOS) (Unix):!dir:!ls- 用于显示当前目录的内容。:!del FILENAME:!rm FILENAME- 用于删除名为 FILENAME 的文件。:wFILENAME 可将当前 VIM 中正在编辑的文件保存到名为 FILENAME 的文 件中。v motion:w FILENAME可将当前编辑文件中可视模式0下选中的内容保存到文件 FILENAME 中。:r FILENAME可提取磁盘文件 FILENAME 并将其插入到当前文件的光标位置 后面。:r !dir可以读取 dir 命令的输出并将其放置到当前文件的光标位置后面。
第六讲
o在光标下方打开新的一行并进入插入模式O在光标上方打开新的一行a在光标所在位置之后插入文本A在光标所在行的行末之后插入文本e使光标移动到单词末尾v进入可视模式y复制文本yw可以用来复制一个单词p粘贴先前复制的文本R进入替换模式, 直至按ESC键回到正常模式:set xxx可以设置 xxx 选项。一些有用的选项如下:ic‘ignorecase’ 查找时忽略字母大小写is‘incsearch’ 查找短语时显示部分匹配hls‘hlsearch’ 高亮显示所有的匹配短语:set noic在选项前加上no可以关闭选项