:syntax on  打开语法高亮

:syntax off  关闭语法高亮

vim有两套语法颜色方案,分别用于背景亮和背景暗时,当vim启动时它会尝试辨别背景并选择合适的颜色方案,但vim辨别背景时可能出错

  :set background?  查看background选项的值为多少

  :set background=light  将background选项的值设为light,也可设为dark,这样就可以让vim选用正确的颜色方案

vim会通过文件扩展名来识别文件类型,如果你的文件没有一个标准的扩展名那么vim就不能正确地将语法高亮显示

  :set filetype=c  这样就可以告诉vim你正在编辑的文件是C语言的源文件,也可以设置为其他类型

%  用于匹配括号,将光标置于左括号或右括号,按下%后光标就跳转到相对应的右括号或左括号,也可以匹配C语言的注释符号#ifdef等预处理指令

<<  将光标所在行向左缩进,在前面加一个数字就会缩进那么多行

>>  将光标所在行向右缩进,在前面加一个数字就会缩进那么多行

<  后接一个动作,会将从当前行到动作定位处的所有行都向左缩进

>  后接一个动作,会将从当前行到动作定位出的所有行都向右缩进

:set shiftwidth=4  设置每一次缩进的宽度,通常设置为4最具有可读性

:set tabstop=4  设置每个tab的宽度为4,这样就与shiftwidth保持一致

vim有多种缩进模式,主要有的三种:

  即cindent  使得vim会根据标准的C风格自动将程序进行缩进,在以#开头的行中,所有的缩进都被移除

  smartindent  使得vim会将每行都与它的前一行保持相同的缩进,如果它的前一行包含{或}那么会自动增加或减少一层缩进

  autoindent  使得vim会将每行都与它的前一行保持相同的缩进

在insert mode下,CRTL-D会使vim向左缩进

=  在viusal mode下会将选中的文本利用内部的格式化程序进行自动缩进,在normal mode下后接一个动作,将当前光标所在至动作定位处的所有文本自动缩进

在命令行用vimdiff命令打开两个或更多文件,就可以显示出这些文件的不同之处

  此时可以用:dp命令将当前文件的更改移动到另一个文件中,也可以用:do命令将另一个文件的更改移动到当前文件中

zf  在visual mode下选中文本后执行zf命令会将所选文本折叠起来,在normal mode下后接一个动作,将当前光标所在行至动作定位行的所有文本折叠

zo  将光标移动到折叠行上,执行zo会打开折叠

:set foldmethod=indent  会使vim自动将所有文本按照缩进进行折叠

zc  关闭一层折叠

zX  将缩进情况复位

zv  有时折叠会使光标所在的行被折叠起来,此时执行zv命令会令vim展开足够多行知道光标所在的那行显示出来

:set foldlevel=3  设置折叠层次,例如设置为3后,所有缩进了三个以上层次的文本都会被折叠,默认的foldlevel值为0

zm  将foldlevel减1,会使缩进的文本增加

zr  将foldlevel加1,会使缩进的文本减少

zR  直接取消折叠

zM  尽最大可能折叠

[CTRL-I  跳转到光标所在的词,从文件的开头进行搜索,包括#include所引入的文件

]CTRL-I  跳转到光标所在的词,从当前光标的位置开始搜索

gd  寻找光标所在变量的局部定义

gD  寻找光标所在变量的全局定义

[CTRL-D  寻找光标所在宏的第一次定义,#include所引入的文件也被搜索

]CTRL-D  寻找光标所在宏的下一次定义

[d  显示光标所在宏的第一次定义,#include所引入的文件也被搜索

]d  显示光标所在宏的下一次定义

[D  列出光标所在宏的所有定义

]D  列出光标所在宏的所有定义,从当前位置往后

>i{  先将光标放在{上,然后执行命令>i{,会将{ }内的文本全部向右缩进

i}  先将光标放在{上,然后按v进入visual mode,再执行i}会选中{ }中的文本,之后执行>,也可以将{ }内的文本全部向右缩进

K键  将光标所在的词作为主题,执行操作系统的man命令

转载于:https://www.cnblogs.com/dreamtrue13/p/6640417.html

vim编辑器初级(七)相关推荐

  1. linux软件管理(Vim编辑器使用) ——(七)

    windows : .exe     安装 .卸载 安装:  mysql.exe  cc.exe 卸载 : 该软件唯一的标识  ,包名   alibaba android : *.apk   卸载 包 ...

  2. 6.Linux中vi/vim编辑器详解

    文章目录 前言 一.vim/vi 介绍 二.vi/vim学习图(初级) 三.文本编辑(状态)概览 四.使用vi打开文本的方式 五.命令模式 1.进入插入模式(进行文本编辑) 2.从插入模式切换为命令行 ...

  3. kali linux 里vim如何使用_Kali Linux的vi编辑器/vim编辑器使用方法

    转载声明:本文为转载文章 Kali Linux系统的vi编辑器/vim编辑器的使用和CentOS有很多不同.基本使用方法如下 1.vi的基本概念 基本上vi可以分为三种状态,分别是命令模式(comma ...

  4. linux vim编辑器的用法

    vim编辑器 文本编辑器,字处理器 ASCII nano, sed vi: Visual Interface vim: VI iMproved 全屏编辑器,模式化编辑器 vim模式: 编辑模式(命令模 ...

  5. Linux01-Linux文本编辑器vim编辑器深入详解22

    一.vim编辑器 1.文本编辑器,字处理器: 2.vi:Visual Interface: 3.vim:VI iMproved,是vi的增强功能: 4.全屏编辑器:vi.vim.nano; 5.vim ...

  6. vim 编辑器命令整理

    文章目录 一.基本使用流程 二.普通命令模式 (一)切换到插入模式(编辑/写入/输入) (二)切换到可视模式(选择文本模式) (三)切换至底行命令模式 (四)替换/修改 1. 切换到替换模式 2. 替 ...

  7. Linux——vim编辑器详解

    vim编辑器 文本编辑器,字处理器 ASII nano sed vi:visual Interface vim VI improved 全屏编辑器,模式化编辑器 编辑-->输入 i:在当前光标所 ...

  8. linux vim修改字符串,Linux系统vi(vim)编辑器命令说明

    Linux系统vi(vim)编辑器命令说明 刘大喵 • 2019 年 02 月 06 日 vi(vim)是上Linux非常常用的代码编辑器,很多Linux发行版都默认安装了vi(vim).vi(vim ...

  9. 编辑器之神——vim编辑器

    编辑器之神--vim编辑器 一.vi介绍 Vi编辑器是所有Unix及Linux系统下标准的编辑器,类似于windows系统下的notepad(记事本)编辑器,由于在Unix及Linux系统的任何版本, ...

最新文章

  1. android+3g,不到900的Android+3G手机 TCL A906评测
  2. 传递给beanshell的参数_jmeter基础之断言及参数的关联性
  3. but was actually of type 'com.sun.proxy.$Proxy**'的两种解决方法
  4. nssl1438-战略威慑【枚举,树的直径】
  5. android超级管理员权限作用,Android获取超级管理员权限的实现
  6. .view-content:overflow:hidden 大错误
  7. 中国农业种植施肥机械行业市场供需与战略研究报告
  8. [LeetCode]Ugly Number
  9. Atitit 解析m4a文件的元数据标签音乐名,歌手 专辑 年代等信息 java版本 目录 1.1. 自己解析mp4 m4a结构 1 1.2. 格式返回 1 1.3. /bookmarksHtmlE
  10. 23位子网掩码是多少_24 28 30 位的子网掩码是多少
  11. matlab 画三维图像
  12. 机器学习-决策树算法
  13. APICloud前端框架
  14. word中如何设置奇偶页不同的页眉和页脚,怎么从指定页开始加页码
  15. 上海交通大学python实践教程答案_python实践教程答案(求python课后习题答案)
  16. ProM安装以及配置
  17. kali永久提root权限
  18. 2021 年Python最新学习软件及文档资料分享
  19. 微信注册筛选软件 微信开通筛选技术
  20. java内存泄漏怎么检测_JAVA内存泄漏原因和内存泄漏检测工具

热门文章

  1. devc++鼠标变成了光标_Excel填充别再用鼠标拖拉了!用这4个方法,效率至少高10倍!...
  2. xampp mysql 查询很慢_如何开启mysql的慢查询机制
  3. python if else 必须同时出现吗,Python:Inline if语句else什么也不做
  4. 【WebRTC---源码篇】(三)Windows/Linux音视频采集封装模块
  5. java socket优化_Java Socket编程代码优化
  6. C语言 | 二维数组
  7. Linux C语言结构体
  8. centos7.4编译mysql5.6,centos7编译安装mysql5.6
  9. 里氏替换原则_代码需要有单一职责,还要开闭,里氏替换又是什么鬼?
  10. mysql parameter_C#MySqlParameter问题