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 编辑器模式切换:
三种主要模式:命令模式
、插入(编辑)模式
、编辑模式
命令模式(默认):移动光标,剪切/ 粘贴文本
插入(编辑)模式:修改文本
编辑模式 :保存,退出等
模式转换
命令模式 –> 插入模式 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