一 写在开头

1.1 本文内容

Vim使用技巧与学习资源汇总,不定期更新。

二 Vim学习资源

1. Vimtutor

2. Vim中文帮助(http://vimcdoc.sourceforge.net/doc/)

三 Vim使用技巧

Tips 1 : 如何在写代码时将输入的TAB转换成4个空格?

将以下代码写入你的.vimrc文件中。

set ts=
set expandtab
%retab!

Tips 2 : 如何显示行号?

将以下代码写入你的.vimrc文件中。

set nu

Tips 3 : Vim中如何进行撤销和恢复撤销?

撤销:u(命令模式下,小写)

恢复撤销:Ctrl + r

Tips 4 : Vim如何打开特定文件类型关联缩进?

将下面的代码写入你的.vimrc文件中。

filetype indent on

Tips 5: Vim中的光标跳转命令有哪些?

基本移动:

h(往左) j(往下) k(往上) l(小写字母l,往右)

行间移动:

快速跳至文件末行:G(大写字母G)

快速跳至文件首行:1G(数字1加大写字母G)

跳至指定第n行:nG(数字n加大写字母G)

快速移动至光标所在行的行首:Home键或者0(数字0)或者^(即Shift + 6)

快速移动至光标所在行的行尾:End键或者$(即Shift + 4)

Tips 6: Vim中的代码折叠

折叠第5到第10行的代码,使用以下命令:

:,10fo

要想将折叠的代码打开,可以将光标移动到折叠所在行,然后使用以下命令:

注意:

zd

注意:zd是将此折叠删除!如果你不想将此折叠删除,只是想将折叠展开查看代码,然后再一次将折叠关闭,请使用下面的命令!

使用zo命令打开指定的折叠,使用zc命令关闭指定的折叠。

在VIM中设定自动折叠方式,以常用的indent方式为例。使用下面的命令,VIM会自动将所有函数大括号内的内容按缩减自动折叠

:set fdm=indent

经过一段时间的摸索,现在将我最喜欢的“VIM代码折叠套路”总结如下:

首先设置折叠方式为indent,

:set fdm=indent

使用zo命令展开折叠内容查看代码,

zo

查看完毕后,将光标移动到折叠块的开头大括号处,使用zm命令再次折叠这块代码。

zm

Tips 7: Vim中按Ctrl+S后假死了怎么办?

在使用VIM时如果不小心输入了“Ctrl+S”,你会发现VIM这时候假死了!怎么办?

按“Ctrl+Q”退出假死状态

Tips 8: Vim中的批量注释取消注释

法一:使用Ctrl+V进入visual block模式

按Ctrl+V进入visual block模式,选中要注释的行,

然后按I(大写的I)进行行首插入模式,输入//(C++)或者#(python),

按ESC退出行首插入模式,被选中的行所有行首都被添加了注释//(C++)或者#(python)

如果要取消注释,按Ctrl+V进入visual block模式,选中每行行首的注释//,注意这两个斜杆都得选中,

然后按d(小写d),这样所有注释行的行首//都会被删除

法二:使用替换功能

举例,在第1到第11行的行首添加注释//,使用下面的命令 ,这个时候使用井号(#)作为分隔符。

,11s#^#//#g

如果想取消上面所做的注释,可以使用下面的命令。

,11s#^//##g

举例,在第1到11行添加注释#,可以使用下面的命令,这个时候斜杠(/)是分隔符。

,11s/^/#/g

如果想取消上面所做的注释,可以使用下面的命令。

,11s/^#//g

Vim使用技巧汇总的更多相关文章

  1. VIM -小技巧汇总

    一 代码自动对齐: 1 命令行模式下先输入gg 然后按=后输入大写的G,这样整个文件的代码就对齐了. 二 选中多行缩进 1.按v进入visual状态,选择多行,用>或<缩进或缩出 2. 通 ...

  2. [No0000191]7种提高工作效率的Vim操作-Vim使用技巧(6)

    Vim一直被认为是一种非常高效的文本编辑器,但是对于普通用户来说,很难在入门的时候就体会到Vim的所谓高效性. 本文介绍7种提高你工作效率和生产力的Vim使用技巧,主要集中在对某个文件范围内的特定目标 ...

  3. vim 使用技巧记录

    vim 使用技巧记录 1.批量注释与取消注释 命令格式:起始行号,结束行号s#^#//#g 例如: 注释代码3到15行,"//"可以是其他的"" :3,15s# ...

  4. Vim 常用技巧:

    Vim 常用技巧: 将回车由默认的8个空格改为4个空格: 命令:set sw=4 修改tab为4空格: 命令:set ts=4 设置每一级的缩进长度: 命令:set shiftwidth=4 设置文件 ...

  5. vim常用命令汇总

    vim常用命令汇总: http://www.cnblogs.com/softwaretesting/archive/2011/07/12/2104435.html 定位 本行第一个字符 ctrl+$ ...

  6. ###《VIM实用技巧》

    ###<VIM实用技巧> #@author: gr #@date: 2015-11-20 #@email: forgerui@gmail.com <VIM实用技巧>阅读笔记. ...

  7. 无插件Vim编程技巧

    无插件Vim编程技巧 http://bbs.byr.cn/#!article/buptAUTA/59钻风 2014-03-24 09:43:46 发表于:vim  相信大家看过<简明Vim教程& ...

  8. 移动平台3G手机网站前端开发布局技巧汇总

    移动平台3G手机网站前端开发布局技巧汇总 作者:前端开发-武方博   发布:2011-05-10 09:11   分类:移动开发   阅读:120,618 views   7条评论     您或许正在 ...

  9. 移动平台WEB前端开发技巧汇总(转)

    最近我很关注移动前端的知识,但做为一个UI设计师和web前端工作人员没有这个工作环境接触,做为门外汉,网上系统的知识也了了,一直有种雾里看花的感觉,见到本文,我自己是奉为经典.所以我分享之后又专门打笔 ...

随机推荐

  1. LeetCode算法题-Degree of an Array(Java实现)

    这是悦乐书的第294次更新,第312篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第162题(顺位题号是697).给定一个由正整数组成的非空数组,该数组的度数被定义为任意 ...

  2. Unknown column 'user_uid' in 'field list' sql错误解决过程

    在idea中运行一直有错,找了好多个地方都找不到,以为是我的字段名字写错了,然而都是对的. 把错误的这个字段删了再打一遍就好了,

  3. ElasticSearch(七):Java操作elasticsearch基于smartcn中文分词查询

    package com.gxy.ESChap01; import java.net.InetAddress; import org.elasticsearch.action.search.Search ...

  4. MySQL之视图、触发器、事务、存储过程、函数

    一 视图 视图是一个虚拟表(非真实存在),其本质是[根据SQL语句获取动态的数据集,并为其命名],用户使用时只需使用[名称]即可获取结果集,可以将该结果集当做表来使用. 使用视图我们可以把查询过程中的 ...

  5. [Oracle]Sqlplus 中使用 new_value

    通过再sqlplus 中使用 new_value,可以把从表中查询出来的值,放置到 变量中.然后使用变量时,类似与宏定义一样,就可以像使用表中字段一样方便. 这使得sqlplus 的脚本具备和pl/s ...

  6. 基于 HTML5 的 WebGL 3D 档案馆可视化管理系统

    前言 档案管理系统是通过建立统一的标准以规范整个文件管理,包括规范各业务系统的文件管理的完整的档案资源信息共享服务平台,主要实现档案流水化采集功能.为企事业单位的档案现代化管理,提供完整的解决方案,档 ...

  7. 不要再被骗了------QQ盗号原理大揭秘

    前言 相信大家在懵懂无知的时候都有被盗号的经历吧,QQ胡乱的加好友,突然有个好友传了个文件给你,打开以后发现QQ竟然显示强制下线,然后再也上不去了QAQ,很明显,QQ号被人盗了.最近也是很多小伙伴私信 ...

  8. Mysql数据的增删改查

    一 介绍 MySQL数据操作: DML 在MySQL管理软件中,可以通过SQL语句中的DML语言来实现数据的操作,包括 使用INSERT实现数据的插入 UPDATE实现数据的更新 使用DELETE实现 ...

  9. 微信JSSDK使用步骤(用于在微信浏览器中自定义分享,分享到朋友圈,拍照,扫一扫等功能)

    一.使用JSSDK需要一个公众号(需要认证!): (1).把自己项目的服务器地址输入. (2).把MP_verify_m7Qp93BAuIGDWRVO.txt  文件下载下来,放到该服务器域名指向的根 ...

  10. vue.js实战——vue元素复用

    Vue在渲染元素时,出于效率考虑,会尽可能地复用已有的元素而非重新渲染,例: <!DOCTYPE html> <html lang="en"> <he ...