Vim

分类下相关文章

修改 VIMDIFF 颜色主题以解决背景色看不清的问题

我的 git difftool 默认使用的是 vimdiff 来对比修改。 但是,最近发现 vimdiff 的配色太奇葩了,根本看不清文字,无力吐槽。。。 修改 vimdiff 颜色主题的方法 在 ~/.vimrc 中加入 if &diff colorscheme evening endif 再次 git difftool 发现配色体验友好多了 ...

阅读全文...

VIM 默认主题下黑色背景,蓝色注释文字看不清

最近写的业务逻辑比较复杂,怕以后自己都看不懂,所以在部分函数前加上了大段的注释。 但是。。。VIM 的默认主题下,注释的颜色异常诡异,脸贴到屏幕上也看不清楚,我一度怀疑是自己的眼珠子出了问题。。。不知道跟我红绿色盲有没有关系。 查看了一下 VIM 的默认配置 :verbose hi Comment Comment xxx term=bold ctermfg=4 guifg=Blue Last set from /opt/local/share/vim/vim81/syntax/syncolor.vim ctermfg=4 不知道是什么颜色,也懒得研究,索性直接 ...

阅读全文...

禁用 VIM completor 插件令人烦躁的自动提示补全

新安装的 WSL VIM 在敲入两个字母之后,就开始自动提示补全,严重影响了我的写代码体验。 因为我还是习惯手动 Ctrl + N,不喜欢自动提示。 两个字母就开始提示,会有大量的候选列表,显得屏幕异常丑陋。 但是,我一开始并不知道是 completor.vim 引起的,我需要定位具体哪个设置导致了敲击了两个字母就开始提示。 排查 启动 VIM,输入 :let 会看到大量的配置项,一行一行排查,发现了 completor_min_chars=2 然后,根据 completor_min_chars,我 Google 到了这个配置项属于 Plugin 'maralla/completor. ...

阅读全文...

WSL 中的 VIM 复制内容到 Windows 系统剪切板

复制所有内容到 Windows 系统剪切板 :w !clip.exe 也可以选择制定行复制。 ...

阅读全文...

WSL Ubuntu 16.04 源码安装 VIM8

WSL Ubuntu 16.04 内置的 VIM 版本为 7.4 . 使用了 Completor 插件会报错 Completor requires vim compiled with python or python3 and has features job, timers and lambda 从 https://github.com/vim/vim/releases 下载最新版本的 VIM8,编译安装 sudo apt-get install gcc python-dev libncurses5-dev libncursesw5-dev ./configure --prefix=/o ...

阅读全文...

Install VIM 8.1 on Ubuntu 18.04 from source

After upgraded to Ubuntu 18.04, I found VIM isn't installed by default. And Vim 8.1 is released days ago, so let's install Vim 8.1. How to install VIM 8.1 on Ubuntu 18.04 with source code Download latest vim source code from https://github.com/vim/vim/releases Then unzip, cd into vim source director ...

阅读全文...

VIM 通过文件名关键字快速打开子目录中的文件

我经常要修改一些藏的很深的子目录中的文件,例如 resources/views/vendor/backpack/base/inc/sidebar.blade.php 每次 tabnew 或者 vs 打开这种文件,都是考验我记忆力的时刻。。。 今天发现一个好方法,可以快速定位到该文件 :tabnew resources/**/sideb 再按下 TAB 即可自动补全路径。 之所以没有直接 :tabnew **/sideb 是因为,如果目录下子目录太多,例如,包含大量的 vendor 文件,等待的时间会非常长。 ...

阅读全文...

vim8 自动弹出下拉框提示匹配的代码片段, Completor + Ultisnips

每天在几门编程语言之间切换时,最大的痛苦就是有时候连关键字都会忘掉。例如,PHP 的 for 和 foreach,我经常忘了 PHP 的 foreach 怎么写。。。 虽然有了 VIM 插件 Ultisnips 进行代码片段管理,但是 snip 的 keyword 需要精确匹配才能完成自动补全,而 keyword 我随时会忘掉,白白浪费了大量整理好的 snip。 所以,我需要找一个 VIM 插件,能够实现自动提醒目前已模糊匹配的 Ultisnips snip keyword,然后通过 vim popup menu 展示出备选项列表。 需求描述 输入 fo 时,能自动弹出下拉列表提示选择 fo ...

阅读全文...

Vim 打开当前文件所在的目录

写 Laravel Backpack 组件最痛苦的地方在于路径藏的太深,每次想查看同目录下另外一个文件时,需要重新输入一遍文件目录。 例如: resources/views/vendor/backpack/crud/fields/ 输入一次这样的路径真是太锻炼大脑的记忆能力了! 于是我查了一下是否有这样的 Vim 命令,能否打开当前文件所在的目录。果然有 :Explore 缩写为 :Ex 但是,我更喜欢使用 Split 的方式打开特定目录 :Vexplore 缩写为 :Ve ...

阅读全文...

VIM 中 tabstop 与 softtabstop, shiftwidth 的区别

VIM 中处理 TAB 异常的方便。 键盘上的 TAB 键,与文件中的 TAB 符号一定要区分开,这是两个概念。 显示当前文件中的 Tab /\t 实际上,就是查询 \t 符号。 shiftwidth 用于设置 换行时的自动缩进列数 行选择后,使用 < 或者 > 做缩进时,缩进的列数 疑问来了! shiftwidth 引入的缩进,是 Tab 还是 Space? 从测试来看 如果 expandtab 开启是 Space noexpandtab 且 softtabstop 与 tabstop 一致时,是 TAB 符号。 那就是说,如果在 PHP 代码文件中,不对 Tab 做 ...

阅读全文...

Vim 快速选中刚才 paste 的内容

场景 修复一个微信小程序的 bug。要把部分 onLoad 中的逻辑转移到 onShow 中,原因参见 微信小程序生命周期中 onLoad 与 onShow 的使用场景区别 比较痛苦的一点是,onLoad 中的一些逻辑是在回调中进行的,copy/paste 之后,需要进行缩进整理。 我需要能立即选中刚才粘贴的部分,再进行缩进就方便多了。 对应的 Vim 配置 在 .vimrc 中加入 nnoremap gp `[v`] 下次执行 gp 即可选中刚才 paste 的内容。 命令说明 `[ 是跳转到上次编辑文本的开始 `] 是跳转到上次编辑文本的末尾 参考 http://vim.wikia ...

阅读全文...

VIM 删除一对括号

场景 发现一段无脑逻辑的代码,例如 if (true) { // do something: 微信小程序获取用户信息 // so long: 数据更新 // ... // so long: 数据上传 } 我现在需要删除 if 判断,及对应的括号。由于其间的代码逻辑很长,删除了左括号之后,我肉眼很难找到对应的右括号。 VIM 操作 光标定位到左括号下,执行 %x''x 操作说明 % 是跳到对应的括号 x 是删除当前字符,即右括号 '' 是跳回左括号 x 删除左括号 参考 Remove a pair of parentheses, brackets, ...

阅读全文...

使用 Vim tabular 对代码进行排版对齐

当团队里出现了对代码毫无洁癖的人之后,就会出现这种代码 我是无法忍受这种恶心东西的存在的,通常看到了我就会顺手改掉。 Vim 有个很好用的插件 tabular 可以非常高效地对代码进行排版,例如,这里按 => 进行对齐 :'<,'>Tab /=> 效果如下 参考 http://vimcasts.org/episodes/aligning-text-with-tabular-vim/ ...

阅读全文...

vim 同时打开当前目录下的所有文件

场景 开发微信小程序时,经常要同时打开模板 wxml, 样式 wxss, 逻辑 js 文件。一个个打开非常麻烦,要是能一个命令全部打开就方便多了。 同时在多个 tabs 中打开 vim -p pages/some_page/* 加个星号即可 ...

阅读全文...

折腾,重装 Mac 上的 VIM8

不确定是 Mac 系统升级,还是 homebrew 升级造成的,反正 VIM8 一直启动报错 Error detected while processing /Users/zhongwei/.vim/bundle/ultisnips/autoload/UltiSnips.vim: line 15: E887: Sorry, this command is disabled, the Python's site module could not be loaded. Press ENTER or type command to continue Error detected while p ...

阅读全文...

近期节日

2018年12月10日 世界人权日
2018年12月12日 西安事变纪念日
2018年12月13日 南京大屠杀
2018年12月20日 澳门回归日
2018年12月21日 国际篮球日
2018年12月22日 冬至
2018年12月24日 平安夜
2018年12月25日 圣诞节
查看更多节日