拓展5 | 其他插件和技巧:吴咏炜的箱底私藏
该思维导图由 AI 生成,仅供参考
插件
Syntastic 和 ALE
- 深入了解
- 翻译
- 解释
- 总结
吴咏炜在文章《Vim 插件和技巧大放送:吴咏炜的箱底私藏》中分享了多年来积累的 Vim 插件和技巧。他介绍了一些代码检查插件,如 Syntastic 和 ALE,以及其他实用插件,如 Renamer、Undowarning、Rainbow 和 Auto-pairs,涵盖了代码检查、文件操作、编辑提醒和大文件处理等方面。此外,他还分享了一些有趣的插件,如 Markdown Preview、Calendar、Matrix 和 Killersheep。除了插件,他还分享了一些实用的 Vim 技巧,如行过滤、自动关闭最后一个 quickfix 窗口、Home 键的行为修改以及查看光标下字符的内码。总的来说,这些插件和技巧为 Vim 用户提供了丰富的工具和功能,不仅提高了编辑效率,还增加了一些有趣的功能和娱乐性。读者可以根据自己的需求选择安装和实验这些插件和技巧,为自己的编程工作带来更多便利和乐趣。
《Vim 实用技巧必知必会》,新⼈⾸单¥59
全部留言(9)
- 最新
- 精选
- 吴咏炜置顶再推荐一个今天发现的很酷的插件,对付 CSV 很棒: https://github.com/mechatroner/rainbow_csv 这个不仅提供了 CSV 文件的加亮,还能使用类 SQL 的 :Select 命令来进行选择和排序! 如果想把 CSV 文件对齐的话,可以考虑使用这个插件: https://github.com/godlygeek/tabular 最简单的对齐命令可以是“:Tabular /,”。如果你的 CSV 文件里有引号里的逗号的话,可能需要一个更复杂的正则表达式来对齐,如: Tabularize /\%("\%([^"]\|""\)*"\|[^,"]*\),/l02020-09-2522
- 我来也老师连压箱底的东西都拿出来了,我们赚到了哈。 # Syntastic 和 ALE 前面这个插件已经被我屏蔽了,后面这个还保留着在。 当时是安装了coc.nvim后,觉得功能有些重复了。 # Renamer 看上去还不错,抽空了试试。 # Undowarning 这个功能是我想过,但是没花精力折腾过的。 我一般会用`:e`来重新载入文件内容,但是无法处理打开了文档,中途又存过档的问题。 不支持包管理就Fork一下,自己折腾一下吧。 毕竟现在还要手动下载安装有点麻烦。 # Rainbow 这个插件很早就装了,配置中有一段参考了这个: https://github.com/luochen1990/rainbow/blob/master/README_zh.md 具体为啥已经忘记了。 虽然安装的早,但是真正发挥这个插件的价值,正是从老师这学会开启了`termguicolors`配置后。 之前的可选颜色很少,效果并不明显。现在每一层级的括号都是鲜明的颜色,简直不能再好了。 # Auto-pairs 我对这个插件真是又爱又恨。 默认的配置中,我只添加了一项: `let g:AutoPairsMapCh = 0 " 不需要修复<C-h>删除前面的字符` 因为这个按键已经被我映射为了在插入模式中移动光标,而不是删除字符了。 对它爱的地方是真的方便。 对它恨的地方是有个场景下的行为不是我想要的。 例如: ``` let g:AutoPairsMapCh = 0 " 不需要修复<C-h>删除前面的字符 "<光标在这里> " jedi-vim插件映射了`<leader>n` 这里用不上 就禁用掉 ``` 如果我在光标的地方删除前面那个`"`,这个插件会人性化的把空行和后面的`"`也删除掉。 以至于我都养成了习惯,删除这个位置的"`"用`x`而不是`<Delete>` 今天学了专栏,知道还可以通过快捷键来切换插件的启用状态。 # Largefile 想不到还有插件搞这个事情,我得好好看看。 之前是参考的这里: https://vim.fandom.com/wiki/Faster_loading_of_large_files 大约十几行代码可以满足我的需求。 我之前用vim主要是看日志,动辄几百兆。用了它,打开大文件时终于不用去喝水了。 # Markdown Preview 除了`iamcco/markdown-preview.nvim`,我还安装了`plasticboy/vim-markdown`。 我也忘记为啥要安装两个了。 有了它后,在vim中写markdown文件,还可以在浏览器中实时的预览,是真的方便。 # Calendar 我安装的是`itchyny/calendar.vim` 但是说实话,我用的并不多,哈哈。 # Matrix 学习了 # Killersheep 升级vim到8.2时安装过。 # 行过滤 学习了。 之前好像是`grep -v`来实现相同的效果。 # 自动关闭最后一个 quickfix 窗口 这也是一个我一直想要的功能,哈哈。 有了它,再也不用多按一次`ZQ`了! # Home 键的行为 我好像在vim中没有使用过该键。 很多地方的Home键功能都被我用`<C-a>`来替代了。 我的配置中有这个配置: ``` " remap vim 0 nnoremap 0 ^ nnoremap ^ 0 ``` 交换了这两个键的行为。 相比之下还是0按的方便。 # 查看光标下字符的内码 学习了。
作者回复: 最不可或缺的插件,你都会了,所以就得翻翻箱底啦。 Auto-pairs 我碰到的问题和你一样。也是 Vim 挑注释符号实在有点诡异啊。除了 Vim 脚本,基本上没遇到过奇怪问题。
2020-09-073 - helloworld受本文启发, 我把0改成了第一次按将光标跳转到行首第一个非空字符, 再按一次才到行首, 因为0比^好敲一点, 而我们大多数的需求都是将光标跳转到行首第一个非空字符. 这样一改方便多了.
作者回复: 我还是不喜欢改原生键的行为。Home 键的这个行为则是各种编辑器的惯例了……
2021-07-092 - helloworldvim-scripts/LargeFile,这个插件试了下,文件打开速度提升不明显:283m的文本文件,不启用此插件vs启用此插件的打开时间对比,vim:15.04s,14.96秒,neovim:6.41s,5.87s,可见此插件用处不太大,想打开大文件速度快,用neovim替代vim就行了
作者回复: 编辑大文件,用标准的设置应该会卡得多。提升不仅在打开上。
2021-07-04 - helloworld“要检查当前文件 Syntastic 识别到了哪些代码检查器,可以使用 :SyntasticInfo 命令;而在 ALE 中没有等价的好用命令。”,这句说的不太对,ale有 :ALEInfo 的
作者回复: SyntasicInfo 里报告的 Available 是 Syntastic 检测到的当前机器上可用的代码检查器,而 ALEInfo 里报告的 Available 是 ALE 支持的代码检查器,两者不一样。
2021-07-03 - 我来也给大家再分享一个优化打开大文件的时间消耗经验. 昨天无意发现我打开一个大文件时非常耗时,3G文件居然耗时43s+。 这个瓶颈肯定不是在硬盘,所以我就用二分法定位到了两个配置项。 做了如下调整后,耗时缩减到了原来的1/3。 ``` " 禁用撤销文件 setlocal noundofile " 禁用相同缩进距离的行构成折叠 而使用手动折叠 setlocal foldmethod=manual ``` 优化前后的效果 ``` 耗时ms 优化前 43474.539: opening buffers 优化后 14411.636: opening buffers 不使用配置 13839.206: opening buffers ``` 可以看到,优化的效果还很明显,时间几乎与不使用任何`.vimrc`配置文件相当了。 以下是我的测试语句 ``` vim --startuptime startuptime.log +qall 3.log ; grep 'opening buffers' startuptime.log | tail -n3 vim --startuptime startuptime.log -u NONE +qall 3.log ; grep 'opening buffers' startuptime.log | tail -n3 ``` 以下是我的完整配置 ``` " 以上的配置文件中,当文件大于2MB,不启动语法高亮在内的一切附加功能 " file is large from 2MB " https://vim.fandom.com/wiki/Faster_loading_of_large_files let g:LargeFile = 1024 * 1024 * 2 augroup LargeFile autocmd! autocmd BufReadPre * let f=getfsize(expand("<afile>")) | if f > g:LargeFile || f == -2 | call LargeFile() | endif augroup END function! LargeFile() " no syntax highlighting etc set eventignore+=FileType " save memory when other file is viewed setlocal bufhidden=unload " is read-only (write with :w new_filename) " setlocal buftype=nowrite " no undo possible setlocal undolevels=-1 " 不保存撤销文件 setlocal noundofile " 开启手动折叠功能 setlocal foldmethod=manual " display message autocmd VimEnter * echo "The file is larger than " . (g:LargeFile / 1024 /1024 ) . \ " MB, so some options are changed (see .vimrc for details)." endfunction ```
作者回复: 跟 LargeFile 插件对比过吗?主要功能区别和效果差异是什么?
2020-09-292 - 湟水鱼儿没想到vim里还有搭车客中的彩蛋
作者回复: 还可以 :help holy-grail 以前还曾经用 help! 能出来 Don't panic.
2020-09-08 - helloworld“希望能够无限制地进行编辑撤销,同时还想在退回打开文件的状态之前能有一个提醒,那 undowarning.vim 可能就是你想要的。”,一直有这个困扰,这回可以解决了😄2021-07-03
- pure_black:smile 前来报道。2020-12-05