Linux学习命令汇总五——vim 命令及相关使用技巧

本章Blog相关Linux知识点正则表达式


vim模式:编辑模式(命令模式)——键盘操做一般解析为编辑命令;输入模式——键盘输入模式;末行模式——Vim内置的命令接口,执行Vim内置命令shell

vim配置文件: /etc/vimrc  
vim

模式转换:编辑器

编辑模式——> 输入模式:
ide

    i:在当前的光标所在的字符的前面,转入输入模式spa

    I:在当前的光标所在的行首,转入输入模式接口

    a:在当前的光标所在的字符的后面,转入输入模式string

    A:在当前光标所在的行尾,转入输入模式it

    o:在当前的光标所在的行的下面,新建一行,转入输入模式
ast

    O:在当前的光标所在的字符的上面,新建一行,转入输入模式

输入模式——>编辑模式:

   按“ESC”键,转入编辑模式

输入模式——> 末行模式:

    输入“:”,转入末行模式

末行模式——>编辑模式:

    按两次“ESC”键 ,转入输入模式

退出模式:

    :q 退出

    :wq  保存退出

    :q!   不保存退出

    编辑模式ZZ  保存退出

末行模式

    在编辑模式下,输入: 便可  

    :10d    删除第10行

    :10,20d      删除第10到20行

    :! ls /etc    与命令相结合

Vim打开文件


# vim /path/to/somefile  若文件存在,则打开 ;若不存在,则建立并打开

# vim +n  FILE   打开FILE文件且光标选择FILE文件的第n行

# vim + FILE      打开FILE文件且光标选择FILE文件的最后一行

# vim + /PATTERN FILE   打开FILE文件,定位至第一次被PATTERN匹配到的行的行首

一、多个文件同时打开

# vim /etc/passwd /etc/rc.d/rc.sysinit /etc/issue

    :next   跳转到下一个文本

    :prev  跳转到前一个文本

    :first   跳转到第一个文本

    :last   跳转到最后一个文本

    :qalll  退出全部文本,不保存

    :wall   保存全部文本并退出

二、分割窗口打开多个文件

# vim -o /etc/passwd /etc/issue

    :o  水平分割窗口

    :O  垂直分割窗口

    Ctrl+w  切换窗口 ;左右箭头,上下箭头   进行光标转移


Vim移动光标


一、逐字符移动光标

    h键   向前移动光标;l键  向后移动光标 ;j键 向下移动光标 ;k键 向上移动光标

二、逐单词移动光标

    w键   移动光标至下一个单词的词首;e键  移动光标至下一个单词的词尾 ;b键 移动光标至前一个单词的词首

    Nw | Ne |Nb 表明了向前,向后移动了n个单词

三、光标行首,行尾跳转

    0(数字0)光标移动到行首 ; ^ 光标移动到行中的第一个非空白字符  ; $  光标移动到行的行尾

四、光标逐行跳转

    G   光标跳转至最后一行 ; NG 光标跳转到第N行  ;在末行模式下,直接给出行号便可 如 :10   。

五、光标逐句跳转

    ) 光标跳转至下一句 ;

   (  光标跳转至上一句 ;

    Num 与句跳转快捷键一同使用,向指定方向跳转句的个数  ,如10( ,表明向前跳转10句

六、光标逐段跳转

    } 光标跳转至下一段 ;

    {  光标跳转至上一段 ;

    Num 与段跳转快捷键一同使用,向指定方向跳转段的个数  ,如10{ ,表明向前跳转10段


Vim编辑操做


一、删除单个字符命令x

    x 删除光标所在处的单个字符 ;

    Nx 删除光标所在处及向后的共N个字符

二、删除行命令d

    d命令与跳转命令结合使用;如d0 ,d$  , d{  , d(  ,dw , dh  ;

    dd删除光标所在行  

三、末行模式下的范围定界

    :n,md   删除第n行到m行 ; 

    :.   表示当前行  ;

    :$  表示最后一行    如 :.,$-2d 表明删除当前行到倒数第二行的内容

    :/prt1/,/prt2/  被第一次prt1匹配的行至被第二次prt2匹配的行就结束

    :+N   向下的N行

    :%   表示全文

四、替换命令r

    r  替换光标所在处的字符

五、改变命令c ,与d命令类似

    c 表示删除内容并进入输入模式进行内容替换

    c 与跳转命令结合使用,如 c0 ,c$  , c{  , c}  , cw , ch

    cc 删除光标所在行,并进入输入模式

    Ncc 删除光标以后的N行,进入输入模式

六、复制命令y

    y命令与跳转命令结合使用;如y0 ,y$  , y{  , y(  , yw , yh  ;

    yy 复制当前行

    Nyy 复制光标以后的N行

七、粘贴命令p

    p 若是删除的或复制的内容为整行内容,则粘贴纸光标所在行的下方 ,若是删除或复制的内容为为非整行内容,则粘贴至光标所在行的后面

    P  若是删除的或复制的内容为整行内容,则粘贴纸光标所在行的上方 ,若是删除或复制的内容为为非整行内容,则粘贴至光标所在行的前面

八、撤销命令u

    u   撤销以前的命令操做

    #u  撤销#次操做

    Ctrl +r  撤销掉错误的撤销操做


Vim翻屏操做及查找替换


Ctrl + f  向文件尾部翻一屏  ; Ctrl + b  向文件首部翻一屏

Ctrl + d  向下翻半屏  ; Ctrl + u  向上翻半屏

Enter 向后翻一行  ;  k  向上翻一行

/PATTERN   向下查找匹配PATTERN的字符

?PATTERN  向上查找匹配PATTERN的字符

查找替换:

    在末行模式下使用s命令

    格式为   :ADD1,ADD2 s@PATTERN(正则表达式)@string@gi    ,其中g 表明golal ,i表示不区分大小写

例:1,+9s@[[:space:]]\{1,\}#@@g     从第一行到第10行中,查找以致少一个空白字符,且紧跟# ,替换为空

例:1,28s@^[^#].*@#&@g     从第一行至第28行中,替换以非# 开头的行,前面加#

例:1,28s@\(l\(..e\)\)\(.*\1\)@L\2\3@g   替换先后相同的l为L

将当前文件中的部份内容另存为另一个文件,w

    末行模式下  :ADDR1,ADDR2w /PATH/to/somwhere  

将另一个文件的内容填充在当前文件中

    末行模式下 :r /PATH/To/Somewhere 

根shell 交互

    末行模式下 :!COMMAND


Vim窗口属性定义


一、显示或取消行号

    :set nu  显示行号 

    :set nonu 取消行号显示

二、设定vim编辑器显示忽略或区分字符大小写

    :set ic  忽略大小写

    :set noic 不忽略大小写

三、设定自动缩进

    :set ai 或 :set autoindent  设置自动缩进

    :set noai  取消自动缩进

四、高亮显示搜索结果

    :set hlseartch   高亮显示

    :set nohlsearch 取消高亮显示

五、语法高亮

    :syntax on 语法高亮显示

    :syntax off 关闭语法高亮显示

六、显示与之匹配的括号

    :set sm   显示与之匹配的括号

    :set nosm  取消显示与之匹配的括号