加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

VIM编辑器1

发布时间:2020-12-15 16:57:23 所属栏目:安全 来源:网络整理
导读:VIM编辑器vi improved vi:visual interface vim +/PATTERN f1 打开文件后光标处于第一个被匹配到PATTERN的行的行首,n键跳到下一个,即支持正则匹配 vim +n f1 直接打开f1文件并且将光标定位在第n行 vim -b f1 以二进制方式打开文件 vim -d f1 f2... 比较多

VIM编辑器vi improved

vi:visual interface

vim +/PATTERN f1 打开文件后光标处于第一个被匹配到PATTERN的行的行首,n键跳到下一个,即支持正则匹配

vim +n f1 直接打开f1文件并且将光标定位在第n行

vim -b f1 以二进制方式打开文件

vim -d f1 f2... 比较多个文件

vim -m f1 以只读方式打开文件

ex f1 或vim -e f1 直接进入ex模式


vi +/^user passwd

//vi或vim支持正则表达式匹配,即打开passwd文件并将光标定位在匹配到以user开头的行


vim的模式:

命令模式(normal):默认打开模式,移动光标,剪切粘贴删除等

插入模式或编辑模式(insert):修改文本

扩展命令模式(extended command):保存,退出,帮助,:号后加命令

可视模式(visual):块选择操作

ESC键,退出当前模式。按两次ESC键,返回到命令模式

i:insert,光标前插入

I:在光标所在行首插入

a:append,光标后插入

A:在光标所在行尾插入

o:在光标所在行的下方插入新行

O:在光标所在行的上方插入新行


锁定和解锁:ctrl+s,ctrl+q

扩展模式:

:q 退出

:q! 强制退出不保存修改

:wq 保存退出

:x 保存退出

:r f2 读取f2的文件内容到当前光标的下一行

:w f3 将当前编辑内容写入到另一个文件中

!cmd 执行命令并显示,回车退出

r!cmd 读取命令的输出到当前光标的下一行

:方向键 可以上下选择vi的历史命令,操作同bash,支持的快捷键操作^w,^u,^e


命令模式:

ZZ:保存退出

ZQ:不保存退出

hjkl:左下上右移动

#cmd:3h向左移动3个字符

w:下一个单词词首

e:当前或下一个单词词尾

b:当前或前一个单词词首

#cmd:3w向下跳转3个单词

H:跳转到当前页页首 M:页中 L:页底

^:跳转到行首的第一个非空白字符

0:跳转至行首,注意是数字零

$:跳转至行尾

#G或者:# :跳转至指定行,3G第三行,:10第10行

shift+3:即#号,匹配光标处的单词,并高亮显示文件中的所有相同的单词,n键跳转

G:最后一行

1G,gg:第一行

):下一句 (:上一句。句子以.隔开

}:下一段 {:上一段。段落以空行隔开

ctrl+f:向文件尾部翻一屏

ctrl+b:向文件首部翻一屏

ctrl+d:向文件尾部翻半屏

ctrl+u:向文件首部翻半屏

x:删除光标处的字符

#x:删除光标处之后的#个字符

xp:交换光标所在处的字符及其后面字符的位置

~:转换大小写

r:替换光标所在处的1个字符,3r三个字符

R:完全替换模式,ESC退出

d:删除范围,可配合方向键hjkl删除当前行和同方向行

d$:删除到行尾

d^:删除到非空行首

d0:删除到行首

dw,de,db

dd:删除行,3dd向下删除3行

D:从光标当前位置一直删除到行尾,保留空行,等同于d$

y:复制,y$,y0,y^,ye,yw,yb

yy:复制行,Y复制整行

p:小写,若为行粘贴则是粘贴在当前光标所在行的下方;若为文本则粘贴在光标的后面

P:大写,若为行粘贴则是粘贴在当前光标所在行的上方;若为文本则粘贴在光标的前面

c:修改后切换到插入模式

c$,c^,c0,cb,ce,cw

cc:删除当前行并输入新内容

C:删除当前光标到行尾,并切换到插入模式


100iroot[ESC]粘贴root 100次

0y$:组合命令:0-移到行首,y-从这里开始复制,$-复制到本行的最后一个字符

ye:从当前位置复制到本单词的最后一个字符

gU:变大写

gu:变小写


扩展命令模式:以:为命令开始,显示在左下角,以下:均省略,不再说明

#,#:3,9:从第3行到第9行

#,+#:3,+4:从第3行到第7行

.:当前行

$:最后一行 .,$-1:当前行到倒数第二行

%:全文,相当于1,$


vim支持正则表达式,在扩展命令模式下

/pat1/,/pat2/ :从第一次被pat1模式匹配到行开始,一直到第一次被pat2匹配到的行结束

#,/pat/ , /pat/,$

使用方式:后面跟一个编辑命令

d,y,w,r

w f3:将指定范围内的行另存到指定文件中

r f2:在指定位置插入指定文件中的所有内容

vim +/usera passwd 直接跳转至usera的行

:/^bin/,/^halt/y 复制以bin开头,以halt结尾的行

/word:从光标处向下查找

?word:从光标处向上查找

n:与命令同方向 N:与命令反方向

s/查找的内容/替换的内容/修饰符 :查找并替换

s/root/rooter/g

s/root/&er/g 同上,&表示引用前面查找到的内容

s/r..t/&er/g 简写,使用正则方式

s/r..t/user:&/g 正则

修饰符:i忽略大小写,g全局替换,gc全局替换,每次替换前询问

查找替换中的分隔符/可以替换为其他的字符,如#@+,方便替换路径,如:

s@/etc@/var@g :将/etc替换为/var,全部替换

s#/boot#/#i :将/boot替换为/且忽略大小写

vi fstab

:%s/^#/*/ 表示以#开头的行替换为以*开头

:1s/root/ROOT/g 替换第一行的root为ROOT

:1s/root/a&b/g

:%s/^#// 表示删除注释符#

:%s/^UUID/#&/

:%d 清空文件

:%s@/dev/sd@/etc/hd@g


命令模式:撤销更改

u:撤销最近的更改,3u撤销前3次

U:撤销此行的所有更改,条件为光标必须始终定位在此行,否则无效

ctrl+r:重做

.:重复一个操作

n.:重复前一个操作n次


录制宏:命令模式下

qa //开始录制宏,名称为a

操作编辑。。。 //开始操作

q //退出编辑操作

@a //运行宏a

@@ //重复执行宏


vim的寄存器:

有26个命名的寄存器(a,b,c...z)和1个无命名的寄存器

名称寄存器格式:"寄存器名称。放在数字和命令之间,如3"tyy 表示复制3行到t寄存器中

未指定名称,则使用无命名寄存器:3yy 表示复制三行到无命名寄存器中


有10个数字寄存器(0-9)0为最近复制,1为最近删除的内容。变更1转存到2,2转存到3,以此类推,数字寄存器不能在不同会话间共享。

格式:数字"寄存器命令,5"bdd,未指定则使用无命名寄存器4"y

3yy:复制3行

3"ayy:复制3行到a寄存器

"ap:粘贴a寄存器的内容


编辑二进制文件步骤:

dd if=/dev/zero of=b1 bs=1 count=6

hexdump b1

hexdump -C b1

vim -b b1

:%!xxd 切换为可读的十六进制

进行编辑二进制文件

:%!xxd -r 重新转换回二进制

:wq 保存退出


可视模式:

v 面向字符

V 面向行

ctrl+v 面向块

可视化键可用于与移动键结合使用,w,),},箭头等

突出显示的文字可被删除,复制,变更,过滤,搜索和替换


多文件模式:

vim f1 f2 f3 ...

:next 下一个

:prev 前一个

:first 第一个

:last 最后一个

:wall 保存所有

:qall 退出所有

:wqall


多窗口:

vim -o f1 f2

o:水平分割,O:垂直分割

ctrl+w 窗口间切换

单文件窗口分割,重复打开当前文件,Windows下Ctrl+Tab切换,顺序为从上往下,从左往右。

:vs 左右

:sp 上下

Ctrl+ww 窗口切换,同Ctrl+Tab

Ctrl+wh 切换到左侧窗口,wl右侧窗口,wj向下,wk向上。hjkl左下上右

ctrl+w,s 水平分割,split

ctrl+w,v 垂直分割,vertical

ctrl+w,q 取消相邻窗口

ctrl+w,o 取消全部窗口

:wqall 退出


定制vim配置文件

全局/etc/vimrc,个人~/.vimrc

set [no]nu 行号

set [no]sm 括号成对匹配

set [no]ai 自动缩进

set [no]hlsearch 高亮搜索

set [no]ic 忽略字符大小写

syntax on[off] 语法高亮

set fileformat=dos 启用Windows格式

set fileformat=unix 启用unix格式


"设置文本宽度

:set textwidth=65

:set wrapmargin=15

:help option-list 查看所有选项列表

:set or :set all 查看所有set设置

:source % 使当前编辑的配置文件生效(可简写为:so %),编辑窗口不能关闭

vimtutor 命令行直接打开,可自由编辑,关闭后自动还原,用于练习vim命令

:e . 打开当前目录

:echo $MYVIMRC 显示vimrc配置文件的路径

:source $MYVIMRC

nmap,ev :e $MYVIMRC<cr> 定义快捷键编辑vimrc

:tabedit $MYVIMRC 新开标签页

:tabclose 关闭当前标签页

nmap,ev :tabedit $MYVIMRC<cr> 通过快捷键,ev在新标签打开vimrc配置文件


通过设置统一的快捷键首mapleader来实现组合多个功能操作

"--------------Mappings---------------"

let mapleader = ","

nmap <leader>ev :tabedit $MYVIMRC<cr>

nmap <leader><space> :nohlsearch<cr>

nmap <leader>w :w<CR>


"自动加载vimrc文件

augroup autosourcing

autocmd!

autocmd BufWritePost _vimrc source % 自动加载vimrc文件

augroup END


"窗口切换,ctrl+j向下,ctrl+k向上,ctrl+h向左,ctrl+l向右

nmap <c-j> <c-w><c-j>

nmap <c-k> <c-w><c-k>

nmap <c-h> <c-w><c-h>

nmap <c-l> <c-w><c-l>


"设置tab键为4个空格

set ts=4

set expandtab

set autoindent

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读