四、vim的高级用法配置

四、vim的高级用法配置

1.vim的三种模式

vim file #直接编辑文件内容

vim模式

模式功能
命令模式(浏览模式)1. 该模式下只能对文件内容浏览
2.对vim的工作方式进行设定
3.不能修改文件内容
插入模式对文件内容进行修改的模型
退出模式结束vim程序用到的命令
vimtutorvim手册

注:
1)命令模式中按i进入插入模式;
2)插入模式完成编辑后按ESC进入浏览模式;
3)输入 :wq 退出保存, :q! 强制退出;
4)进入手册按 vim help

2.vim工作的基本配置

命令模式下如何更改vim的工作方式

方法临时设定
:set设定
:set nu显示行号
:set noun取消行号显示
:set mouse==a鼠标可用
:set cursorline显示光标所在行的行线
##执行前
134   134  touch file file
135   135  touch file file1
136   136  mkdir filedir
137   137  mkdir filedir1
138   138  history > file                                                       
:set noun ##取消行号显示
##执行后
  134  touch file file
  135  touch file file1
  136  mkdir filedir
  137  mkdir filedir1
  138  history > file                                                           
方法永久设定
vim /etc/vimrcvim配置文件 (for all user)
vim ~/.vimrcfor only user
[jiangjiang@localhost Desktop]$ vim /etc/vimrc
[jiangjiang@localhost Desktop]$ head /etc/vimrc
if v:lang =~ "utf8$" || v:lang =~ "UTF-8$"
   set fileencodings=ucs-bom,utf-8,latin1
endif

set nu
set nocompatible	" Use Vim defaults (much better!)
set bs=indent,eol,start		" allow backspacing over everything in insert mode
"set ai			" always set autoindenting on
"set backup		" keep a backup file
set viminfo='20,\"50	" read/write a .viminfo file, don't store more

3.搜索
命令功能
/关键字高亮显示关键字
noh取消高亮显示
n向下匹配关键字
N向上匹配关键字

/touch #结果

高亮显示

4.vim的字符管理
1)复制
命令功能
y复制快捷键
yl复制一个字母
y3l复制三个字母
yw复制一个单词
y3w复制三个单词
yy复制一行
y3y复制三行
## y3y 
134   134  touch file file
135   135  touch file file1
136   136  mkdir filedir
137   137  mkdir filedir1
138   138  history > file
139    15  man -k passwd
140    15  man -k passwd                                                        
~                                                                               
 == 3 lines yanked ==
##按p粘贴后
134   134  touch file file
135   135  touch file file1
136   136  mkdir filedir
137   137  mkdir filedir1
138   138  history > file
139    15  man -k passwd
140    15  man -k passwd
141   122  vim /etc/vimrc
142   123  su -
143   124  vim ~/.vimrc   
2)删除
命令功能
d删除快捷键
dl删除一个字母
d3l删除三个字母
dw删除一个单词
d3w删除三个单词
dd删除一行
d3d删除三行
127   130  head /etc/vimrc  
##d3w
127 /etc/vimrc 
##d3l
127 c/vimrc 
3)剪切
命令功能
c剪切
cl剪切一个字母
c3l剪切三个字母
cw剪切一个单词
c3w剪切三个单词
cc剪切一行
c3c剪切三行

注意:
剪切操作完毕后会进入到插入模式,如果要粘贴需要按ESC退出插入模式在按p粘贴

4)其他

1)粘贴

p #在命令模式下p表示粘贴

2)恢复

u #在命令模式下u表示恢复

3)撤销

Ctrl+R #表示撤销操作

5.vim可视化模式

Ctrl+V #进入可视化模式

批量添加字符

  • Ctrl+V 选中插入字符;
  • 按大写I进入插入模式;
  • 插入要写入的字符;
  • ESC退出插入模式;
  • 批量添加完成。

选中插入部分

y复制后,按p粘贴结果:

粘贴结果

6.批量修改字符

:%s/原字符/替换字符/g # %表示全文的行,g表示全文的列
:65,70s/etc/:)/g # 把65到70行所有列中的etc替换为:)
结果如下:
替换结果

7.vim的分屏功能

同步分屏

命令功能
Ctrl+W S上下分屏
Ctrl+W v左右分屏
Ctrl+W Up/Down/Left/Right光标移动
Ctrl+W c取消分屏

:sp #不同步分屏
分屏

命令功能
vim -o file1 file2上下分屏
vim -p file3 file4左右分屏
8.快速定位光标
命令功能
gg光标移动到文件第一行行首
G光标移动到最后一行
:数字光标移动到指定行
9.vim插入模式进入方式
命令功能
i光标所在位置插入
I光标所在行行首插入
A光标所在行的行尾插入
a光标所在字符的下一个字符插入
o光标在行的下一行插入
O光标所在行的上一行插入
s删除光标所在字符插入
S删除光标所在行插入
10.vim退出模式
命令功能
:wq保存退出
:wq!强制保存退出只有文件是自己的或者root用户可用
:q退出
:q!强制退出不保存

Test

查找一个字符串:

  • 在文件/usr/share/xml/iso-codes/iso_639_3.xml中查找到所有包含字符ng 的行
  • 将找出的行按照先后顺序复制到/root/list文件中
  • /root/list文件中无意义的空格请去除掉
  • 其中的所有行的内容必须时源文件中原始的标准副本

解1:在文件/usr/share/xml/iso-codes/iso_639_3.xml中查找到所有包含字符ng 的行

[jiangjiang@localhost Desktop]$ grep ng /usr/share/xml/iso-codes/iso_639_3.xml
<?xml version="1.0" encoding="UTF-8" ?>
This file gives a list of all languages in the ISO 639-3
    License along with this file; if not, write to the Free Software
		reference_name="Solong"
		name="Solong" />
		reference_name="Abai Sungai"
		name="Abai Sungai" />
		reference_name="Lampung Nyo"
		name="Lampung Nyo" />
		reference_name="Achang"
		name="Achang" />
		reference_name="Adangme"
		name="Adangme" />
		reference_name="Adang"
		name="Adang" />
		reference_name="Adangbe"
		name="Adangbe" />
		......

解2:将找出的行按照先后顺序复制到/root/list文件中

[root@localhost ~]# grep ng /usr/share/xml/iso-codes/iso_639_3.xml >/root/list
[root@localhost ~]# cat /root/list
<?xml version="1.0" encoding="UTF-8" ?>
This file gives a list of all languages in the ISO 639-3
    License along with this file; if not, write to the Free Software
		reference_name="Solong"
		name="Solong" />
		reference_name="Abai Sungai"
		name="Abai Sungai" />
		reference_name="Lampung Nyo"
		name="Lampung Nyo" />
		reference_name="Achang"
		name="Achang" />
		reference_name="Adangme"
		name="Adangme" />
		reference_name="Adang"
		name="Adang" />
		reference_name="Adangbe"
		name="Adangbe" />
		

解3: /root/list文件中无意义的空格请去除掉

方法1::%s/^I//g
删除前
删除后

方法2::%s/^\ *//g # (^\ *)表示开头所有的空格 ^表示开头\表示转译空格 *表示所有

删除前

删除后

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值