博客
关于我
复习2 --- vi编译器的使用
阅读量:272 次
发布时间:2019-03-01

本文共 1657 字,大约阅读时间需要 5 分钟。

一个编辑器具备的功能

1)打开文件、新建文件、保存文件
2)光标移动
3)文本编辑
4)(多行间|多列间)复制、粘贴、删除
5)查找和替换

1、vi编辑器的配置

cd /etc/vim

cp vimrc ~/.vimrc
cd ~
gedit .vimrc
在.vimrc中加入如下内容:

"关闭兼容功能

set nocompatible
"显示行号
set number
"编辑时 backspace 键设置为2个空格
set backspace=2
"编辑时 tab 键设置为4个空格
set tabstop=4
"设置自动对齐为4个空格
set shiftwidth=4
"搜索时不区分大小写
set ignorecase
"搜索时高亮显示
set hlsearch

2、vi编辑器有三种模式

1)一般模式(光标移动、复制、粘贴、删除)

2)编辑模式(编辑文本)
3)命令行模式(查找和替换)

注意:

1)当不知道处于何种模式时,按ESC键返回到一般模式。
2)wq(write quit)
3)i(insert)

3、打开文件、新建文件、保存文件

vi 文件名

如果文件存在,输入结束后,:wq保存并退出文件
如果文件不存在,输入结束后,:wq就可以新建并保存文件

在编辑完成时,返回一般模式,

1)输入:w则保存文件,如果已经保存文件,输入:q则退出文件
2)直接输入:wq保存并退出
3)如果不想保存被修改的内容,则:q!强制退出。

4、进入编辑模式

i(在光标前开始插入文本)

a在光标后开始插入文本
o(在当前行之下新开一行,并到行首)

5、光标移动

  • 在一般模式下,hjkl这四个按键就可以移动光标

    h(左) (最左边)
    j(下) (想象j像一个向下的箭头)
    k(上)
    l(右) (最右边)

  • 快速的定位到某一行:

    文件头、文件尾、指定某一行
    ngg光标移至第n行的行首(n为数字),
    如1gg就跳到第一行的行首,就是文件头
    如2gg就跳到第二行的行首

  • G转至文件结尾

    注意:ngg和G是在一般模式

  • 在某一行如何快速定位到某一列

    0(数字零)光标移至当前行行首
    光 标 移 至 当 前 行 行 末 f x 搜 索 当 前 行 中 下 一 个 出 现 字 母 x 的 地 方 注 意 : 0 、 光标移至当前行行末 fx搜索当前行中下一个出现字母x的地方 注意:0、 fxx0、fx是在一般模式

vi的难点:

vi操作之前,先判断一下当前是哪一种模式,再看光标所在位置。
当你不知道处于何种模式时,使用esc键返回到一般模式。
再看光标,难点在于移动光标,可以做到快速切换到某一行某一列。

6、文本复制、粘贴、删除、撤销

yy复制当前行(y:yank(复制))

nyy复制当前行及其后的n-1行(n是数字)

使用P键来粘贴(p:paste)

dd 删除光标所在行(d:delete)

ndd 删除当前行及其后的n-1行(n是数字)

按u键来撤销上一步操作

x删除光标所在位置的字符

注意:

yy/nyy/dd/ndd/x/u都是在一般模式。

7、查找和替换

/pattern 从光标开始处向文件尾搜索pattern,后按下n或N

注意:
n在同一个方向重复上一次搜索命令
N在反方向重复上一次搜索命令
n(N)来源于next

注意:

在/pattern之前先跳到第一行则进行全文件搜索。

:%s/p1/p2/g将文件中所有的p1均用p2替换

:%s/p1/p2/gc替换时需要确认

s:substitute替换

g:global全局
c:confirm确认

总结

vi编辑器有三种模式

1)一般模式(光标移动、复制、粘贴、删除、撤销)
hjkl、ngg/G、0、$、fx
yy/nyy
p
dd/ndd、x
u
2)编辑模式(编辑文本)
i a o
3)命令行模式(查找和替换、保存退出文件)
/pattern、:%s/p1/p2/gc、:wq

转载地址:http://evga.baihongyu.com/

你可能感兴趣的文章
MySQL 用 limit 为什么会影响性能?
查看>>
MySQL 用 limit 为什么会影响性能?有什么优化方案?
查看>>
MySQL 用户权限管理:授权、撤销、密码更新和用户删除(图文解析)
查看>>
mysql 用户管理和权限设置
查看>>
MySQL 的 varchar 水真的太深了!
查看>>
mysql 的GROUP_CONCAT函数的使用(group_by 如何显示分组之前的数据)
查看>>
MySQL 的instr函数
查看>>
MySQL 的mysql_secure_installation安全脚本执行过程介绍
查看>>
MySQL 的Rename Table语句
查看>>
MySQL 的全局锁、表锁和行锁
查看>>
mysql 的存储引擎介绍
查看>>
MySQL 的存储引擎有哪些?为什么常用InnoDB?
查看>>
Mysql 知识回顾总结-索引
查看>>
Mysql 笔记
查看>>
MySQL 精选 60 道面试题(含答案)
查看>>
mysql 索引
查看>>
MySQL 索引失效的 15 种场景!
查看>>
MySQL 索引深入解析及优化策略
查看>>
MySQL 索引的面试题总结
查看>>
mysql 索引类型以及创建
查看>>