【vim】简介与基本配置
vim是一款非常强大的文字编辑软件,是各种类UNIX系统标配的文本编辑工具。相信此文的读者对它应该不会陌生,在这里就不做介绍了。
1.为什么要使用vim
在认识vim之前,我用过好多IDE:Visual Studio, Eclipse, C++ Builder,Source Insight, SlickEdit, Qt Creator等等,但我觉得这些东西都有这样那样的不足(Qt Creator不错)。
在我看来,vim吸引我的地方主要有:
- 几乎所有的类UNIX系统中都安装了它,就算没有vim也有vi;Windows上也有gVim
- 当登录到字符模式的远程类UNIX服务器时,可以使用它
- 代码高亮、行号、缩进、括号配对等小细节
- 一切操作都可以通过键盘完成,熟练之后非常高效,完全摆脱鼠标
- 对屏幕、文本的精确控制
- 丰富的扩展性,无数的颜色主题和各种各样的插件,还可以自己写脚本
- 完美支持中文,不会出现SourceInsight等工具的某些小问题
- 免费,小巧,简洁
当然,作为一款历史悠久的软件(1991年,vi更早),vim也不是没有缺点,比如:
- 上手十分困难,需要长时间的练习
- 没有Visual Studio, SlickEdit等许多IDE那种“一站式”功能,编码调试画界面生成类图都有。。。
- 代码提示,智能补全较弱(可以通过插件解决,后续文章介绍),查看符号之间的关系比较困难
是的,初学者学习vim会比较难(下面的图是各种编辑器的学习曲线,感觉一下)。一开始可能连保存文件、复制粘贴这样基本的功能都不知道怎么弄。但是请不要放弃,当你通过几天(几>7)熟练之后,你会对自己仅通过敲几个键就能掌握文本屏幕而兴奋不已。随着时间的增长,vim会变的越来越好用,成为你离不开的伙伴。而它灌输的哲学,甚至会影响你使用其他软件的习惯,比如,越来越倾向于使用高效的快捷键了。

2.本系列文章的指导思想和一些约定
本系列文章是自己通过学习和使用vim的亲身体验,进行的一些总结。虽然现在我已经能比较熟练地使用vim,但所用的技巧比vim所提供的简直是沧海一粟,还有很多奇妙的功能等着我去探索。
本系列文章的指导思想是尽量使用vim的默认配置,而不是复杂的配置和额外的插件。vim的扩展插件很多,也有很多奇技淫巧,但我只打算总结最常用的操作,以及最必需的插件,我认为简洁是一种美。
vim的很多快捷键都是区分大小写的,比如正常模式下的h和H:h是往光标往左移一个字符,而H是将光标移动到屏幕最上面一行。那么在介绍这两个快捷键时,我只会写h和H, 而不会写h和shift+h。
为了突出重点,重要的、必须记住的操作用粗体表示。
3.学习之前的基本配置和几个需要了解的基本操作
在学习vim前,先指定一些基本配置,了解几个基本操作对学习过程会有帮助。类UNIX系统上当前用户的vim配置文件的位置是~/.vimrc。这是一个隐藏文件。打开它进行编辑,加入以下内容:
" 设置字符编码
set fileencoding=utf-
set fileencodings=utf-,gb2312,gb18030,latin1
set termencoding=utf-
set encoding=utf- " 语法高亮
syntax on
" 深色背景
color evening
" 检测文件类型
filetype on
" 根据文件类型加载对应的插件
filetype plugin on " 显示行号
set number
" 在第64列显示竖线
set cc=
" 高亮显示当前行
set cursorline " 设置各种缩进
set tabstop=
set softtabstop=
set shiftwidth=
set autoindent
set smartindent
set cindent
" tab转换为空格
set expandtab " 将ESC键映射为两次j键
inoremap jj <Esc> " 自动完成大括号
imap { {<CR>}<Esc>kA<CR>
什么?不知道怎么编辑?命令是这样:
zzq@ubuntu14:~$ vim ~/.vimrc
或者,直接执行vim,启动后输入
:e ~/.vimrc
即冒号后跟字母e,在加上.vimrc文件的路径。是的,e是编辑(Edit)的意思,冒号是vim“命令模式”的提示符。下一篇会说到 。
打开文件后,按 i 键进入编辑模式,输入以上内容(也可以先用其他文本编辑器编好,然后复制、改名到~/.vimrc)。在输入的过程中,可以使用方向键移动光标(也可以按<Esc>切换到正常模式使用h j k l四个键,分别是光标向左、下、上、右,移动后再按i进入编辑模式)。输入完成后,按<Esc>键回到正常模式,然后输入命令
:wq
保存并退出。w是写入,q是退出。
搞完之后,随便打开一个代码文件,看看效果:

OK, 行号、代码高亮、状态提示、一行最大字符数限制。。。该有的都有了,还要啥呢?现在已经可以装逼了:D
4.系列文章索引
【vim】简介与基本配置的更多相关文章
- 01 . Prometheus简介及安装配置Grafana
Promethus简介 Prometheus受启发于Google的Brogmon监控系统(相似的Kubernetes是从Google的Brog系统演变而来),从2012年开始由前Google工程师在S ...
- 为了让vi命令也可以使用vim的配置,需要修改 vi /etc/bashrc 增加一行 alias vi='vim'此时,经过上面配置已经可以显示语法高亮了
为了让vi命令也可以使用vim的配置,需要修改 vi /etc/bashrc 增加一行 aliasvi='vim'此时,经过上面配置已经可以显示语法高亮了
- ubuntu16.04下vim的安装与配置
一.安装vim 使用命令 $ sudo apt-get install vim 来安装vim,安装后的vim需要进行一些配置,不然使用起来会有些不方便,比如不会自动缩进. 二.配置vim 使用命令 ...
- Vim 插键及配置
如果你觉得这个页面广告太多,欢迎移步博客阅读:Vim 插键及配置 编辑器之神 -- Vim 平日使用vim经常编辑文件,想想使用时的痛点,决定研究一下插件的使用. Vim的扩展通常也被成为bundle ...
- 在vim中安装及配置NERDTree插件
使用Vundle插件安装,在.vimrc中加入以下代码: Plugin 'scrooloose/nerdtree' 打开vim,输入命令如下: :BundleInstall 等待安装完毕 配置NERD ...
- PLSQL连接ORACLE配置字符串简介 oracle网络配置 三个配置文件 listener.ora、sqlnet.ora、tnsnames.ora原理解释
PLSQL连接ORACLE配置字符串简介 oracle网络配置 三个配置文件 listener.ora.sqlnet.ora.tnsnames.ora原理解释 oracle网络配置三个配置文件 lis ...
- twemproxy 简介、安装配置
twemproxy 简介.安装配置 http://www.xuchanggang.cn/archives/993.html
- Vim:gvim安装配置(windows)
Vim:gvim安装配置(windows) 一.gvim的特点: vim要求全部键盘操作,而gvim可以使用鼠标进行可视化操作,即gvim是vim的图形化界面: 二.gvim安装: 下载地址:http ...
- Django 06 Django模型基础1(ORM简介、数据库连接配置、模型的创建与映射、数据的增删改查)
Django 06 Django模型基础1(ORM简介.数据库连接配置.模型的创建与映射.数据的增删改查) 一.ORM系统 #django模型映射关系 #模型类-----数据表 #类属性-----表字 ...
随机推荐
- axure学习点
动态模板内部框架动态弹出框
- acoj-1735 输油管道 【中位数】
题目链接:http://acdream.info/problem?pid=1735 输油管道 Time Limit: 2000/1000MS (Java/Others) Memory Limit: 2 ...
- md5,原理待续
以前项目中copy出来的 import java.security.MessageDigest; public class MD5Util { /** * @todo MD5加码 生成32位md5码 ...
- SqlMapConfig.xml配置文件中的mapper映射器标签
Mapper配置的几种方式: 1. <mapper resource=" "/> 使用相对于类路径的资源 如:<mapper resource="com ...
- srping boot thymeleaf 学习总结 (2) - thymeleaf properties 国际化 mesaage
thymeleaf获取配置properties中的数据与thymeleaf国际化(摘录) 使用thymeleaf提供的国际化 有时候会有直接在模板中获取配置文件properties中的配置信息,比如: ...
- 【转】java.sql.SQLException: statement is closed语句被关闭 druid连接池报错
我之前在用druid 1.0.28版本也出现过这个问题, 现象就是: 报这个错的时候, 往往会出现在一条毫无错误的sql执行上报错, sql放到数据库上执行或者单独拎出来执行完全没问题, 但是为什么 ...
- Python作图笔记
感谢莫烦大神,附带他的个人网站链接:https://morvanzhou.github.io/ 再带上官方的文档,多看文档啊!不然参数忘了就没地方查了:https://matplotlib.org/a ...
- [leetcode] 6. Balanced Binary Tree
这个题目纠结了一会儿,终于从二叉树转化到AVL了.题目如下: Given a binary tree, determine if it is height-balanced. For this pro ...
- Axure8.0入门级基础操作到高手产品经理
宅男下载了一个Axure8.0.从来没有用过,那就从最基础的了解一下呗. 1.添加元件,选择元件设置样式(右侧对话框中)略!!!!! 2.按住ctrl键,用鼠标点选元件,可以任意旋转3.点元件上的黑圆 ...
- struts2设置index.action为主页(另:web.xml编辑卡死问题解决)
本来是弄拦截器的问题,结果弄主页的时候,还是发现了问题. 公司网站的项目里面,是用index.action作为主页的,访问WEB-INF里面的html文件.可是我设置的却不成功,追根到底,一个原因,s ...