Linux开发环境搭建与使用——Linux常用编辑器之vim


概述

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

vcWyvc7EvP6jqM/C1NjWsb3TteO797y0v8mjqaOs1MvQ0L3Fsr28tL/Jzeqzyc/g06bF5NbDoaM8L3A+CjxwPjxpbWcgc3JjPQ=="http://www.2cto.com/uploadfile/Collfiles/20150408/2015040809482971.jpg" alt="\">

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 将输入的字符作为正文内容放在正在编辑的文件中

\


2、vi 编辑模式
vi 打开一个已经存在文件时,默认进入编辑模式
在此模式下可进入插入模式、控制屏幕光标的移动、进行文本的选择、复制、粘贴、剪切、删除、查找等工作。

\


3、vi 最后一行模式 ( 命令模式 )
在编辑模式下,按 “shift” + “ : ” 进入
跟编辑模式类似,完成存盘、另存、查找等任务


模式切换:

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

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 替代

相关内容