红联Linux门户
Linux帮助

Linux常用编辑器之Vim

发布时间:2015-04-07 21:37:21来源:linux网站作者:tennysonsky

概述

vi 编辑器是 Linux 系统中最常用的文本编辑器,vi 在Linux界有编辑器之神的美誉几乎所有的 Linux 发行版中都包含 vi 程序。

vi 工作在字符模式下,不需要图形界面,非常适合远程及嵌入式工作,是效率很高的文本编辑器,尽管在 Linux 上也有很多图形界面的编辑器可用,但vi的功能是那些图形编辑器所无法比拟的。


那 vim 又是什么呢?

vim 是 vi 的升级版,它不仅兼容 vi 的所有指令,而且还有一些新的特性,例如 vim 可以撤消无限次、支持关键词自动完成、可以用不同的颜色来高亮你的代码。vim 普遍被推崇为类 vi 编辑器中最好的一个。

官网:http://www.vim.org/download.php

使用 vim 时,通用需要 ctags 工具辅助。ctags 是 vim 下方便代码阅读的工具,是很强大的 vim 插件,有了它浏览代码时可以在函数, 变量之间跳来跳去等等。

官网:http://ctags.sourceforge.net/


准备工作

安装 vim,ctags:

sudo apt-get install vim

sudo apt-get install ctags


vim 最简单最常用的操作

以下操作,使用 vi 或 vim 命令是等价的。

先给大家介绍一种最简单最常用的操作(打开文件,编辑文件,保存文件),如果不深入探究,学习这几个操作即可。

使用 vi 打开文件

vi filename:打开或新建文件,并将光标置于第一行行首

如果文件不存在,则会新建文件,如下:

如果文件存在,即为打开文件,打开文件后,按 “i” 进入插入模式后,才可以进行编辑:

由于 vim 配置原因,导致如上图的分栏,按 “F9” 即可实现隐藏显示分栏切换。

默认的情况下,打开文件,是不能直接编辑的:

按 “i” 进入插入模式,即可编辑:

vi +n filename:打开文件,并将光标置于第 n 行行首

保存文件(其中一种方式):

一定要先退出插入模式,然后,shift + zz (按住 “shift” + 按两下“z”键) 即可保存退出当前文件。


vim 的详细使用

vim 编辑器有 3 个操作模式(模式的名字不重要,我总分不清,知道每种模式下干什么事即可):

1、vi 插入模式

vi 创建一个不存在文件时,默认进入插入模式

vi 将输入的字符作为正文内容放在正在编辑的文件中
Linux常用编辑器之Vim

2、vi 编辑模式

vi 打开一个已经存在文件时,默认进入编辑模式

在此模式下可进入插入模式、控制屏幕光标的移动、进行文本的选择、复制、粘贴、剪切、删除、查找等工作。

3、vi 最后一行模式 ( 命令模式 )

在编辑模式下,按 “shift” + “ : ” 进入

跟编辑模式类似,完成存盘、另存、查找等任务
Linux常用编辑器之Vim

注:以上图片上传到红联Linux系统教程频道中。

模式切换:

由编辑模式切换到插入模式

i 从光标当前位置开始插入

a 从光标当前位置的下一个字符开始插入

o 在光标位置的下行插入一个空行,再进行插入

I 从光标所在行的开头开始插入正文

A 从光标所在行的末尾开始插入正文

O 在光标位置的上一行插入一个空行,再进行插入

由编辑模式切换到最后一行模式(命令模式)

“shift” + “ : ”

由插入模式、命令模式切换到编辑模式

Esc(命令模式到编辑模式两次 Esc)

插入模式与命令模式不能直接转换

编辑模式下删除和修改文本

1、 u    撤消前面多次修改。

2、[n]x    删除光标后 n 个字符。

3、[n]X  删除光标前 n 个字符。

4、[n]dd  删除从当前行开始的 n 行(准确来讲,是剪切,剪切不粘贴即为删除)。

5、[n]yy复制从当前行开始的 n 行。

6、 p把粘贴板上的内容插入到当前行。

7、 .执行上一次操作

8、shift +zz ( 按住 shift 按两下 z 键 ) 保存退出当前文件

编辑模式下的复制

yw 复制一个word

dw 剪贴一个word

cw 修改一个word

块选择命令

v:按字符选择

d:剪贴选择的内容到剪贴板。

y:拷贝选择的内容到剪贴板。

c:剪贴选择的内容到剪贴板并且进入插入模式

(n)shift + >所选内容向右移动一个tab

(n)shift + <所选内容向左移动一个tab

编辑模式下移动光标

[n]G:将光标定位到第n行开始处

G:将光标定位到文件结束处

gg:将光标定位到文件开始处

编辑模式下的查找

/字符串:从光标开始处向文件尾查找字符串。

n:同一方向重复上一次查找命令

N:反方向重复上一次查找命令

常用最后一行模式命令

文件存储类

:w保存当前文件

:w  file    另存当前文件为 file

:q  退出vi

:wq    保存当前文件,退出

:x  同上

:q!              不保存文件并退出

普通模式下的多行剪切、复制

:n1,n2 d    剪切 n1 到 n2 行之间的内容到粘贴板

:n1,n2 m n3  剪切 n1 行到 n2 行之间的内容到 n3 行下

:n1,n2 co n3  复制 n1 行到 n2 行之间的内容到 n3 行下

最后一行模式下的查找和替换

:s/p1/p2/g  将当前行中所有 p1 均用 p2 替代

:g/p1/s//p2/g  将文件中所有 p1 均 用 p2 替代

:n1,n2s/p1/p2/g  将 n1 到 n2 行中所有 p1 均用 p2 替代