VIM

vim

常用选项


+# 打开文件后,让光标处于第#行的行首,+默认行尾
+/PATTERN 让光标处于第一个被PATTERN匹配到的行行首
-b file 二进制方式打开文件
-d file1 file2… 比较多个文件,相当于 vimdiff
-m file ? 只读打开文件
-e file ? 直接进入ex模式,相当于执行ex file 
-y file ? Easy mode (like "evim", modeless),直接可以操作文件,ctrl+o:wq|q! 保存和不
保存退出
#编辑模式转输入模式
i:insert
a:append 光标所在处后方输入
I:光标所在处首行
A:光标所在处尾行
o:光标所在处下方打开一个新行
O:光标所在处上方打开一个新行
一次编辑多个文件例如:
[root@localhost ~]# vim  issue  fstab  yum.conf  -o
  -o 上下分隔   ctrl+w+左右镜头切换
  -O 水平分隔   ctrl+w+上下切换
打开多个文件跳转:
   :next 下一个
   :prev 上一个
   :first 第一个
   :last 最后一个
:qall 退出所有文件
:wqll 修改并退出所有文件

行首行尾跳转 ^  $
行间移动 #G  #gg
1G 或1gg 跳到首行
G 跳到最后一行
x 删除光标所在处的字符
例如4x表示删除4个字符
d^ 删除光标之前的全部删除
d$ 删除光标所在行到尾部
dd删一行
#dd 删除光标所在行的后#行
复制
yy 复制一行
#yy 光标所在处向下复制#行
p小写向下粘贴
P大写向上粘贴
u 撤销之前的操作,如果错误操作
Ctrl+r 反撤销
50u  最多撤销50次

ZZ  (大写)保存退出
翻屏
Ctrl +f 向文件尾部翻一屏
Ctrl+b 向文件首部翻一屏
Ctrl+d 向文件尾部翻半屏
Ctrl+u 向文件首部翻半屏
查找:
/keyword  #查找支持正则表达式
? Keyword
n:往下翻查找结果
N:往上翻查找
可视化模式
  -v 让光标走过的区域选择
 -V 选择区域
Ctrl +v 使用这种方式注释选择行
例如:Ctrl +v  shift+i  #  ESC
      x可以删除内容

:set nu 设置行号
:set nonu 取消行号
:set ic  忽略大小写
:set noic
:set  ai  设置对齐
:set noai 取消对齐
:set paste 保留原来的格式
显示Tab和换行符 ^I 和$显示
        启用:set list
        禁用:set nolist
支持正则表达式
:1,5d  1-5行全部删除
:.,+3d 当前行到后3行删除
:1,5/^#/d 第一行到第五行所有以#开头的全部删除
:1,5s#root#admin#g  1~5行的root全部替换为admin
:%s#root#admin#g    全文替换
 i忽略大小写
 替换:s 修饰符
s#/boot#/#i
s@/etc@/var@g   用@就不用转义了

:.,$d 当前行到最后一行删除
:.,$-1
:.,$-2     
:.,$d   当前行到最后一行删除
:3,6d 第三行到最后一行都删除
:3,6y 第三行到第六行复制
:%d 删除全文
:%w f4.txt 会自动在当前的路径下创建一个f4的文件,且将内容写入到f4文件                                                  :r  /etc/passwd     将当前的文件的内容复制到现在正在编辑的文件的里面
:r!hostname -I   命令的执行结果写入当前正在编辑的文本     (r后面跟着文件   r!后面接的命令)
:!hostname  不退出在shell里面执行命令
:X    这一步加密
解密                                                      
:set key=   
===========================================================================
p 粘贴在后面行
P 张贴在前面行
% 全局条件下
:set nu 设置行号
:set nonu 取消行号
:x 保存退出,如果内容没有更改就不会更新时间戳

格式:/xxx/xxx/ 三条固定的斜线之间插内容
     /   /   /三条斜线可以用@代替
:1,$s/^#// 第一行到最后一行所有行首的#全部替换空
:1,$s/^b/\/\// 第一行到最后一行所有行首以b开头的行全部替换为 //
:1,$s/^\/\//#/ 第一行到最后一行把那两条斜线替换为#号

窗口属性:
例如/etc/passwd 文件
:syntax on 打开语法高亮    
        off  关闭语法高亮
搜索高亮
:set hisearch
:set nohlsearch #取消高亮

:x 保存退出,如果内容没有更改就不会更新时间戳
:X 加密 解密的话输入两次空
替换:s 修饰符 
g:全局替换
i:查找不区分大小写替换  

格式:/xxx/xxx/ 三条固定的斜线之间插内容
     /   /   /三条斜线可以用@代替
:1,$s/^#// 第一行到最后一行所有行首的#全部替换空
:1,$s/^b/\/\// 第一行到最后一行所有行首以b开头的行全部替换为 //
:1,$s/^\/\//#/ 第一行到最后一行把那两条斜线替换为#号

窗口属性:
:syntax on 打开语法高亮
        off  关闭语法高亮
搜索高亮
:set hisearch
:set nohisearch   简写为:nohi

:set ff=doc  将linux的格式转换为windows格式
:set ff=unix 将window的格式转换为linux的格式

:set cul  在某一行显示横线

============================================================
Tab来指定代表的空格的个数 
启用:set expandtab      默认是八个
     set noexpandtab
     简写:
     set et

set ts=4  指定为四个
===========================================
输入模式
      当前页跳转:
          H:页首 M:页中间行 L:页底
         zt:将光标所在当前行移到屏幕顶端
         zz:将光标所在当前行移到屏幕中间
         zb:将光标所在当前行移到屏幕底端
ZZ 保存退出
ZQ 不保存退出
h左 l 右 j 下 k 上
dw 删除当前单词所在位置到这个单词的词尾
de 单前单词所在位置到下一个单词的词尾
3dd 当前行到后三行全部删除
u  撤回
ctrl r 回撤
U 撤回整行,不能离开此行

        w 下一个单词的词首
        e 当前的单词词尾
        b 往前,上一个单词的词首

        行首行尾跳转:
         ^ 跳转至行首的第一个非空白字符
         0 跳转至行首,不管有没有空白符
         $ 跳转至行尾

         行间移动:
         #G 或者扩展命令模式下 :# 跳转至由第#行
         G 最后一行
         1G, gg 第一行
         句间移动:
             ) 下一句 ( 上一句
          段落间移动:
             } 下一段 { 上一段

        命令模式翻屏操作
        Ctrl+f 向文件尾部翻一屏
        Ctrl+b 向文件首部翻一屏
        Ctrl+d 向文件尾部翻半屏
        Ctrl+u 向文件首部翻半屏
x 不切换输入模式删除,其实是剪切
xp 两个字母交换位置 x剪切的意思  剪切加粘贴
~自动转化为大写
J 两行凑一行
r替换一个字母
R 输入啥就替换啥

d 删除命令,可结合光标跳转字符,实现范围删除
d$ 删除到行尾
d^ 删除到非空行首
d0 删除到行首
dw
de
db
#COMMAND
dd: 剪切光标所在的行
#dd 多行删除
D:从当前光标位置一直删除到行尾,等同于d$

   复制命令(yank)
    y 复制,行为相似于d命令
    y$
     y0
    y^
    ye
    yw
    yb
    #COMMAND
    yy:复制行
    #yy 复制多行
    Y:复制整行

        粘贴命令(paste)
        p 缓冲区存的如果为整行,则粘贴当前光标所在行的下方;否则,则粘贴至当前光标所在处的后面
        P 缓冲区存的如果为整行,则粘贴当前光标所在行的上方;否则,则粘贴至当前光标所在处的前面

c: 删除后切换成插入模式
c$
c^
c0
cb
ce
cw
#COMMAND
cc:删除当前行并输入新内容,相当于S
#cc
C:删除当前光标到行尾,并切换成插入模式,相当于c$

查找
/PATTERN:从当前光标所在处向文件尾部查找
?PATTERN:从当前光标所在处向文件首部查找
n:与命令同方向
N:与命令反方向

 撤消更改
u 撤销最近的更改,相当于windows中ctrl+z
#u 撤销之前多次更改
U 撤消光标落在这行后所有此行的更改
Ctrl - r 重做最后的“撤消”更改,相当于windows中crtl+y
. 重复前一个操作
#. 重复前一个操作#次

============= ===================================================================
高级用法:
0y$ 复制整行
100iwang 将wang粘贴100次
先输入100,再按esc 再输入i 然后wang ,最后esc键
删除引号之间的内容: 光标在引号之间,按d 再i 最后双引号
di[] 删除括号中的内容 ,前提是光标在括号里

===================
多文件编辑:
vim  f1 f2 f3 f4 
:next 下一个
;perv 上一个
:first 第一个
:wall 保存所有
:qall不保存退出所有
:wqall 保存退出所有

可视化模式

在末行有”-- VISUAL -- “指示,表示在可视化模式
允许选择的文本块
v 面向字符,-- VISUAL --
V 面向整行,-- VISUAL LINE -- 
ctrl-v 面向块,-- VISUAL BLOCK -- 
可视化键可用于与移动键结合使用
 w ) } 箭头等
突出显示的文字可被删除,复制,变更,过滤,搜索,替换等
=========================================
范例:在文件行首插入#
输入ctrl+v 进入可视化模式
输入 G 跳到最后1行,选中每一行的第一个字符
输入 I 切换至插入模式
输入 # 
按 ESC 键

VIM

上一篇:ARP的欺骗泛洪攻击的防御——DAI动态ARP监控技术、


下一篇:DHCP协议