vim的高级设置
建立文件的方式
touch file
gedit file
vim file
> file
一.vim的三种模式
vim是全球两大流行文本编辑器之一
vim file ##直接编辑文件内容
vim 直接
#:wq file ##文件不存在时
#:wq! file ##文件存在
vim模式:
命令模式(浏览模式) | 此模式下只能对文件内容浏览;对vim的工作方式进行设定;不能修改文件内容 |
---|---|
插入模式 | 对文件内容进行修改的模式 |
退出模式 | 结束vim程序使用到的指令 |
vim 命令查看帮助
1vimtutor
##vim手册
2vim 命令打开vim程序在程序输入
:help
二.vim工作的基本配置
在命令模式下如何更改vim的工作方式
各种设置在百度查询
临时设定
1
:set 设定
:set nu #显示行号
:set nonu #取消行号显示
:set mouse=a #鼠标可用
:set cursorline #显示光标所在行的行线
set cursoline
2
在用户的家目录设置
vim ~/.vimrc
set nu
[westos@lzy Desktop]$ vim ~/.vimrc
[westos@lzy Desktop]$ cat ~/.vimrc
set nu
对root用户不生效
永久设定方式
vim /etc/vimrc ##vim配置文件
set nu
全局设定:对所有用户都生效
三.搜索
/关键字 | 高亮显示关键字 |
---|---|
:noh | 取消高亮显示 |
n | 向下匹配关键字 |
N | 向上匹配关键字 |
浏览模式
四.vim中的字符管理
复制
y | 复制快捷键 |
---|---|
yl | 复制一个字母 |
y3l | 复制三个字母 |
yw | 复制一个单词 |
y3w | 复制三个单词 |
yy | 复制一行 |
y3y | 复制三行 |
删除
d | 删除的快捷键 |
---|---|
dl/x | 删除一个字母 |
d3l | 删除三个字母 |
dw | 删除一个单词 |
d3w | 删除3个单词 |
dd | 删除一行 |
d3d | 删除3行 |
剪切
c | 剪切 |
---|---|
cl | 剪切1个字母 |
c3l | 剪切3个字母 |
cw | 剪切1个单词 |
c3w | 剪切3个单词 |
cc | 剪切1整行 |
c3c | 剪切从此行开始的后三行 |
c3按上键,剪切从此行开始的前三行
"注意:
剪切操作完毕后会进入到插入模式" " 如果要粘贴需要按<ESC>退出插入模式按<P>"
粘贴
p ##在命令模式下p表示粘贴
恢复
u ##恢复
undo
撤销
<ctrl>+<R> ##撤销
redo
五.vim可视化模式
<ctrl>+<v> ##进入可视化模式<ESC>退出可视化模式
批量添加字符:
1.<ctrl>+<v> 进入可视化模式, 选中插入字符所在列
2.按大写<I>进入插入模式
3.插入要写入的字符
4.<ESC>退出插入模式 批量添加完成
六.批量修改字符
%s/原字符/替换字符/
默认只替换每一行的第一个匹配到的原字符
:%s/原字符/替换字符/g
##%全文的行,g全文的列
1,5s/:/##/g
##1,5 1-5行
/adm/,/sync/s/:/##/g
#/adm/,/sync/ adm字符到sync字符之间的,其余会高亮显示
七.vim的分屏功能
同步分屏
<ctrl> + <w> <s> |
上下分屏 |
---|---|
<ctrl> + <w> <v> |
左右分屏 |
<ctrl> + <w> <上|下|左|右> |
光标移动 |
<ctrl> + <w> <c> |
取消分屏 |
不同不分屏
1 已经打开一个文件
:sp 文件名称
2
vim -o file1 file2
vim -p file1 file2
见上篇博客
八.vim中快速定位光标
gg | 光标移动到文件第一行行首 |
---|---|
G | 光标移动到最后一行 |
:数字 | 光标移动到指定行 |
九.vim插入模式进入方式
i | 光标所在位置插入 |
---|---|
I | 光标所在行行首插入 |
A | 光标所在行的行尾插入 |
a | 光标所在字符的下一个字符插入 |
o | 光标所在行的下一行插入 |
O | 光标所在行的上一行插入 |
s | 删除光标所在字符插入 |
S | 删除光标所在行插入 |
十.vim退出模式
:wq | 保存退出 |
---|---|
:wq! | 强行保存退出只有文件是自己的或者root用户可用 |
:q | 退出未对文件内容修改 |
:q! | 强制退出不保存 |
test
查找一个字符串 .在文件/usr/share/xml/iso-codes/iso_639_3.xml中查找所有包含ng的行
. 将找出的行按照先后顺序复制到/root/list中
. /root/list文件中无意义的空格删掉
. 其中的所有行的内容必须是源文件的原始的副本
ll[root@lzy ~]# grep ng /usr/share/xml/iso-codes/iso_639_3.xml > /root/list
[root@lzy ~]# vim /root/list
:%s/^ *//g 删除空行 %s/^\ *//g
删除开头的所有空格
:%s/^I//g 删除tab键带来的空行
/crtl+shift + i (tab ^I)