vim使用操作大全
1. vim简介
Vi是Vim的早期版本,现在我们使用的Vim(Viimproved)是Vi的增强版。
vim是文本编辑工具软件,一个基于图形化编辑工具,使用简单且功能强大。增加了一些正则表达式的查找、多窗口的编辑等功能,使得Vim对于程序开发来说更加方便
ps: vi 内置在Linux系统中,是vim的简化版编辑器,vim需要进行安装使用
2. vim的三种模式说明
三种模式:命令模式,编辑模式,底行模式
命令模式:
Vim 启动后,默认进入命令模式,在任何模式下,都可以按 Esc 键返回到命令模式,可以多按几次 Esc 键,保证顺利返回到命令模式。
在此模式下,可以使用上、下、左、右键进行光标移动,也可以键入不同的命令完成选择、复制、粘贴、删除等操作。
编辑模式
在编辑模式下可以编辑文本内容。在命令模式下按 i、 a 、o等键可以进入编辑模式,在此模式下可以输入文本,但命令执行后的字符插入位置不同
底行模式
命令模式下按:键进入底行模式。这时光标会移到屏幕底部,在这里可以输入相关指令保存修改或退出 Vim,也可以设置编辑环境、寻找字符串、列出行号等。指令执行后会自动返回命令模式。
3. vim编辑器操作
vim编辑器相当于Windows的notepad++编辑器,相比vi的功能强大,注意点:centos7使用vi实测调用了是vim编辑器
命令模式移动光标方式
# 纵向移动
G # 快速移动到文本行尾
gg # 快速移动到文本行首
2gg # 快速移动第二行
2G # 快速移动第二行
shitf+ 0 # 快速移动空行
# 横向移动
$ #快速移动到一行的行尾
0 或 ^ #快速移动到一行的行首
命令模式复制内容方式
dd # 默认剪切一行内容
2dd # 从当前光标往下剪切2行内容
yy # 默认复制一行内容 copy
2yy # 从当前光标往下复制2行内容
p # 从当前光标下黏贴一遍内容
2p # 从当前光标下黏贴2遍内容
u # 撤销文本的操作
ctrl+r # 撤回文本的操作
dG # 表示从光标位置到文本末尾内容删除
r # 表示替换单个字符
如何命令模式进入编辑模式
i # 表示当前光标位置前插入,进入编辑模式
a # 表示当前光标位置后插入,进入编辑模式
o # 表示当前光标位置另起下一行插入,进入编辑模式
O # 表示当前光标位置另起上一行插入,进入编辑模式
I # 表示当前光标位置所在行的行首,进入编辑模式
A # 表示当前光标位置所在行的行尾,进入编辑模式
C(大写) # 表示从光标所在位置到行尾内容剪切,进入编辑模式
cc # 表示剪切光标所在行,进入编辑模式
末行模式命令操作
: # 从命令模式进入末行模式
:q # 未编辑时,退出
:q! # 强制退出vim
:wq # w 保存内容
:set nu # 显示行号
:set nonu # 取消显示行号
/xxx # /表示从当前光标下搜索内容 按n 向下继续搜索
?xxx # ?表示从当前光标下搜索内容 按n 向下继续搜索
/xxx\c # 搜索内容后加\c 表示搜索忽略大小写
:set ic # 表示在此次编辑,搜索忽略大小写
:set noic # 表示在此次编辑,取消忽略大小写
ps:vim搜索内容高亮显示搜索的内容信息
如何取消vim搜索后的高亮显示?
-
搜索文本没有的内容信息
-
输入指令 :noh
3.vim特殊用法
快速的移动多行内容
格式是 :1,3move4 表示把第一行到第三行的信息移动到第四行内容另起一行
快速的复制多行内容到某一行
格式是 :1,3cpoy4 表示把第一行到第三行的信息复制单四行内容另起一行
文件信息进行替换内容
vim替换格式是 :%s# 替换的内容 # 替换成的内容 #g
如:%s#oldboy#oldgirl#g # 表示把文件中的oldboy全部替换修改为oldgirl
替换参数说明
% 表示文件的全部信息
s 表示substitute 替换 %s 表示全部信息进行替换
### 表示替换内容和修改内容的分隔符,可以是任意三个相同的符号。比如 %s/oldboy/oldgirl/g
g 表示 global(全局的),把整行符合替换条件的内容进行替换
具体操作
[root @controller /old ]# vi oldboy.txt # 文件原有的内容
oldboy
oldgirl
olddog
[root @controller /old ]# vi oldboy.txt
aldbay
aldgirl
alddag
~
~
:%s#o#a#g 表示把文件全部字母o替换为a g表示把整行字母o替换为字母a
[root @controller /old ]# vi oldboy.txt
oldbay
oldgirl
olddag
~
~
:%s#a#o# 表示把文件每行首个字母a替换为字母o
批量的编辑修改多行内容信息
如何快速的四行内容进行注释(在每行开始添加符号 #)
第一步:进入批量编辑的视图模式
按键盘的 Ctrl + v 进入批量模式,在底行出现标志信息 -- VISUAL BLOCK -- (可视块)
第二步:选择需要批量编辑的行:按方向上下进行选择编辑的行
第三步:进行编写内容
第四步:退出批量编辑模式,自动补全其他选择的行:按键盘的 esc 退出批量编辑模式
如何批量删除文件多行信息
第一步:进入批量编辑的视图模式
按键盘的 Ctrl + v 进入批量模式,在底行出现标志信息 -- VISUAL BLOCK -- (可视块)
第二步:选择需要批量编辑的行
按方向上下进行选择行,按方向左右选择删除信息
第三步:直接删除信息:按键盘的 字母d 或字母x 直接删除
问题:如何在test.txt每行前添加12345?
方法一:利用视图模式批量编辑文件
方法二:vim的替换信息方法
方法三:三剑客命令sed???
[root @compute /old ]# sed 's#o#12345o#' test.txt
12345oldboy
12345oldgirl
12345olddog
4.vim查看目录数据
[root @compute / ]# vim old
" ============================================================================
" Netrw Directory Listing (netrw v149)
" /old
" Sorted by name
" Sort sequence: [/]$,<core%(.\d+)=>,.h$,.c$,.cpp$,~=*$,*,.o$,.obj$,.info$,.swp$,.bak$,~$
" Quick Help:
" ============================================================================
../
./
oldboy/
oldboy.txt*
ago.txt
services
xuanxuan.txt
.swp
~
"old" is a directory
显示信息说明:
F1 查看帮助
-
返回上级目录
回车 选择子目录,回车可以进入子目录。选择文件,直接编辑。
D 键盘上下选择删除文件
R 文件重命名
s 表示文件名称进行排序。默认按照文件名称排序,按一次:按照文件修改时间排序。按二次:按照文件size数据大小排序。按三次:默认名称排序
x 不明白???