美文网首页
vim编辑器使用介绍

vim编辑器使用介绍

作者: dxldeng | 来源:发表于2017-11-09 17:31 被阅读46次

    vim是由vi发展来的一个强大的文本编辑器,代码补完、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。
    vim比较难懂,一开始接触时,进入去了都不知怎么退出,但是我么只要深入学习,多应用,慢慢就会适应它。下面介绍下它的一些简单使用方法。

    1.打开文件

    vim +n 文件名
    vim 文件名
    n表示打开文件后让光标直接处于第n行。

    2.vim三种基本模式

    • 编辑模式,也叫命令模式,默认打开文件时进入的就是这个模式,可以进行复制,删除,替换等编辑操作。
    • 输入模式
    • 末行模式 ,内键命令行接口。
      三种模式间之间切换
      (1)编辑模式进入输入模式,在编辑模式下按下下面字母键。
      i:insert, 在光标所在处输入,常用
      a: append,在光标所在处后方输入
      o:在光标所在处的下方打开一个新行进行输入,常用
      I:在光标所在行的行首输入
      A:在光标所在行的行尾输入
      O:在光标所在处的上方打开一个新行进行输入
      (2)输入模式进入编辑模式,按一下esc键

    (3)编辑模式进入末行模式,按一下“:”键
    (4)末行模式进入编辑模式,按一下“esc”键

    3.关闭文件##

    ZZ 保存并退出
    ZQ 无条件退出,不保存
    :q 退出,没进行任何编辑时
    :q! 强制退出,不保存
    :wq 保存并退出
    :w /PATH/TO/SOMEFILE 把文件保存到其他目录下
    :r filename 在光标后面读入文件
    :n1,n2 w filename 将n1到n2行间内容保存到另一文件

    4,.光标跳转##

    字符间跳转
    h 左
    j 下
    k 上
    l 右
    也可以h,j,k,l 前加数字,跳转到指定的个数字符。例如:5h表示向左移动5 个字符,5k表示光标同一位置向上移动5行
    单词间跳转
    w 光标跳到下一单词的词首
    e 光标跳到当前或后一个单词的词尾
    b 跳到当前或当前单词的词首
    还可以在前面加数字进行指定个数单词跳转,例如5w,往前跳5个单词到词首
    行首行尾跳转
    0 数字0,跳转到行首
    ^ 跳到行首的第一个非空白字符
    $ 跳到行尾
    行间跳转
    G 跳到最后一行
    1G,gg:跳到第一行
    nG:跳到指定的n行。例如10G,是跳到第十行
    n<Enter> :光标向下移动n行

    *句间和段间跳转
    句间跳转,用小括号:)和(。
    段间跳转,用大括号 ‘{’ 和‘}’ 。

    5.翻屏操作

    ctrl+f 向文件尾部翻一屏
    ctrl+b向文件首部翻一屏
    ctrl+d 向文件尾部翻半屏
    ctrl+u 向文件首部翻半屏
    回车键enter:按行往后翻

    vim常用的编辑命令

    1.字符编辑

    x: 删除光标所在的字符
    [n]x:删除删除光标开始指定的往后n个字符,例如,vim这个单词,假如光标在字符v处,编辑模式下输入3x,删除vim.。
    xp: 交换光标所在字符与其后面的字符的位置,例如,要是光标在单词vi的v上面,编辑模式下输入xp,则他们的位置会改为iv。

    2.替换命令

    r:替换光标所在处的单个字符,编辑模式下输入一次r后,再输入想要替换为的字符即可。

    3.删除命令

    dd 删除当前行
    ndd:删除光标所在向下n行。例如10dd,删除20行
    x:删除光标后面一个字符
    X:删除光标前面一个字符
    nx:n为数字,删除光标后面连续n个字符,例如10x。连续删除10个字符
    d0 删除从当前光标开始到行末的内容
    d$ 删除从当前光标开始到行末的内容
    cw/cW 删除当前单词从光标开始的部分并进入插入模式
    cb/cB 删除当前单词从光标所在位置至单词开始的部分并进入插入模式
    dw/dW 删除当前单词从光标开始的部分但不进入插入模式
    db/dB 删除当前单词从光标所在位置至单词开始的部分但不进入插入模式
    cc:删除当前行并进入插入模式
    d} 删除当前段落从光标位置开始到段末的内容
    d{ 删除当前段落从光标位置开始到段首的内容
    d) 删除当前句子从光标位置开始到句末的内容
    d( 删除当前句子从光标位置开始到句首的内容

    4.复制命令

    yw 复制当前单词从光标开始的部分
    yy 复制光标所在行的所有字符
    nyy:复制光标开始往后n行,例如5yy,复制5行
    y$复制光标开始到行尾字符
    y^复制光标开始到行首字符
    y0复制光标所在行行首到光标位置字符

    5.粘贴命令 p

    p:为已经复制好的内容粘贴在光标所在行下方进行粘贴,例如光标要是在第20行,复制的内容将会粘贴在第20行之后。
    P(大写):为已经复制好的内容粘贴在光标所在行上方进行粘贴,例如光标要是在第20行,复制的内容将会粘贴在第20行之前。

    6.撤消与重做

    u 撤消更改
    Ctrl-R 重做更改
    “.”重复执行上一个操作

    7.改变命令c,删除后进入编辑模式

    cc删除整行所有字符串,但不会删除该行,进入编辑模式

    8.大小写转换

    ~ 将光标下的字母大小写反向转换
    guw 将光标所在的单词变为小写
    guw 将光标所在的单词变为小写
    gUw 将光标所在的单词变为大写
    guu 光标所在的行所有字符变为小写
    gUU 光标所在的行所有字符变为大写
    g~~ 光标所在的行所有字符大小写反向转换

    vim末行模式,编辑模式下按“:”进入

    1.地址定界

    : n 光标转到第n行,例如5,转到第五行
    $ :到最后一行
    n1,n2 :指定行范围,n1为起始行,n2为结束行
    % :全文
    一般配合d,y,c命令使用,例如1,10d删除1到10行
    w :/PATH/TO/SOMEFILE:将范围内的文本保存至指定的文件中.例如 10,20 w /tmp/1020.txt ,将10到20行保存到tmp目录下的1020.txt文件中

    2.查找与替换

    /abc :从光标开始向文件尾部开始查找所有为abc字符串
    ?abc :从光标开始向文件首部开始查找所有为abc字符串
    n 重复前一个搜索动作,搜索下一个 ,和命令方向相同
    N 反向搜索下一个,和命令方向相反

    • :在文件中向前搜索当前光标所在的单词
      “#” :在文件中向后搜索当前光标所在的单词
    • 查找与替换格式分隔符:s/.../.../ ,s@@@,s###,三种后面加g是全局查找意思,例如
      s###g。
    • :n1,n2s#word1#word2#g n1,n2为数字。意思是在n1,n2
      行之间查找word1这个字符串并替换为word2,例如:100,200s#for#FOR#g,在100到200行之间查找for这单词,替换为大写FOR。
    • :1,$s#word1#word2#g 意思是在第1行到最后一行查找word1这个字符串并替换为word2。
    • :1,$s#word1#word2#gc 在第1行到最后一行查找word1这个字符串并替换为word2。在替换前提示用户是否进行取代。

    末行模式查找支持正则表达式

    例如:

    1、复制/etc/rc.d/rc.sysinit文件至/tmp目录,将/tmp/rc.sysinit文件中的以至少一个空白字符开头的行的行首加#
    :1,$s@^[[:space:]]@#@g
    2.复制/boot/grub/grub.conf文件至/tmp目录中,删除/tmp/grub.conf文件中的行首的空白字符
    :%s@^[[:space:]]+@@g
    3.删除/tmp/rc.sysinit文件中的以#开头,且后面跟至少一个空白字符的行行的#和空白字符
    :%s@^#[[:space:]]+@@gc
    4.为/tmp/grub.conf文件中的前三行的行首加#号
    :1,3s@^#@##@g
    5.将/etc/yum.repos.d/CentOS-Media.repo文件中所有的enabled=0或gpgcheck=0最后的0改为1

    :%s#\(enabled\|gpgcheck\)=0#\1=1#g
    

    vim可视化

    可视化是为了便于选择文本,vim引入的一种模式
    在编辑模式下按下面的字母:
    v 进入字符选择可视化模式,光标经过的地方会反白选择
    V 进入行可视化模式,光标经过的行会反白选择
    Ctrl+v 进入区块可视化模式,可以用长方形的方式选择字符。
    在可视化模式选择后可以按,y,d,进行复制和删除操作

    vim多文件编辑功能

    1.打开多文件 vim file1 file2 .......

    选项:-o 水平分割窗口
    -O:垂直分割窗口

    2.文件间切换 和退出

    :next切到下一个文件
    :prev切到上一个文件
    :first切到第一个文件
    :last 切到最后一个文件
    :wqall所有文件保存并退出
    :wall保存所有文件
    :qall退出所有文件

    3.窗口之间切换

    按下ctrl+w组合键,然后按箭头键进行切换
    单文件窗口下再进行窗口分割:
    按下ctrl+w组合键,然后按s:水平分割窗口
    按下ctrl+w组合键,然后按v:垂直分割窗口

    vim定制

    1、行号
    显示:set number, 简写为set nu
    取消显示:set nomber, set nonu
    2、括号匹配高亮
    匹配:set showmatch, set sm
    取消:set nosm
    3、自动缩进
    启用:set ai
    禁用:set noai
    4、高亮搜索
    启用:set hlsearch
    禁用:set nohlsearch
    :noh 取消搜索后结果的高亮显示
    5、语法高亮
    启用:syntax on
    禁用:syntax off
    6、忽略字符大小写
    启用:set ic
    禁用:set noic
    7.设置tab键缩进4个字符;set tabstop=4
    8.set autoindent 设置自动缩进

    1. set shiftwidth=4 表示每一级缩进的长度为4个空格

    注意:在末行模式下的设定,仅对当前vim进程有效。
    要永久有效:修改全局配置文件:/etc/vimrc

    相关文章

      网友评论

          本文标题:vim编辑器使用介绍

          本文链接:https://www.haomeiwen.com/subject/dtukyxtx.html