• linux全套 | vi和vim编辑器 | 04


    vi和vim的基本介绍

    所有的linux系统都会内建vi文本编辑器.

    vim具有程序编辑的能力,可以看作是vi的增强版本,可以主动的以字体颜色辨别语法的正确性,方便程序设计. 代码补全,编译几错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用.

    vi和vim的三种常见模式

    正常模式

    在正常模式下,我们可以使用快捷键.

    vim打开一个文件默认就是进入正常模式.

    在这个模式中, 可以使用上下左右来移动光标,对文档内容进行各种复制,删除,粘贴的操作.

    插入模式

    在模式下,程序员可以输入内容.

    一般按a,i进行编辑输入.

    命令行模式

    在命令行模式中,输入相关指令,完成读取,存盘,替换,离开vim,显示行号等操作.

    vi和vim 三种模式的相互转化图

    vim的快捷键

    1. 选中,剪切,粘贴
    选中  v
    剪切  d
    粘贴  p
    
    1. 拷贝当前行
    yy  拷贝当前行
    5yy  拷贝当前向下的5行
    p 粘贴
    
    
    1. 删除当前行
    dd  删除当前行
    5dd  删除当前向下的5行
    
    1. 撤销,不撤销
    u  Ctrl+z
    Ctrl+r  Ctrl+y   
    
    1. 全选操作
    v  可视化选择
    gg  首行
    G  尾行
    
    1. 查找
    /关键字  查找关键字
    n,b  前进和后退
    :noh  退出查找高亮
    
    1. 跳转指定行数
    行数+G/gg  跳转指定行数
    

    vim的基本配置

    修改vim的配置文件

    如果是对个人用户,配置文件一般设置为隐藏文件~/.vimrc

    vim的基本配置

    默认情况下,Vim编辑器里既不显示行号,也没有语法高亮,智能缩进. 为了方便使用,基本的Vim选项一般会包括:

    支持中文不乱码

    '设置编码'
    set fileencodings=utf-8,ucs-bom,gb18030,gbk,gb2312,cp936
    set termencoding=utf-8
    set encoding=utf-8
    

    与Vim编码有关的变量包括:encodinfileencodingtermencoding
    encoding选项用于缓存的文本、寄存器、Vim脚本文件等;fileencoding选项是Vim写入文件时采用的编码类型;ermencoding选项表示输出到终端时采用的编码类型。

    显示行号

    '显示行号'
    set nu
    

    nunumber的缩写,所以上面两个配置命令是完全等效的。

    突出显示当前行,列

    set cul
    set cuc
    

    启用鼠标

    set mouse=a
    set selection=exclusive
    set selectmode=mouse,key
    

    Vim编辑器里默认是不启用鼠标的,也就是说不管你鼠标点击哪个位置,光标都不会移动。通过以上设置就可以启动鼠标,不过对于高级玩家来说,用Vim就是为了解放双方不用鼠标,所以这个设置可以根据个人爱好选择。

    显示括号匹配

    set showmatch
    

    设置缩进

    '设置Tab长度为4空格'
    set tabstop=4
    '设置自动缩进长度为4空格'
    set shiftwidth=4
    '继承前一行的缩进方式,适用于多行注释'
    set autoindent
    

    设置粘贴模式

    set paste
    

    Vim中通过鼠标右键粘贴时会在行首多出许多缩进和空格,通过set paste可以在插入模式下粘贴内容时不会有任何格式变形、胡乱缩进等问题

    打开文件类型检测

    filetype plugin indent on
    

    显示状态栏和光标当前位置

    '总是显示状态栏'
    set laststatus=2
    '显示光标当前位置'
    set ruler
    
  • 相关阅读:
    [转] 敏捷软件开发 Agile Software Development
    Concurrent Framework Synchronizer 同步器: Easy to use but easy to make dead lock as well
    Concurrent Framework Timer
    JavaScript Return Object.Type
    Js AJAX Event
    js Functor Copy
    多线程19-线程池批量插入线程
    多线程18-QueueUserWorkItem
    多线程17-Async Programming Model
    多线程16-SpinWait
  • 原文地址:https://www.cnblogs.com/Rowry/p/12521429.html
Copyright © 2020-2023  润新知