Vim

分类下相关文章

VIM 中进行英文单词拼写检查

最近写代码时,发现好多的单词拼写错误,既有自己拼写错误的,也有三方 API 中的字段拼写错误,更有产品文档中的,及 UI 设计稿中的。 有些一眼就能辨识出来,有些很难察觉,特别是比较长的单词。 例如: registration 拼写成了 registartion。 浏览器比较好,非常智能,比如正在使用的 Edge,就自动标注了第二个单词有拼写错误。 但是在 VIM 中,就很难发现,一旦上线,就是非常尴尬的 bug。 于是查了一下,发现 VIM 居然自带了单词拼写检查功能。 开启 :set spell 关闭 set nospell 效果 VIM 会在拼写错误的单词下面加上下划线。 但是,没 ...

阅读全文...

VIM 在 tabnew 中打开目前鼠标所在行文本所指向的文件

例如,在 VIM 中打开某个文件,其中一行是文件路径,如: /etc/timezone 如果想在 VIM / NeoVIM 中,通过快捷键,在 tabnew 中打开目前鼠标所在行文本所指向的文件。 可以使用 Ctrl+w gf tips: ctrl + w 看似难记,实际跟分屏切换命令的前缀是一样的。 如果不想在 tabnew 中打开,而是当前 window,可以直接使用 gf 然后就能使用 buffer 相关的命令,在原文件与目标文件间切换。 使用场景 比如在代码注释/文档中,注明了相关联的代码文件,就可以直接写上目标文件的地址。 然后通过 gf 快捷键快速打开。 buffer 相关命 ...

阅读全文...

VS Code Snippet 插件 HyperSnips,完美替代 VIM UltiSnips

完了,我发现一个插件,可以完美让我从 vim 切换到 vs code ... UltiSnips 是我唯一留恋的一个 VIM 插件,但是当我发现 VS Code 的 HyperSnips 插件之后,我感觉完全使用 VS Code 作为日常开发环境了。 HyperSnips HyperSnips is a snippet engine for vscode heavily inspired by vim's UltiSnips. VS Code HyperSnips 相对 VIM UltiSnips 的优势 用 JS 来开发扩展功能,挺方便,省去了安装配置 Python 的麻烦 最近 WS ...

阅读全文...

使用 ALE 替换 vim-go 插件

我目前 NeoVim 里安装了两个 go 相关的插件: vim-go ALE (Asynchronous Lint Engine) 今天在保存代码修改时,一如既往的卡顿了10几秒,这种情况在1分钟之后就会消失。 可是,我安装的 ALE 号称是异步的啊。。。要不我安装他干啥。。。 我突然感觉可能问题出在了 vim-go 上,除了 gd 快速查看定义,似乎我也没有用过其他功能。 而且我担心 vim-go 和 ALE 都带了 gofmt,会不会保存时调用两次,造成冲突。 于是,干脆把 vim-go 卸载了。 卸载之后果然如预期的一般丝滑。。。再也不会卡顿了。 修改配置 将记不住的 ALEG ...

阅读全文...

VIM 中编辑 Javascript 保存时使用 ESLint 进行语法检查

为何迫切需要语法检查 昨天再次因为一个语法错误,交流浪费了不少时间。本以为是小改动,改完没看就发给别人了,没想到还是出错了。 对于需要编译的语言还好,编译时可以过滤掉语法错误。 但是对于 js 这种动态语言,特别是单文件,没有打包需求的情况下。 极易写出有语法错误的代码。之前是使用 gulp 插件实现的 js 语法检查。 对于写 tampermonkey 这种单文件的小功能,我只能在 VIM 里进行配置了。 全局安装 ESLint sudo npm install eslint --global (不推荐) VIM Syntastic 配置 Syntastic 是 VIM 的一个语法检查插件 ...

阅读全文...

VIM Markdown 中打开当前光标所在的文件链接

由于我把记录每天 TODO 事项放在了 markdown 文件中,当需要记录具体某个事项的细节时,还是新开一个文档比较清晰,所以需要能在 VIM 中快速打开,或者新建文件。 vim-markdown 插件 原来 vim-markdown 组件是支持这个功能的: https://github.com/preservim/vim-markdown 安装: Plugin 'godlygeek/tabular' Plugin 'preservim/vim-markdown' NeoVim 中使用也完全没有问题。 ge 命令 要打开光标所在的文件链接,只需要在 VIM 中依次按下: ge 此时就 ...

阅读全文...

Vim 编辑 markdown 侧边栏显示 toc 二级标题目录

最近在写的 markdown 文档越来越长,文档一长就显得杂乱无章。 如果能像 word 一样,在侧边栏显示各级标题,结构能清晰不少。 而且,我也只用二级标题,应该更清楚才对。 vista.vim 虽然 vista.vim 主要用于代码文件的函数、变量、类列表展示。 但是其内置了 markdown 的子标题的展示功能。看了一下截图效果非常好,于是决定试一下。 https://github.com/liuchengxu/vista.vim 安装 vista.vim 如果用的 vundle, vimrc 中配置; 用 Neovim 修改 init.vim Plugin 'liuchengxu/vi ...

阅读全文...

Neovim 配置 UltiSnips

安装完成 Neovim 之后,我首先要保证 UltiSnips 插件能够正常使用。 其他插件可以后面慢慢改,但是如果不能使用 snippet 我基本就失去了写代码的能力。 最终效果: Vim 配置文件迁移到 Neovim 基本原则 If you wish to migrate your existing Vim configuration to NeoVim, simply copy your ~/.vimrc to ~/.config/nvim/init.vim. UltiSnips 自动提示框不见了 打开 Neovim 之后,发现基础的 UltiSnips snippet 是可以用的 ...

阅读全文...

Ubuntu 安装 Neovim

GitHub Copilot 支持了 Neovim,但是没有支持 vim。所以,我决定试一把 Neovim。折腾了一天,也仅仅是安装完成,而要兼容之前的 Vim 配置,还遥遥无期。。。 进入正题,在 Ubuntu 18.04 上,我尝试过 3 种方式安装 Neovim 尝试过的安装方式 失败:直接下载编译好的 nvim-linux64.tar.gz。但是运行后,会报错找不到 lua 失败:源码编译安装。make 时会大量从 github 下载,网络问题会超时失败 成功:apt install。唯一成功的方式 apt install Neovim 参考 https://github.com/ ...

阅读全文...

VIM 中执行 GoInstallBinaries 安装依赖失败

在 VIM 中安装了 vim-go 插件,但是在为其安装依赖时,执行 :GoInstallBinaries 失败,报错信息: vim-go: errcheck not found. Installing github.com/kisielk/errcheck to folder /home/zhongwei/go/bin/ Error downloading github.com/kisielk/errcheck: github.com/kisielk/errcheck (download)^@package golang.org/x/tools/go/analysis: unrecogn ...

阅读全文...

VS Code 还是比 Vim 更适合写 Antd Pro 项目

不得不承认,VS Code 的发展真是快,很多功能已经超出了我的预期。 虽然我还是将 Vim 作为主力开发工具,但是在写 JS 项目时,还是想尝试一下 VS Code,跟上时代的脚步。 VS Code 写 Antd Pro 的一些优势 VS Code 的 OUTLINE 可以直观的看到当前文件中的方法大纲,VIM 就得自己配置 VS Code 可以显示哪些变量没有使用。Vim 虽然也能支持,但是我实在不想在 Ubuntu 中自己折腾 nodejs 环境。 可以快速的定位到引用的其他文件变量的定义 VS Code 现在支持在 Remote Explorer 中查看、编辑 WSL 中的项目代码文 ...

阅读全文...

The legacy SnipMate parser is deprecated. Please see :h SnipMate-deprecate.

On my new machine for developing, after install snipmate bundle, error shows when launch VIM. The legacy SnipMate parser is deprecated. Please see :h SnipMate-deprecate. As tips, enter :h SnipMate-deprecate messages show: The legacy parser, version 0, is deprecated. It is currently still the defa ...

阅读全文...

VIM 区分显示 TAB 和空格

使用 VIM 敲代码时,经常会遇到 TAB、空格混用导致的缩进排版问题。特别是 IDE 与 VIM 同时使用时,这种情况经常遇到。 例如: gradle 配置文件,默认用的是空格缩进,但是如果 VIIM 没有配置使用空格,就会插入 TAB 导致 IDE 中排版问题 微信小程序开发工具,也是如此 VIM 配置区分显示 TAB、空格 set list set listchars=tab:>- 这样,TAB 就会有特殊符号占位显示。如图所示: 参考 https://vi.stackexchange.com/questions/422/displaying-tabs-as-charac ...

阅读全文...

Vim UltiSnips Snippet 自动首字母大写

场景 定义一个变量,自动生成类的定义,而类的首字母自动大写。 UltiSnips 的示例配置 当前单词首字母大写 Demo: Uppercase one character ------------------- SNIP ------------------- snippet title "Title transformation" ${1:a text} ${1/\w+\s*/\u$0/} endsnippet ------------------- SNAP ------------------- title<tab>big small -> big ...

阅读全文...

vim 保存当前打开文件窗口,下次自动打开

这段时间在写微信小程序界面,大量的可复用布局代码可以整理成 vim snippet,所以,基本是写一会代码,整理一会 snippet,开发效率确实大大提高。 但是 vim snippet 没法自动加载,新增的 snippet 无法自动生效,每次都需要重新打开 vim 才能使用新增的 snippet,有点繁琐。特别是同时打开了 N 个代码文件。 如果重启 vim 后,能自动打开之前的文件就方便多了。 使用 vim session 保存当前打开的文件列表,及窗口布局 Google 了一下,发现可以使用 vim session 来实现这个效果。 针对当前打开文件,创建 session。例如,我想将 ...

阅读全文...