vim 文本编辑器

vim 文本编辑器

vi 简介

vi命令是UNIX操作系统和类UNIX操作系统中最通用的全屏幕纯文本编辑器。Linux中的vi编辑器叫vim,它是vi的增强版(vi Improved),与vi编辑器完全兼容,而且实现了很多增强功能。


vi编辑器支持编辑模式和命令模式,编辑模式下可以完成文本的编辑功能,命令模式下可以完成对文件的操作命令,要正确使用vi编辑器就必须熟练掌握着两种模式的切换。默认情况下,打开vi编辑器后自动进入命令模式。从编辑模式切换到命令模式使用“esc”键,从命令模式切换到编辑模式使用“A”、“a”、“O”、“o”、“I”、“i”键。

其他编辑器:

gedit 
一个简单的图形编辑器 
gvim 
一个 Vim 编辑器的图形版本


打开文件

vim  [OPTION]... FILE...

+#: 打开文件后,直接让光标处于第# 行的行首 
+/ PATTERN :打开文件后,直接让光标处于第一个被 
PATTERN 匹配到的行的行首 
vim + file 直接打开file, 光标在 最后一行 
vim –b file 二进制方式打开文件 
vim –d file1 file2… 比较多个文件 
vim -m file 只读打开文件 
ex file 或 或 vim –e 直接进入ex 模式 
如果该文件存在,文件被打开并显示内容 
如果该文件不存在,当编辑后第一次存盘时创建它

vim模式

vim 编辑器模式切换: 
三种主要模式:命令模式插入(编辑)模式编辑模式

命令模式(默认):移动光标,剪切/ 粘贴文本
插入(编辑)模式:修改文本
编辑模式 :保存,退出等

QQ截图20160816025406.png

模式转换

命令模式 –> 插入模式 
i: insert, 在光标所在处输入 
I :在当前光标所在行的行首 输入 
a: append, 在光标所在处后面输入 
A :在当前光标所在行的行尾 输入 
o: 在当前光标所在行的下方打开一个新行 
O : 当前光标所在行的上方打开一个新行 
x :向后删除一个字符 
X :向前删除一个字符 del 
u :撤销一步 
esc: 退出当前模式

插入模式 ---->  命令模式
ESC
式 命令模式 ---->  扩展 模式
:
扩展式 模式 ---->  命令模式
ESC
锁定和解锁:CTRL+s,Ctrl+q

vim中定位到某行:

gg 定位到行首 
G 定位到最后一行,行首 
#G 定位到某一行 
:# 定位到某一行 
#gg 定位到某一行 
#代表行号

行操作

home键或^行首 
$行尾 end键 
dd 删除一行Ndd 
yy 复制一行 Nyy 复制N行 
p 将复制行粘贴 P上粘 
扩展:剪切 
先删除再粘贴 
删除到行首 d + HOME 或^ 
删除到行尾 d + END 或$

词操作

dw 删除一个词,删除时要将光标移动到这个词的行首。 另外,如果光标不在行首,则删除光标之后的字母。 
yw 复制一个词 
w 切换单词

块操作

D 或d+$删至行尾 d+^ 删至行首 
y+$ 复制至尾 y+^ 复制至首

命令模式光标跳转

字符间跳转: 
h: 左 左 l: 右 右 j: 下 下 k: 上 上 
#COMMAND :跳转由# 指定的个数的字符; 
单词间跳转: 
w :下一个单词的词首 
e :当前或下一单词的词尾 
b :当前或前一个单词的词首 
#COMMAND :由# 指定一次跳转的单词数 
当前页跳转: 
H:页首 M :页中间行 L: 页底

v 模式(可视化模式)

进入v模式 移动光标选择区域、 
编程的时候需要进行多行注释:

1、注释:ctrl+v进入列编辑模式 
2、向下或向上移动光标 
3、把需要注释的行的开头标记起来 
4、然后按大写的I 
5、再插入注释符,比如"#"。 
6、再按Esc,就会全部注释了。

删除多行注释:

删除:再按ctrl+v 进入列编辑模式;向下或向上移动光标 ;选中注释部分,然后按d, 就会删除注释符号。

替换

:%s/this/that 每一行的第一个this被替换成that 
:%s/this/that/g 将文本中所有的this替换成that 
:2,5 s/sbin/666/g #替换第二行到第五行中sbin 
:set nu/nonu #显示行号 
/ 正向查找 :/target n 往下查找,N 往上查找 
去消高亮显示: noh 或 随便查找一组没有的字符 
:!ifconfig 调用系统命令

扩展模式

“: ”进入Ex 模式 
创建一个命令提示符:, 处于底部的屏幕左侧 
命令: 
w 写(存)磁盘文件 
wq 写入并退出 
x 写入并退出 
q 退出 
q! 不存盘退出,即使更改都将丢失 
r filename 读文件内容到当前文件中 
w filename 将当前文件内容写入另一个文件 
!command 
r!command

读取其他文件(实例)

:r ./sshd_config.bak

关闭文件

扩展模式: 
:q 退出 
:q! 强制退出,丢弃做出的修改 
:wq 保存退出 
:x 保存退出 
命令模式 
ZZ: 保存退出 
ZQ:不保存退出

自定义vim的工作特性

[root@localhost ~]# vim ~/.vimrc 
输入: 
set nu 
set history=10

配置文件:永久有效

全局:/etc/vimrc 
个人:~/.vimrc 
扩展模式:当前vim 进程有效 

(1)  行号
显示:set number,  简写为set nu
取消显示:set nonumber,  简写为set nonu
(2)  括号成对匹配
匹配:set showmatch,  简写为set sm
取消:set nosm
(3)  自动缩进
启用:set ai
禁用:set noai
(4)  高亮搜索
启用:set hlsearch
禁用:set nohlsearch
(5)  语法高亮
启用:syntax on
禁用:syntax off
(6)  忽略字符的大小写
启用:set ic
不忽略:set noic
(7)  文件格式
启用: :fileformat=unix
不忽略: : fileformat=dos
(8)  设置文本宽度
:set textwidth=65 (vim only)
:set wrapmargin=15
:help option-list
:set or :set all
set wrapmargin=1

编辑二进制文件

以二进制方式打开文件

vim –b binaryfile

扩展命令模式下,利用xxd 命令转换为可读的十六进制 
:%!xxd 
编辑二进制文件 
扩展命令模式下,利用xxd 命令转换回二进制 
:%!xxd –r 
保存退出

vim打开多个文件:使用多个“窗口”

[root@localhost ~]# vim -O /etc/passwd /etc/hosts 
ctrl+WW 在文件之间进行切换多文件分割

vim -o|-O FILE1 FILE2 ...

-o: 水平分割 
-O: 垂直分割 
在窗口间切换:Ctrl+w, Arrow 
单文件窗口分割: 
Ctrl+w,s: split, 水平分割 
Ctrl+w,v: vertical, 垂直分割 
ctrl+w,q :取消相邻窗口 
ctrl+w,o: 取消全部窗口 
: wqall 退出

原创文章,作者:M20_he,如若转载,请注明出处:http://www.178linux.com/36325

(0)
M20_heM20_he
上一篇 2016-08-16
下一篇 2016-08-16

相关推荐

  • 两张盘合并做yum源

    第一步 先把两张光盘都连接到系统中 连接上iso文件后重启电脑 这时桌面会显示已将连接上的iso文件   然后创建两个文件夹分别挂载这两个光盘   mkdir centos6.9-{1,2} 创建两个文件夹 df 查看系统硬盘   然后把两个光盘分别挂载到文件中 mount -o ro,loop /dev/sr0 centos6…

    2017-07-12
  • if case语句练习

     1、 写一个脚本/root/bin/createuser.sh,实现如下功能:使用一个用户名做为参数,如果指定参数的用户存在,就显示其存在,否则添加之;显示添加的用户的id号等信息 [root@localhost bin]# cat createuser.sh #!/bin/bash # Date…

    Linux干货 2016-08-15
  • Linux系统上获取命令的帮助信息方法

    当我们在操作linux时忘记相关命令的用法时,可以使用man 命令或者命令 -h来查询该命令的用法; man文档共有9个章节 1:所有用户可以操作的指令或可执行文件 2:系统核心调用的函数与工具 3:子调用,常用的函数与函数库 4:设备,硬件文件说明,通常是/dev/的文件 5:文件格式,配置文件或者是某些档案的格式 6:游戏相关 7:杂项,例如linux文…

    Linux干货 2018-03-04
  • CentOS6 ELK实现

    1 简介 我们来介绍Centos6.5基于SSL密码认证部署ELK(Elasticsearch 1.4.4+Logstash 1.4.2+kibana3),同时为大家介绍如何集合如上组件来收集日志,本章的日志收集主要为大家介绍SYSTEM日志收集. 集中化日志收集主要应用场景是在同一个窗口临时性或永久性鉴定分析系统,应用等各类日志,对用户提供极大便利,同时也…

    2015-02-15
  • 马哥教育网络班19期第一周课程练习

    1、描述计算机的组成及其功能。 从大体上计算机是由cpu、内存、主板、I/O设备、存储设备组成 cpu的功能就好像人的大脑,控制身体的。严格意义上是用来解释计算机指令以及处理软件中的数据的。 内存的功能就好像人的大脑记忆区、来存放眼睛看到的世界。严格意义上是用于暂时存放cpu中的运算数据,以及与硬盘等外部存储器交换的数据 主板的功能就好像人的身体,来链接身体…

    Linux干货 2016-06-18
  • Linux的各种发行版系列讲解

    Linux的各种发行版系列讲解 linux的发行版有数百种之多,在此只讲解最主流的一些分支 Debain (主流)Debian是主流三大分支中唯一一个以社区方式来发行的,没有商业公司运作 后期加进去的软件限制更少,所以使用难度比其他更高 Knoppix Debian的一个著名子分支,短小精悍 Ubuntu(乌班图) 基于Debian的二次发行版,是主流分支,…

    Linux干货 2018-02-22