vim文档 agile Posted on Jun 20 2019 vim tools [Vim学习指南](https://www.linuxidc.com/Linux/2013-08/89096.htm) [Vim终极指南:所思即所得](https://blog.csdn.net/dc_726/article/details/78981756) [Python+Vim:天作之合](https://blog.csdn.net/dc_726/article/details/78927720) [Vim配置(python版)](https://www.cnblogs.com/cjy15639731813/p/5886158.html) [Mac 下配置 Vim vundle 代码补全 YouCompleteMe 等插件](https://www.jianshu.com/p/58e2d78744a2) [Mac 下升级 vim 并自己配置 vim 的过程](https://www.cnblogs.com/weixuqin/p/7260987.html) [SpaceVim - 让你的vim变得更加高效和强大](https://www.cnblogs.com/wsdjeg/p/spacevim.html) [安装使用配置 Neovim](https://www.jianshu.com/p/b566b4a5bf7b) [模糊搜索神器fzf](https://www.cnblogs.com/harriszh/p/7616966.html) [代码搜索的终极武器Ag](https://www.cnblogs.com/harriszh/p/7616970.html) [如何使用 toml 配置 SpaceVim](https://www.cnblogs.com/wsdjeg/p/config_spacevim_with_toml.html) [在Vim中使用fzf](https://www.jianshu.com/p/bb91582317ed) [Fuzzy finder(fzf+vim) 使用全指南](https://www.colabug.com/4062481.html) [fzf-example](https://github.com/junegunn/fzf/wiki/examples#opening-files) [fd](https://github.com/sharkdp/fd) [定制 vim 插件:ideavim](https://www.jianshu.com/p/ec6b4b4536aa) [超漂亮 vim 配置:space-vim](https://www.jianshu.com/p/6bf206d68163) [vscode与sublime 配置vim normal模式](https://blog.csdn.net/zhj082/article/details/80687038) --- #### [vi和vim上查找字符串](https://www.cnblogs.com/smstars/archive/2013/05/18/3085336.html): - `/`:要搜索的字符串或者字符 - `n`:查看下一个匹配,一直按n到最后,红色的字提示BOTTOM,说明匹配的字符串已经到此处是最后一个。再按n会回到TOP - `N`:跳转到上一个匹配 - `?`:从文件的结尾往开始处搜索 - `nohlsearch`(no highlight search)或者`set nohlsearch`或者`noh`或者`set noh` - 'ic':ignore up #### [设置行号](https://www.cnblogs.com/smstars/archive/2013/05/18/3085349.html) - `set number`:设置行号 - `set nonumber`:关闭行号 #### vim撤销回退操作 - `u`:撤销上一步的操作 - `Ctrl+r`:恢复上一步被撤销的操作 --- #vim实用技能 ## 编辑模式 1. `i`:光标前插入 2. `a`:光标后插入 3. `Shift + i(=I)`:行首前插入 4. `Shift + a(=A)`:行尾后插入 5. `o`:当前行后插入一行插入 6. `Shift + o(=O)`:当前行前插入一行插入 ## 移动光标 1. `h`:光标向左移动 2. `j`:光标向下移动 3. `k`:光标向上移动 4. `l`:光标向右移动 5. `w`:移到下个单词开头(空白,符号分割成单词……) 6. `b`:移动到上一单词的开头(空白,符号分割成单词……) 7. `e`:移动到光标所在单词的末尾(空白,符号分割成单词……) 8. `Shift + w(=W)`:移到下个单词开头(空白分割成单词……) 9. `Shift + b(=B)`:移动到上一单词的开头(空白,符号分割成单词……) 10. `Shift + e(=E)`:移动到光标所在单词的末尾(空白,符号分割成单词……) 11. `0`:光标移到当前行首 12. `$`:光标移到当前行尾 13. `{`:光标移动到当前段落的开头(用空行判断段落) 14. `}`:光标移动到当前段落的末尾(用空行判断段落) 15. `Shift + h(=H)`:移动到屏幕的第一行 16. `Shift + m(=M)`:移动到屏幕的中间一行 17. `Shift + l(=L)`:移动到屏幕的最后一行 18. `Shift + 5(=%)`:移动到对应的另一半括号 19. `Ctrl + f`:向下滚动一页 20. `Ctrl + b`:向上滚动一页 21. `Ctrl + u`:向上滚动半页 22. `Ctrl + d`:向下滚动半页 23. `Shift + g(=G)`:移动到文件末尾 24. `gg`:移动到文件开头 25. `:0`:移动到文件第一行 26. `:$`:移动到文件最后一行 27. `Ctrl+o`:跳转到前一个位置 28. `Ctrl+i`:跳转到原先位置 ##编辑命令 1. `x`:删除光标所在字符 2. `s`:删除光标所在字符并进入编辑模式 3. `r`:替换光标所在字符 4. `Shift + x(=X)`:删除光标所在前一个字符 5. `Shift + s(=S)`:删除光标所在行并进入编辑模式 6. `Shift + r(=R)`:进入替换模式,这会替换当前行光标所在字符和之后的字符 7. `cc`:删除光标所在行并进入编辑模式 8. `Shift + c(=C)`:删除光标到行尾字符并进入编辑模式 9. `cw`:删除当前单词从光标开始的部分并进入插入模式(空白,符号分割成单词……) 10. `cb`:删除当前单词从光标所在位置至单词开始的部分并进入插入模式(空白,符号分割成单词……) 11. `dw`:删除当前单词从光标开始的部分但不进入插入模式(空白,符号分割成单词……) 12. `db`:删除当前单词从光标所在位置至单词开始的部分但不进入插入模式(空白,符号分割成单词……) 13. `d e`: 13. `cW`:删除当前单词从光标开始的部分并进入插入模式(空白分割成单词……) 14. `cB`:删除当前单词从光标所在位置至单词开始的部分并进入插入模式(空白分割成单词……) 15. `dW`:删除当前单词从光标开始的部分但不进入插入模式(空白分割成单词……) 16. `dB`:删除当前单词从光标所在位置至单词开始的部分但不进入插入模式(空白分割成单词……) 17. `dd`:删除当前行 18. `Shift + d(=D)`:删除光标到行尾字符但不进入编辑模式 19. `dn[hjkl] `:向某个方向删除n个(行或者字符),如:d3j(向下删除3行,共删除≤4行),d3l(向右删除3个字符,共≤3个字符) 20. `d0`:删除从当前光标开始到行首的内容 21. `d¥`:删除从当前光标开始到行末的内容 22. `d G`:删除从当前光标开始到文末的内容 22. `d{`:删除当前段落从光标位置开始到段首的内容 23. `d}`:删除当前段落从光标位置开始到段末的内容 24. `u`:撤销 25. `Ctrl+r`:重做 26. `yw`:复制当前单词从光标开始的部分(空白,符号分割成单词……) 27. `yW`:复制当前单词从光标开始的部分(空白分割成单词……) 28. `yy(=Y)`:复制当前行 29. `p`:在后面粘贴 30. `Shift + p(=P)`:在前面粘贴 >> `c`、`d`、`y`命令差不多是通用的,可以方便记忆 #其他命令 1. `.`:重复上次修改 2. `shift+>`:会增加缩进 3. `shift+<`:会减少缩进 4. `shift+>+G`:行尾增加缩进 5. `#`:在当前文件搜索光标移动到的单词 6. `:%s/old/new/g`:全局替换 7. `:!<shell>`:执行shell命令 8. `v`:从光标当前位置开始,光标所经过的地方会被选中,再按一下`V`结束 9. `:w TEST`:保存当前文件到TEST 10. `:r TEST`:将TEST文件写到当前光标后面位置 11. `:r !ls`:将ls的返回值写到当前光标后面位置 12. `f{char}`:让Vim查找下一处行指定字符出现的位置 13. `%`:按%就可以跳回配对的第一个括号处 `dt.`:`.`表示要删除的符号。在当前位置删除后面内容直到某个符号 git命令01 docker相关命令01