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构建的附加扩展的 ...
随机推荐
- Sencha Touch 2.1学习图表Chart概述
Extjs.chart提供了可视化展现数据的能力,每个图表可以绑定到数据模型Ext.data.Store上, 并随着数据的变换可以自动的更新图表 一个图表对象包括图标风格.坐标(axes).序列(se ...
- sql中对数值四舍五入取小数点后两位数字
用:cast(value as decimal(10,2)) 来实现.
- Java中处理线程同步
引自:http://blog.csdn.net/aaa1117a8w5s6d/article/details/8295527和http://m.blog.csdn.net/blog/undoner/1 ...
- 2.2-VLAN间路由
2.2-VLAN间路由 第一代LAN间的通信: 不支持VLAN的交换机:由一个路由器和几个交换机组成,每个交换机的所有端口都同属于一个网段/LAN:在路由器上有几个网段就有几个与之相对 ...
- java 效率编程 的一些小知识点
1.在程序中若出现字符串连接的情况.请使用StringBuffer取代String,这样能够降低多次创建String以及垃圾回收所带来的内存消耗 2.尽量使用局部变量. 调用方法时传递的參数以及调用中 ...
- 【Android开发VR实战】三.开发一个寻宝类VR游戏TreasureHunt
转载请注明出处:http://blog.csdn.net/linglongxin24/article/details/53939303 本文出自[DylanAndroid的博客] [Android开发 ...
- linux下多线程的调试
多线程调试的基本命令(均在gdb命令行使用): info threads ---- 显示当前可调试的全部线程.每个线程都有自己的线程ID,显示结果中前面有*的表示当前调试的线程. eg: ...
- Java-CyclicBarrier的简单样例
内容:一个主任务等待两个子任务,通过CyclicBarrier的await()实现.此Runnable任务在CyclicBarrier的数目达到后,全部其他线程被唤醒前被运行. public clas ...
- Django网站管理--ModelAdmin
class AuthorAdmin(admin.ModelAdmin): list_display=('name', 'age', 'sex') #指定要显示的字段 search_fields=('n ...
- 利用jquery将页面中所有目标为“#‘的链接改为其他URL
有一张页面草稿,开始时为了方便,里面差不多所有的<a>都指向了"#".现在要修改为另一个地址,难道要全部修改吗?用jquery 改改就好.代码如下: <scrip ...
