简介

这部分的插件是与编程相关的插件。主要涉及两大块:所有编程语言通用的插件,以及各个语言独有的插件。插件的数量和合理性,这可能是一个不断累积和修正的过程。

个人感觉,现在比较适合sh,html,markdown的编程。对于java,还是有点勉强。至于其他的,比如python等,现在还没有涉略。还会继续边使用,边调整。

其实只要是编程的IDE都会涉及到一些统一的概念:快速查找文件,快速查找文本引用,高亮,语法错误提示,自动提示,快速输入,消除重复操作,项目的管理等。我个人目前的感觉是,vim在项目的管理方面不是那么舒服,和jdk+eclipse+maven比较起来没那么舒服。还有一些消除重复的操作,太有语言个性的vim也处理不是那么好,比如说eclipse的重构功能。所以,我个人感觉,目前来说,简洁的结构语言(并不是说语言本身简单,也是语言使用场景比较简洁),比如说bash,html,markdown处理起来会非常舒服。

以上属于个人理解,也欢迎大家讨论。

通用插件

这里面指的是各个编码语言常用的共通的一些习惯的插件。即适合用绝大部分语言。

auto-pairs

配对插件,可以匹配这几个字符:'"`)]},再也不用担心漏写了。

注意事项:

  1. 如果你不想配对,可以用Delete键删除
  2. 在上面这几个符号后按回车键,会插入一个新的带缩进的行并且补齐配对符号
  3. 可以使用包裹,不过我没试出来,上面写的是,据说是meta|alt键。不过因为我的windows下的,所以按alt键会跳出菜单。

更多使用方式可以参看:官方说明

nerdcommenter

添加注释。主要有两种风格:单行注释和多行注释。下面的所有命令在insert模式和visual模式都适用。所有的命令之前都有量词,即命令通用格式是{count}c*。一般默认是"/",可以自行设定。

语法如下:

  • cc : 添加注释
  • cm : 添加多行注释
  • ci : 添加单行注释
  • cs : 优雅的添加注释。有一定格式的多行注释
  • cy : 和cc一样并且把内容复制起来
  • cA : 在行尾添加注释
  • ca : 切换注释的风格(单行和多行间的切换)
  • cu : 取消注释

没有特别说明的注释,都是指默认注释风格,这个可以通过ca来切换

snipmate

编码中难免会有许多重复的代码片段,所以有了这类的插件。

注意事项:

  1. 因为这里快捷键是。和superTab插件的快捷键冲突。所以这里舍弃了superTab插件。
  2. 支持自定义snipmate,所以大家可以根据自己的习惯去自定义常用的snipmate。

tabular

文本对齐。

语法:[range]Tabularize /{string}

说明:

  • [range]指的是规范,如果不指定默认指全文
  • {string}可是一个字符也可以是多个字符

AuthorInfo

添加文件的作者信息。

html插件

更快捷的编写html

emmet-vim

html插件的神器!!!这个网络上太多了,就不再班门弄斧了。

参考资源:

  1. 自动生成HTML/CSS代码
  2. Emmet.vim 教程

markdown插件

vim-markdown

主要用于markdown的高亮、移动、预览等功能,让我们能更方便的编写markdown。

该插件,需要前置条件是需要安装tabular。

跳到标题

快速的跳到标题位置,方便在markdown文档里移动

语法如下:

]] : 跳到下一个标题

[[ : 跳到上一个标签

][ : 跳到下一个兄弟节点标题

[] : 跳到上一个兄弟节点标题

]c : 跳到当前的标题

]u : 跳到父标题

显示目录

根据标题生成一个可以浏览的目录导航,也可以根据导航移动

语法如下:

:Toc : 生成一个标题的目录导航

:Toch : 生成一个标题的目录导航在底部显示

:Tocv : 生成一个标题的目录导航在右边显示

:Toct : 生成一个标题的目录导航在新的标签显示

配置文件

"========>>>>>>编程插件配置开始
"普通
" 括号匹配
Plugin 'jiangmiao/auto-pairs'
" 添加注释
Plugin 'scrooloose/nerdcommenter'
" 作者信息
Plugin 'vim-scripts/AuthorInfo'
" 文本对齐
Plugin 'godlygeek/tabular'
" 文本模板
Plugin 'msanders/snipmate.vim'
"markdown
Plugin 'plasticboy/vim-markdown'
"css+html+div
Plugin 'mattn/emmet-vim'
"========>>>>>>编程插件配置结束 "设置leader键
let mapleader=','
"===>>>AuthorInfo配置
let g:vimrc_author='Zhuang Junxiang'
let g:vimrc_email='529572571@qq.com'
let g:vimrc_homepage='www.cnblogs.com/ansn001'
nmap <F4> :AuthorInfoDetect<cr>
"===>>>vim-markdown配置
"默认不折叠
let g:vim_markdown_folding_disabled=1

菜鸟vimer成长记——第4.2章、编程插件的更多相关文章

  1. 菜鸟vimer成长记——第2.4章、cmd-line模式

    cmd-line模式又有3个类型:Ex 命令(ex commands).查找模式(Search patterns).Filter 命令(Filter commands).本文主要重点的是Ex 命令和S ...

  2. 菜鸟vimer成长记——第2.1章、normal模式

    目的 掌握normal模式下常用操作的语法和概念,这些操作对应的应用场景以及实用技巧. 通过normal模式举一反三掌握cmd-line和visual的常用文本操作. 简介 文本操作的理想状态为:一个 ...

  3. 菜鸟vimer成长记——第4.1章、通用插件

    简介 关于插件的分类,此系列只会简单的区分为通用插件和编程插件.通用插件的意思是,不基于任何编程语言都可以使用的插件.编程插件,是针对于编程习惯,或者说是针对于某种语言的插件. 计划中,是先把基本常用 ...

  4. 菜鸟vimer成长记——第4.0章、Vim插件管理利器-Vundle

    定义 Vundle是vim bunler和简称,它是一个vim插件管理器. Vim本身缺乏对插件的有效管理,安装插件并配置.vimrc文件非常不便.gmarik受到Ruby的bunler的启发,开发了 ...

  5. 菜鸟vimer成长记——第2.3章、insert模式

    大部分的Vim 命令都在非插入模式中执行,不过有些功能在插入模式中会更好实现些. 如果没有输入当前文件不存在的新文本的需求时,建议通过其他模式来操作完成. 目的 掌握inser模式下常用操作的语法和概 ...

  6. 菜鸟vimer成长记——第2.2章、visual模式

    vi是没有可视模式的.然而大多数编辑软件都都是有可视模式.所以我猜测vim是几乎迫于无奈才有了visual模式. 个人建议,能不用就不用.这样能直接在头脑里处理好文本,锻炼文本处理能力,同时能转变过来 ...

  7. 菜鸟vimer成长记——第2.0章、模式初探

    首先,其他的文本编辑器只有一种模式,就是插入模式.而vim一下子颠覆了我们的世界观——有好多模式.这个是思维上的切换,很难也很重要!!! 其次,Vim 提供一个区分模式的用户界面.也就是说在不同的模式 ...

  8. 菜鸟vimer成长记——目录

    菜鸟vimer成长记——第0章.我眼中的vim学习 菜鸟vimer成长记——第1章.统一概念 菜鸟vimer成长记——第2.0章.模式初探 菜鸟vimer成长记——第2.1章.normal模式 菜鸟v ...

  9. 菜鸟vimer成长记——第0章、我眼中的vim学习

    这是一系统总结vim的学习文章,记录我自己学习vim的过程和感悟.与此同时也想分享出来给大家,欢迎大家互相讨论和学习. 在这里假设你们对vim已经有了一些基本的认识或者说已经使用过几个月的vim.该系 ...

随机推荐

  1. iOS系统声音列表

    iOS系统声音列表 效果 说明 1. 点击cell就能发出声音 2. 只需要给出声音编号,就可以,非常简单易用 源码 https://github.com/YouXianMing/iOS-Utilit ...

  2. windows命令行大全

    命令简介 cmd是command的缩写.即命令行 . 虽然随着计算机产业的发展,Windows 操作系统的应用越来越广泛,DOS 面临着被淘汰的命运,但是因为它运行安全.稳定,有的用户还在使用,所以一 ...

  3. 数据结构&堆&heap&priority_queue&实现

    目录 什么是堆? 大根堆 小根堆 堆的操作 STL queue 什么是堆? 堆是一种数据结构,可以用来实现优先队列 大根堆 大根堆,顾名思义就是根节点最大.我们先用小根堆的建堆过程学习堆的思想. 小根 ...

  4. 0x01 现阶段目标

    现阶段目标: 1.完成前端知识基础的学习. 具体如下: 在目前学习的基础上(html,css,JavaScript+BOM基础已经大致了解).针对DOM进行学习,个人在http://how2j.cn? ...

  5. 个人作业2:APP案例分析--腾讯动漫

    第一部分 调研,评测 个人第一次上手体验 以往看漫画就是在浏览器直接搜索在网页上看,直到用了腾讯动漫APP,我才摒弃这个很low的方法.腾讯动漫直接用qq就可以登陆,有更齐全的漫画分类,更清晰的画质, ...

  6. 堆排序(php实现)

    堆排序基本步骤: 1:把无序序列构成一个堆. 2:交换堆顶元素和最后一个元素,交换之后由于堆结构破坏,重置堆. 初始化堆和交换后的重置堆区别在于:初始化堆时从最后一个非叶子结点开始调整结点位子,交换堆 ...

  7. HTML5新增和废弃的标签

    一.废弃的标签 以下的 HTML 4.01 元素在HTML5中已经被删除,虽然浏览器为了兼容性考虑都还支持这些标签,但建议使用新的替代标签,矛盾的是老浏览器对新标签的支持度又不够,视项目的受众对象而定 ...

  8. React & TypeScript

    之前看了一下 TypeScript 的知识,但是一直没有上手,最近开始结合 React 和 TypeScript 一起尝试了一下,感受还是很好的,所以写一下笔记. 环境配置没有参考其他东西,就是看了下 ...

  9. codeforces 933D A Creative Cutout

    题目链接 正解:组合数学. 充满套路与细节的一道题.. 首先我们显然要考虑每个点的贡献(我就不信你能把$f$给筛出来 那么对于一个点$(x,y)$,我们设$L=x^{2}+y^{2}$,那么它的贡献就 ...

  10. BZ4326 运输计划

    Time Limit: 30 Sec Memory Limit: 128 MB Submit: 2132 Solved: 1372 Description 公元 2044 年,人类进入了宇宙纪元.L ...