1. neoformat

:Neoformat,输入命令之后按 空格+tab 键进行选择格式化的程序,


2. vim-multiple-cursors

选中任意文本后,使用 Ctrl+nCtrl+p 找到下一个匹配的字符

选中完成后,可以使用i,c等vim编辑操作进入insert模式,开始修改文本.

3. EasyAlign

格式:命令,范围 ,对齐方式,对齐符号

对齐命令

范围

对齐方式

可选要对齐的符号,前面可以加数字表示第几个

ga

ip,2j

<Enter><Enter>

<Space>,=,/,:,#,&,

默认左对齐,1回车右,2回车居中

符号前可加数字,负数代表倒数第几个

  • 示例
gaip<Space>              # 按第一个空格对齐,范围:光标所在段落

ga2j<Space>              # 按第一个空格对齐,范围:光标下2行

gaip=                    # 按第一个等号对齐

gaip[*,2,-1]=            # 所有等号都对齐,第2个等号对齐 ,倒数第一个等号对齐           

gaip/                    # 按/号对齐

gaip<Enter><Enter>*|     # 按|居中对齐


  • vim 原生对齐方法
= =        #排版当前行
5= =        #排版当前行下5行


  • 符号的说明

按键

使用场景说明


匹配空白符

=

包含等号的操作符(=, ==, !=, +=, …)

:

应用于 JSON 或 YAML 格式

.

应用于多行点语法调用

,

应用于多行参数列表

&

对 LaTeX table 进行格式化,匹配 & 和 \

#

应用于对 Ruby/Python 的注释的对齐


Markdown 表格

ease align 插件对齐方式的学习:https://www.mianshigee.com/tutorial/learn-vim/plugins-easyalign.md [项目地址:https://github.com/junegunn/vim-easy-align](https://github.com/junegunn/vim-easy-align

4. tcomment_vim 用法

vim 中

gcc
    gcap
    gc2j
    v...gc

5. surround & repeat

范围命令

描述

y s <motion> <desired>

为 选中的区域添加 desired 范围字符

d s <existing>

删除 范围字符

c s <existing> <desired>

把 existing 范围字符改成 desired 范围字符

S <desired>

在 Visual 模式下给选中区域添加范围字符

vim 中:

ysiw "   # 增加标签
or
S"

ds"      #删除
cs"'     #替换
cs"t     #替换复杂标签
修改前                       命令                修改后               说明
--------------------------------------------------------------------------------
    surr*ound_words             ysiw)           (surround_words)      整词外围加 )
    *make strings               ys$"            "make strings"        选中部分加 "
    [delete ar*ound me!]        ds]             delete around me!     删除 [ ]
    remove <b>HTML t*ags</b>    dst             remove HTML tags      删除 标签
    'change quot*es'            cs'"            "change quotes"       替换" 为 '
    <b>or tag* types</b>        csth1<CR>       <h1>or tag types</h1> 替换标签
    delete(functi*on calls)     dsf             function calls        没明白

6. easymotion

<leader><leader> s <char>

搜索字符

<leader><leader> f <char>

向后搜索字符

<leader><leader> F <char>

向前搜索字符

<leader><leader> t <char>

向后搜索字符,标记位是被搜索字符的前一个字符

<leader><leader> T <char>

向前搜索字符,标记位是被搜索字符的后一个字符

vim leader,号:

,,f
,,t
,,s

7. tagbar

.vimrc设置:

noremap <C-a> :TagbarToggle<CR>
let Tlist_Show_One_File = 1
let g:tagbar_autofocus = 1
let g:tagbar_sort = 0
let g:tagbar_show_linenumbers = -1
set tags=./.tags;,.tags   # 这个网上很多文章没写清楚,下面链接算是说明白了,感谢作者。
set autochdir

https://www.zhihu.com/question/35808196/answer/130915301

set tags=./.tags;,.tags

在自己的项目文件夹下执行 ctags -R * or ctags -R .

常用的命令:

1. $ ctags –R *       # 终端


: 开头的命令为 vim命令行模式 
   3. :ts                # ts 助记字:tags list, 
   4. :tp                # tp 助记字:tags 前一个
   5. :tn                # tn 助记字:tags next
   6. Ctrl + ]           # 跳转到函数定义处,跳转相当于下面`6`入栈,才会有上面 `tags list`
   7. Ctrl + o           # 跳回源文件
   8.   ?                 # 查看窗口命令

8. vim-es6 Snippets list

Trigger

Result

gfn

function* name (arg)

=>

(arg) => { ... },

class

class name { constructor () { ...} }

forof

for (let value of arr)

im

import lib from 'Library'

ex→

export default foo

使用 tab 触发

9. vim-rt-format

使用 vim-plug 安装插件实时格式化

Plug 'skywind3000/vim-rt-format'

默认在 INSERT 模式下按 ENTER 格式化当前代码行,将下面设置成 1 的话,可以用 CTRL+ENTER 来格式化,ENTER 将保留原来的功能

let g:rtf_ctrl_enter = 0

离开 INSERT 模式的时候再格式化一次

let g:rtf_on_insert_leave = 1

当前 buffer 中使用命令

:RTFormatEnable