Vim入门基础知识集锦
1. 简介Vim(Vi[Improved])编辑器是功能强大的跨平台文本文件编辑工具,继承自Unix系统的Vi编辑器,支持Linux/Mac OS X/Windows系统,利用它可以建立、修改文本文件。进入Vim编辑程序,可以在终端输入下面的命令:
其中 将Vim改造为强大的IDE—Vim集成Ctags/Taglist/Cscope/Winmanager/NERDTree/OmniCppComplete http://www.linuxidc.com/Linux/2017-02/140282.htm 2. 编辑模式Vim编辑方式的主要用途是在被编辑的文件中移动光标的位置。一旦光标移到到所要的位置,就可以进行剪切和粘贴正文块,删除正文和插入新的正文。当完成所有的编辑工作后,需要保存编辑器结果,退出编辑程序回到终端,可以发出 2.1 跳转如果键盘上有上、下、左、右箭头的导航键,就由这些键来完成光标的移动。另外,可以用下面的键完成同样的 按字符移动 功能:
上面这4个键将光标位置每次移动一行或一个 字符 。Vim还提供稍大范围移动光标的命令:
更大范围的移动:
在屏幕中找到需要的 一页 时,可以用下面的命令快速移动光标:
同样需要注意字母的大小写。
2.2 搜索匹配和许多先进的编辑器一样,Vim 提供了强大的字符串搜索功能。要查找文件中指定字或短语出现的位置,可以用Vim直接进行搜索,而不必以手工方式进行。搜索方法是:键入字符
无论搜索方向如何,当到达文件末尾或开头时,搜索工作会循环到文件的另一端并继续执行。 2.3 替换和删除Vim常规的删除命令是
其他常用的删除命令有:
Vim常规的替换命令有
2.4 复制粘贴从正文中删除的内容(如字符、字或行)并没有真正丢失,而是被剪切并复制到了一个内存缓冲区中。用户可将其粘贴到正文中的指定位置。完成这一操作的命令是:
如果缓冲区的内容是字符或字,直接粘贴在光标的前面或后面;如果缓冲区的内容为整行正文,执行上述粘贴命令将会粘贴在当前光标所在行的上一行或下一行。 有时需要复制一段正文到新位置,同时保留原有位置的内容。这种情况下,首先应当把指定内容复制(而不是剪切)到内存缓冲区。完成这一操作的命令是:
2.5 撤销和重复在编辑文档的过程中,为消除某个错误的编辑命令造成的后果,可以用撤消命令。另外,如果用户希望在新的光标位置重复前面执行过的编辑命令,可用重复命令。
3. 插入模式3.1 进入插入模式在编辑模式下正确定位光标之后,可用以下命令切换到插入模式:
3.2 退出插入模式退出插入模式的方法是,按 4. 命令模式在Vim的命令模式下,可以使用复杂的命令。在编辑模式下键入 4.1 打开、保存、退出在已经启动的Vim中打开一个文件需要用
保存当前编辑的文件需要用
将当前文件另存为
在编辑模式下可以用
保存并退出则可以讲两条命令结合起来使用(注意命令顺序,先保存,后退出):
4.2 行号与文件编辑中的每一行正文都有自己的行号,用下列命令可以移动光标到指定行(效果与 编辑模式 下的
命令模式下,可以规定命令操作的行号范围。数值用来指定绝对行号;字符“.”表示光标所在行的行号;字符符“$”表示正文最后一行的行号;简单的表达式,例如“.+5”表示当前行往下的第 5 行。例如:
在命令模式下,允许从文件中读取正文,或将正文写入文件。例如:
4.3 字符串搜索在 编辑模式 讲过字符串的搜索,此处的 命令模式 也可以进行字符串搜索,给出一个字符串,可以通过搜索该字符串到达指定行。如果希望进行正向搜索,将待搜索的字符串置于两个
4.4 Vim中的正则表达式当给Vim指定搜索字符串时,可以包含具有特殊含义的字符。包含这些特殊字符的搜索字符串称为正则表达式(Regular Expressions)。例如,要搜索一行正文,这行正文的开头包含
因为它只找出在行中任意位置包含
下表给出大多数特殊字符和它们的含义:
简单介绍这么多,正则表达式知识可以参考 正则表达式基础语法摘要 http://www.linuxidc.com/Linux/2016-11/136907.htm 正则表达式语法速查表 http://www.linuxidc.com/Linux/2017-01/139561.htm 另外,进阶的Vim正则表达式还有对Magic 模式的介绍,可以参考 4.5 正文替换利用
从上述替换命令可以看到: 另外一个实用的命令,在Vim中统计当前文件中字符串
4.6 删除正文在命令模式下,同样可以删除正文中的内容。例如:
总之,Vim的初级删除命令是用 4.7 恢复文件Vim 在编辑某个文件时,会另外生成一个临时文件,这个文件的名称通常以 4.8 选项设置为控制不同的编辑功能,Vim 提供了很多内部选项。利用
常见的功能选项包括:
4.9 Shell切换当处于编辑的对话过程中时,可能需要执行一些Linux命令。如果需要保存当前的结果,退出编辑程序,再执行所需的Linux命令,然后再回头继续编辑过程,就显得十分累赘。如果能在编辑的环境中运行Linux命令就要省事得多。在Vim中,可以用下面的命令来做到这一点:
这称为Shell切换。它允许执行任何可以在标准的Shell提示符下执行的命令。当这条命令执行完毕,控制返回给编辑程序。又可以继续编辑对话过程。 4.10 分屏与标签页分屏普通的Vim模式,打开一个Vim程序只能查看一个文件,如果想同时查看多个文件,就需要用到Vim分屏与标签页功能。
另外,也可以在终端里启动vim时就开启分屏操作:
理论上,一个Vim窗口,可以分为多个Vim屏幕,切换屏幕需要用键盘快捷键,命令分别有:
即键盘上的
标签页Vim的标签(Tab)页,类似浏览器的标签页,一个标签页打开一个Vim的窗口,一个Vim的窗口可以支持N个分屏。
如果要在新建标签页的同时打开一个文件,则可以在命令后面直接附带文件路径:
Vim中的每个标签页有一个唯一的数字序号,第一个标签页的序号是
4.11 与外部工具集成Vim可以与许多外部程序集成,功能十分强大,比如 diffLinux命令
即可在Vim里分屏显示两个文件内容的对比结果,对文件内容差异部分进行高亮标记,还可以同步滚动两个文件内容,更可以实时修改文件内容,方便程度和用户体验大大提高。
如果直接给
除了在终端里开启vimdiff 功能,也可以在打开Vim后,在Vim的命令模式输入相关命令来开启
如果你现在已经开启了一个文件,想Vim帮你区分你的文件跟
通过
看完diff,用 sortLinux命令 xxd
Vim 的
即可看到二进制模式显示出来的文本,看起来像这样:
然后就可以在二进制模式下编辑该文件,编辑后保存,然后用下面命令从二进制模式转换到普通模式:
另外,也可以调整二进制的显示模式,默认是 2 个字节为一组,可以通过
5. Vim配置最初安装的Vim功能、特性支持比较少,用起来比较费劲,想要稍微“好用”一点,需做一些初步的配置。Vim的配置主要分为Vim本身特性的配置和外部插件的配置两部分。 6. Vim插件Vim“编辑器之神”的称号并不是浪得虚名,然而,这个荣誉的背后,或许近半的功劳要归功于强大的插件支持特性,以及社区开发的各种各样功能强大的插件。 平时开发人员常用插件主要是目录(文件)查看和管理、编程语言缩进与自动补全、编程语言Docs支持、函数跳转、项目管理等等。 Linux下编译安装Vim8.0 http://www.linuxidc.com/Linux/2017-01/139210.htm Ubuntu 16.04 下 Vim安装及配置 http://www.linuxidc.com/Linux/2017-01/139564.htm Vim编辑器配置 http://www.linuxidc.com/Linux/2016-09/135460.htm Vim编辑器使用 http://www.linuxidc.com/Linux/2016-09/135043.htm Linux文本编辑器Vim的一般用法 http://www.linuxidc.com/Linux/2016-11/137263.htm 把Vim打造成优秀的C++ IDE http://www.linuxidc.com/Linux/2016-06/132262.htm Ubuntu 14.04升级Vim7.4到8.0 http://www.linuxidc.com/Linux/2016-11/136816.htm Vim安装youcompleteme自动补全插件 http://www.linuxidc.com/Linux/2016-11/137665.htm Linux Vim编辑器使用简单讲解 http://www.linuxidc.com/Linux/2016-12/138930.htm |
Vim入门基础知识集锦的更多相关文章
- Vim入门基础
公司新员工学习有用到,Vim官网的手册又太大而全,而网上各方资料要么不全面,要么不够基础.在网上搜集各方资料,按照自己的框架整理一份Vim入门基础教程,分享出来.特点是偏向基础,但对入门者来说足够全面 ...
- USB入门基础知识(转)
源:USB入门基础知识 相关名词: 主机(Host) 设备(Device) 接口(Interface) 管道(Pipe) 管道是主机与设备端点数据传输的连接通道,代表了主机的数据缓冲区与设备端点之间交 ...
- Linux入门基础知识
注:内容系兄弟连Linux教程(百度传课:史上最牛的Linux视频教程)的学习笔记. Linux入门基础知识 1. Unix和Linux发展历史 二者就像父子关系,当然Unix是老爹.1965年,MI ...
- React Native 入门基础知识总结
中秋在家闲得无事,想着做点啥,后来想想,为啥不学学 react native.在学习 React Native 时, 需要对前端(HTML,CSS,JavaScript)知识有所了解.对于JS,可以看 ...
- Greenplum入门——基础知识、安装、常用函数
Greenplum入门——基础知识.安装.常用函数 2017年10月08日 22:03:09 在咖啡里溺水的鱼 阅读数:8709 版权声明:本文为博主原创,允许非商业性质转载但请注明原作者和出处 ...
- 1)Linux程序设计入门--基础知识
)Linux程序设计入门--基础知识 Linux下C语言编程基础知识 前言: 这篇文章介绍在LINUX下进行C语言编程所需要的基础知识.在这篇文章当中,我们将 会学到以下内容: 源程序编译 Makef ...
- React入门---基础知识-大纲-1
-----------------在慕课网学习react入门笔记-------------- ---------博主边学边记录,手把手进行学习及记录---------- --------------- ...
- PHP基础入门(二)---入门基础知识必备
前言 在上一章中,我们初步了解了PHP的网页基础和PHP的入门基础,今天继续给大家分享更多有关PHP的知识. 理论知识看起来可能比较枯燥一些,但是我们的实践(敲代码)毕竟离不开它. 只有理论与实践相结 ...
- CodeMix入门基础知识
CodeMix在线订购年终抄底促销!火爆开抢>> CodeMix入门 CodeMix是一个Eclipse插件,可以直接从Eclipse访问VS Code和为Code OSS构建的附加扩展的 ...
随机推荐
- How do I drop a MongoDB database, from the command line?
mongo <dbname> --eval "db.dropDatabase()" > use mydb; > db.dropDatabase(); mon ...
- hdu 4971 多校10最大权闭合图
/* 很明显的最大权闭合图题 */ #include<stdio.h> #include<string.h> #include<queue> using names ...
- 洛谷——P1034 矩形覆盖
https://www.luogu.org/problem/show?pid=1034 题目描述 在平面上有 n 个点(n <= 50),每个点用一对整数坐标表示.例如:当 n=4 时,4个点的 ...
- Java web如何定位工程路径
一 项目路径的获得 System.getProperty("user.dir"); 可以获得当前用户的工作目录,即在哪个地方启动的java程序,返回就是当前目录 二 web项目根目 ...
- N天学习一个Linux命令之grep
前言任何系统都会出问题,出了问题一般怎么排查BUG?这个时候程序中记录的异常日志以及关键节点的日志就非常重要了,面对一大堆的日志文件,怎么找出我们需要的有用信息呢?linux中可以使用grep命令查找 ...
- 计算两个日期之间相差的年数月数天数(JS实现)
前言 如何计算年龄?我的第一直觉做法:(当前时间戳 - 出生时的时间戳)/ (365*86400) 所得结果向下取整.后来发现这种做法获得的结果不准确,不是多了一岁就是少了一岁,不能简单粗暴的这么处 ...
- php 数组 array()
定义和用法 array() 创建数组,带有键和值.如果在创建数组时省略了键,则生成一个整数键,默认从 0 开始,然后以 1 进行递增. 用 array() 创建一个数组,可使用 => 来分隔键和 ...
- keras 与tensorflow 混合使用
keras 与tensorflow 混合使用 tr:nth-child(odd) > td, .table-striped tbody > tr:nth-child(odd) > t ...
- XMPP基本内容简单介绍
即时通讯技术简单介绍 即时通讯技术(IM)支持用户在线实时交谈.假设要发送一条信息,用户须要打开一个小窗体,以便让用户及其朋友在当中输入信息并让交谈两方都看到交谈的内容.有很多的IM系统,如AOL I ...
- javascript正則表達式
定义一个正則表達式 能够用字面量 var regex = /xyz/; var regex = /xyz/i; 也能够用构造函数 var regex = new RegExp('xyz'); var ...