趁年轻,赶快学一波vim

介绍

Vim是一个相似于Vi的著名的功能强大、高度可定制的文本编辑器,在Vi的基础上改进和增长了不少特性。 VIM是自由软件。 Vim广泛被推崇为类Vi编辑器中最好的一个,事实上真正的劲敌来自Emacs的不一样变体。1999 年Emacs被选为Linuxworld文本编辑分类的优胜者,Vim屈居第二。但在2000年2月Vim赢得了Slashdot Beanie的最佳开放源代码文本编辑器大奖,又将Emacs推至二线, 总的来看, Vim和Emacs在文本编辑方面都是很是优秀的。spring

使用

首先咱们须要先安装vimshell

brew install vim // mac安装vim
apt-get install vim // ubuntu安装vim
复制代码

windows用户请前往搜索引擎搜索vim下载安装编程

本文经过vimtutor进行vim的学习,安装完vim后在终端输入vimtutor便可ubuntu

vim模式

命令模式: 用于输入指令,如:保存、运行、切换标签、切割屏幕等 插入模式: 也即编辑模式,用于编辑文本 可视模式: 至关于高亮选取文本后的正常模式 正常模式: 用于查看文本,也可复制、粘贴、撤销、重作等vim

移动光标

在正常模式键可用h、j、k、l来分别代替←、↓、↑、→键来移动光标,对于初学者来讲,这种移动光标的方式十分不习惯,可是用这种方式移动光标在编程的过程当中能够不用频繁的移动右手windows

注意:当某一行为空时,h、l没法进行左右的移动bash

若是您不敢肯定您所按下的字母,请按下键回到正常(Normal)模式。而后再次从键盘输入您想要的命令。编辑器

vim的进入和退出

恩,我已经玩熟了光标操做,这个玩意儿太方便啦,咦,可是我怎么退出vim呢学习

一、按<ESC>键,肯定你处于正常模式。ui

二、而后键入:q, 而后按回车,但这样作并不会将你修改的内容保存。

三、键入:wq,能够在退出的同时保存你所修改的内容。

四、对,你没猜错,若是想只保存不退出,键入:w就好了

文本编辑之删除

那么我想要在正常模式下删除某个内容怎么办呢,很简单,你只须要用咱们所学的移动光标方式将光标移动到你想要删除的文本位置,按下x键便可

提示:当我对某个操做不满意,想要撤回的时候,只要键入u便可

文本编辑之插入

哇,我发现文本的内容不是我想要的,我要修改他,但是在正常模式下我好像没法编辑它诶,怎么办。

i进入插入模式,在这个模式下,你能够随意的修改文本了,可是你不能再用h、j、k、l的方式来移动光标了,当你修改完成后,能够按<ESC>返回正常模式

文本编辑之添加

啊?这个插入模式是什么鬼,我怎么只能往光标前添加内容,若是我想在本来的内容后添加新的内容怎么办?

你能够在正常模式下,按a键,而后输入你要添加的内容,一样的,在输入完成后按<ESC>返回正常模式。

删除类命令

以前的删除方法好麻烦啊,难道我删除一大串内容要一个一个移动光标,而后按一次又一次的x吗。固然不是

许多改变文本的命令都由一个操做符和一个动做构成。

使用删除操做符 d 的删除命令的格式以下:

​ d motion

一个简短的动做列表:

​ w - 从当前光标当前位置直到下一个单词起始处,不包括它的第一个字符。 e - 从当前光标当前位置直到单词末尾,包括最后一个字符。 $ - 从当前光标当前位置直到当前行末。

简单来讲,若是我想要删除一个单词只须要键入dw,若是我键入d$,那么这一整行的内容都被我删了

使用计数指定动做

假如vim打开的文件中某一个行有这样一句的内容

This is just a line with words you can move around in.

个人光标在开头的T位置

  • 键入一次e,个人光标位置就会出如今This这个单词的末尾s处,键入两次,就会出如今下一个单词的末尾。
  • 键入w,就会出如今下一个单词的开头,屡次键入与e的效果雷同。
  • 键入0,能使个人光标出如今行首。
  • 键入$,能使个人光标出如今行末。

使用计数已删除更多

上面已经提到过删除操做符和动做的组合,你能够在组合中动做以前插入一个数字以删除更多

​ d number(数字) motion

好比键入d2w,咱们就能够删除光标所在位置起的两个单词

操做整行

  • 以前用d$命令删除整行内容后,咱们会发现这一行变成了一个空行,因此可能用清除整行内容来称呼它更加合适

  • 若是咱们要删除当前行,能够键入dd命令

  • 你也能够键入2dd,来删除当前行起的两行

撤销类命令

  • 以前有提到过,若是你操做失误,能够键入u来撤销最后一次执行的命令
  • 若是你嫌一次一次的撤销太麻烦,你能够键入U,来使当前行恢复到初始状态
  • 你也能够键入CTRL-R(先按着CTRL键不放,再键入R)来重作撤销的命令

置入类命令

以前所说的dd命令删除了一整行内容,其实呢,他并无它并无消失,而是保存在了vim的寄存器中。

  • 当使用dd命令删除了某一行内容后,光标移到某一行,键入p,刚刚删除掉的那一行内容就会粘贴到当前行的下一行了

替换类命令

当咱们发现某处出错时,咱们能够没必要先删除再插入来修改错误,这样子太麻烦,咱们可使用替换命令。

以下两行,第一行有错误,第二行是正确的,咱们想要将第一行单词出错的地方修正能够怎么作呢

Whan this lime was tyoed in, someone presswd some wrojg keys!

When this line was typed in, someone pressed some wrong keys!

  • 将光标移到所要修改的字符处,键入p,而后输入所要替换的字符便可

更改类命令

一样的咱们也能够更改整个单词,而不是一个字符

  • 键入cw,而后输入正确的内容,咱们就能够更改整个单词了。

使用c更改更多

更改类操做符的工做方式跟删除类是一致的。操做格式是: ​ c [number] motion

动做参数(motion)也是同样的,好比 w 表明单词,$表明行末等等

  • 除了上一节所说的cw,我也能够键入c$,用来修改当前字符到行末的全部内容

定位及文件状态

输入 CTRL-G 显示当前编辑文件中当前光标所在行位置以及文件状态信息。输入大写 G 则直接跳转到文件中的某一指定行

提示:切记要先通读本节内容,以后才能够执行如下步骤!!!

  1. 按下 CTRL 键不放开而后按 g 键。咱们称这个键组合为 CTRL-G。您会看到页面最底部出现一个状态信息行,显示的内容是当前编辑的文件名和文件中光标位置。请记住行号,它会在步骤3中用到。

  2. 输入大写 G 可使得当前光标直接跳转到文件最后一行。输入 gg 可使得当前光标直接跳转到文件第一行。

  3. 输入您曾停留的行号,而后输入大写 G。这样就能够返回到您第一次按下CTRL-G 时所在的行了。

搜索类命令

输入 / 加上一个字符串能够用以在当前文件中查找该字符串。

一、 在正常模式下输入 / 字符。您此时会注意到该字符和光标都会出如今屏幕底部,这跟 : 命令是同样的。

二、接着输入你要查找的内容,而后按回车,就会查找到您所输入的字符串

三、要查找同上一次的字符串,只须要按 n 键。要向相反方向查找同上一次的字符串,请输入大写 N 便可。

四、如想逆向查找字符串,请使用 ? 代替 / 进行。

五、要回到您以前的位置按 CTRL-O (按住 Ctrl 键不放同时按下字母 o)。重复按能够回退更多步。CTRL-I 会跳转到较新的位置。

提示:若是查找已经到达文件末尾,查找会自动从文件头部继续查找,除非'wrapscan' 选项被复位。

配对括号的查找

输入%能够查找配对的字符串

*当你的光标位置在某一个括号上,键入%,你的光标就会跳到与之配对的括号位置了,若是再次键入,光标就会调回配对的第一个括号处

在程序调试时,这个功能用来查找不配对的括号是颇有用的。

替换命令

假若有这么一行字符串

thee best time to see thee flowers is in thee spring.

  • 当我键入:s/thee/the <回车>,那么该行的第一thee就被我替换成了the
  • 若是想将全部的thee替换,能够键入:s/thee/the/g
  • 要替换两行之间出现的每一个匹配串,请 输入 :#,#s/old/new/g 其中 #,# 表明的是替换操做的若干行中首尾两行的行号。 输入 :%s/old/new/g 则是替换整个文件中的每一个匹配串。 输入 :%s/old/new/gc 会找到整个文件中的每一个匹配串,而且对每一个匹配串提示是否进行替换。

在vim内执行外部命令的方法

再用vim编程的时候,若是我想输入一个外部命令怎么办,难道我还须要新建个终端窗口吗?固然不须要

一、 按下咱们所熟悉的 : 命令使光标移动到屏幕底部。这样您就能够输入一行命令了。

二、 接着输入感叹号 ! 这个字符,这样就容许您执行外部的 shell 命令了。

三、 咱们以 ls 命令为例。输入 !ls <回车> 。该命令就会列举出您当前目录的内容,就如同您在命令行提示符下输入 ls 命令的结果同样。若是 !ls 没起做用,您能够试试 :!dir 看看。

关于保存文件的更多信息

要将对文件的改动保存到文件中,请输入 :w FILENAME 。

一、 输入 :!dir 或者 :!ls 获知当前目录的内容。您应当已知道最后还得敲<回车> 吧。

二、 选择一个未被用到的文件名,好比 TEST。

三、 接着输入 :w TEST (此处 TEST 是您所选择的文件名。)

四、 该命令会以 TEST 为文件名保存整个文件 (Vim 教程)。为了验证这一点,请再次输入 :!dir:!ls 查看您的目录列表内容。

一个具备选择性的保存命令

要保存文件的部份内容,请输入 v motion :w FILENAM

一、移动光标到某一行

二、键入v,将光标移到下面几行,您会发现,以前的文本被高亮了

三、而后键入:,您将看到屏幕底部会出现 :'<,'> 。

四、如今请输入 w TEST,其中 TEST 是一个未被使用的文件名。确认您看到了 :'<,'>w TEST 以后按 <回车> 键。

五、这时 Vim 会把选中的行写入到以 TEST 命名的文件中去。使用 :!dir:!ls确认文件被正确保存。此次先别删除它!咱们在下一讲中会用到它

按 v 键使 Vim 进入可视模式进行选取。您能够四处移动光标使选取区域变大或变小。接着您可使用一个操做符对选中文本进行操做。例如,按 d 键会删除选中的文本内容。

提取和合并文件

要向当前文件中插入另外的文件的内容,请输入 :r FILENAME

一、将光标移到新的一行

提示:步骤2以后您将看到第五讲第三节的文字,请届时往下移动以再次看到本讲内容

二、接着经过命令 :r TEST 将前面建立的名为 TEST 的文件提取进来。您所提取进来的文件将从光标所在位置处开始置入

三、为了确认文件已经提取成功,移动光标回到原来的位置就能够注意有两份上一讲的内容,一份是原始内容,另一份是来自文件的副本。

您还能够读取外部命令的输出。例如, :r !ls 能够读取 ls 命令的输出,并把它放置在光标下面。

打开类命令

输入 o 将在光标的下方打开新的一行并进入插入模式。

  • 当光标在任意行时,键如o,能够打开新的一行并进入插入模式,您能够写入新的内容,写入完成后按<ESC>返回正常模式。

附加类命令

输入 a 将可在光标以后插入文本

另一个置换类命令的版本

输入大写的 R 可连续替换多个字符。

假若有以下两个字符串

Adding 123 to xxx gives you xxx. Adding 123 to 456 gives you 579.

  • 您能够将光标移到第一句的xxx处,而后键入R,进行连续的输入,知道内容与第二句类似,按ESC进入正常模式,将光标移到下个xxx处,重复上述操做,这样上下两个字符串就相等啦。

复制粘贴文本

使用操做符 y 复制文本,使用 p 粘贴文本

一、首先将光标移到要复制的内容开头。

二、键入v进入可视模式。

三、移动光标,将要复制的内容高亮

四、键入y抽离文本

五、将光标移动到你但愿复制的位置,键入p粘贴

设置类命令的选项

一、 要查找单词 ignore 可在正常模式下输入 /ignore <回车>。要重复查找该词,能够重复按 n 键。

二、 而后设置 ic 选项(Ignore Case,忽略大小写),请输入: :set ic

三、 如今能够经过键入 n 键再次查找单词 ignore。注意到 Ignore 和 IGNORE 如今也被找到了。

四、 而后设置 hlsearch 和 incsearch 这两个选项,请输入: :set hls is

五、 如今能够再次输入查找命令,看看会有什么效果:/ignore <回车>

六、 要禁用忽略大小写,请输入: :set noic

提示:要移除匹配项的高亮显示,请输入: :nohlsearch 提示:若是您想要仅在一次查找时忽略字母大小写,您可使用 \c:/ignore\c <回车>

获取帮助信息

Vim 拥有一个细致全面的在线帮助系统。要启动该帮助系统,请选择以下三种方法之一:

  • 按下<HELP>键 (若是键盘上有的话)
  • 按下 <F1> 键 (若是键盘上有的话)
  • 输入 :help <回车>

请阅读帮助窗口中的文字以了解帮助是如何工做的。

  • 输入 CTRL-W CTRL-W 可使您在窗口之间跳转。

  • 输入 :q <回车> 能够关闭帮助窗口。

  • 提供一个正确的参数给":help"命令,您能够找到关于该主题的帮助。请试验如下参数(可别忘了按回车键哦):

:help w
:help c_CTRL-D
:help insert-index
:help user-manual
复制代码

建立启动脚本

Vim 的功能特性要比 Vi 多得多,但其中大部分都没有缺省启用。为了使用更多的特性,您得建立一个 vimrc 文件。

一、 开始编辑 vimrc 文件,具体命令取决于您所使用的操做系统:

:edit ~/.vimrc     // 这是 Unix 系统所使用的命令
:edit $VIM/_vimrc  // 这是 MS-Windows 系统所使用的命令
复制代码

二、 接着读取 vimrc 示例文件的内容:

:r $VIMRUNTIME/vimrc_example.vim
复制代码

三、 保存文件,命令为: :write

下次您启动 Vim 时,编辑器就会有了语法高亮的功能。您能够把您喜欢的各类设置添加到这个 vimrc 文件中。要了解更多信息请输入 :help vimrc-intro

补全功能

一、 输入 :help 或者按 <F1> 键或 <Help> 键能够打开帮助窗口。

二、 输入 :help cmd 能够找到关于 cmd 命令的帮助。

三、 输入 CTRL-W CTRL-W 可使您在窗口之间跳转。

四、 输入 :q 以关闭帮助窗口

五、 您能够建立一个 vimrc 启动脚本文件用来保存您偏好的设置。

六、 当输入 : 命令时,按 CTRL-D 能够查看可能的补全结果。 按 <TAB> 可使用一个补全。

小结

相信学会了vim,你的编程效率能更上一层楼,梦想仍是要有的,趁还年轻。

相关文章
相关标签/搜索