Vim

分类下相关文章

使用 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。例如,我想将 ...

阅读全文...

使用 VIM 作为 Golang 的开发环境

更新,目前我已经叛变了 vim-go,使用 ALE 替换 vim-go 插件。 安装 VIM go 插件 https://github.com/fatih/vim-go vimrc 添加 Plugin 'fatih/vim-go' PluginInstall 之后,执行 :GoInstallBinaries vimrc 中配置 golang 的缩进 autocmd FileType go setl shiftwidth=4 tabstop=4 colorcolumn=79 GoInstallBinaries 报错 vim-go: guru not found. Installing go ...

阅读全文...

使用 VIM 清理 ^M 符号

在 Ubuntu VIm 中打开了一个 Windows 上编辑过的代码文件,里面代码完全没有换行,只有大片的 ^M 符号。乱得完全无法阅读。 ^M 符号是什么 Unix uses 0xA for a newline character. Windows uses a combination of two characters: 0xD 0xA. 0xD is the carriage return character. ^M happens to be the way vim displays 0xD (0x0D = 13, M is the 13th letter in the Engli ...

阅读全文...

Fish Shell 导致 Vim Bundle PluginInstall 报错

环境 VIM 8 TMUX + Fish Shell 无法安装新的 Bundle 组件 由于要安装 Dart 的 VIM 组件,我在 .vimrc 中添加了配置之后,执行 PluginInstall。 所有组件在安装时都会报错 Error detected while processing function vundle#installer#new[24]..<SNR>66_process[11]..vundle#installer#run[8]..vundle#installer#install[12]..<SNR>66_sync[6]..<SNR>6 ...

阅读全文...