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构建的附加扩展的 ...
随机推荐
- 洛谷P3375【模板】KMP字符串匹配
题目描述 如题,给出两个字符串s1和s2,其中s2为s1的子串,求出s2在s1中所有出现的位置. 为了减少骗分的情况,接下来还要输出子串的前缀数组next. (如果你不知道这是什么意思也不要问,去百度 ...
- N天学习一个linux命令之netstat
用途 打印网络连接,路由表,网卡信息,假连接,组播成员信息 用法 1 显示网络连接信息 netstat [address_family_options] [--tcp|-t] [--udp|-u] [ ...
- JAVA 大数据
- Clojure:将两个list合并成一个map
假设我们有两个list,分别是: (def a [“one” “two” “three”]) (def b [1 2 3]) 我们要把它们合为一个键值对应的map,做法很简单: 1. 先将a和b合为一 ...
- Intellij Idea:创建带签名的APK
步骤如下: 1. 选择菜单Build -> Generate Signed APK… 2. 创建或选择已存在的Key Store(选择已存在的Key Store的话直接跳到第5步) 3. 输入K ...
- Linq查询datatable的记录集合
通过linq查询datatable数据集合满足条件的数据集 1.首先定义查询字段的变量,比方深度 string strDepth=查询深度的值: var dataRows = from datarow ...
- 利用Node.js对某智能家居server重构
原文摘自我的前端博客,欢迎大家来訪问 http://www.hacke2.cn 之前负责过一个智能家居项目的开发,外包重庆一家公司的.我们主要开发server监控和集群版管理. 移动端和机顶盒的远程通 ...
- HDU1024_Max Sum Plus Plus【滚动数组】
Max Sum Plus Plus Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others ...
- USACO money packageDP
裸0/1背包,就是从各种币种里面拿来凑足N元,求最多有多种方案.用dp[i][j]表示选前i个币种凑成j的方案数量 状态转移方程: dp[i][j] = dp[i- 1][j] j < c ...
- 从vs中删除自带的Microsoft Git Provider
https://researchaholic.com/2015/02/02/remove-the-microsoft-gitprovider-from-visual-studio-2013/ vs自带 ...