• LInux中VIM的使用和定制


    一.VIM的使用

    1.Uinux系统中编辑器的演变

    不同版本的linux中带的编辑器不同,例如有ed/sed、ex、Vi/Vim,现在最常用的是Vim

    Vi实际上是minimal vim

    Vim是加强版vimvim-enhanced)可以识别语法,有颜色,但文件不在其原目录下时有时可能无法识别语法。

    2.vim的三种模式

    命令模式、插入模式、命令行模式

    进入vim就是命令模式,进入命令行模式按“:”

    由命令模式进入插入模式按任意插入模式快捷键

    进入或退出命令行模式都是按ESC

    3.打开文件

    vim file 打开文档

    vim -o /etc/paswd passwd 上下打开两个文档

    vim -O /etc/paswd passwd 左右打开两个文档

    Ctrl+w然后按上下左右来切换

    vim -p /etc/paswd passwd 分页打开两个文档

    Ctrl+Page Up/Page Down来切换

     

    4.命令模式快捷键

    PS:在执行以下命令前加数字n,会执行n此操作,如5yy,即复制5

    ①插入(进入插入模式)

    i:在当前字符的左边插入

    I:在当前字符首行插入

    a:在当前字符的右边插入

    A:在当前行尾插入

    o:在当前行下面插入一个新行 //open

    O:在当前行上面插入一个新行

    ②复制/粘贴/删除/替换

    s:删除当前字符,并进入插入模式i

    S:删除当前行,并进入插入模式i(无法删除空行,但可以用dd删除)

    x:删除当前字符

    dd:剪切/删除当前行

    dw:剪切/删除当前词(必须以Ctrl+左右键的形式移动到该词)

    D:删除当前字符至行尾的所有字符

    yy:复制当前行

    yw:复制一个单词

    p:粘贴(粘贴到当前字符右侧,如果是一行则粘贴到下一行)

    r:替换当前字符 //replace

    ③撤销/定位

    u:撤销一步 //undo

    Ctrl+r:取消撤销 //redo

    G:到文档末尾

    3G:到第三行

    L:到屏幕末尾

    3L:到屏幕末尾倒数第3

    ④剪切板的使用

    a3yy:复制三行到剪贴板a(按“,再按a3yy)

    ap:从剪贴板a复制

    ⑤块操作

    先按v,然后通过左右间选择块长度,即可进行复制剪切

    5.命令行模式快捷键

    ①保存/退出

    e!:不保存(撤销编辑)

    e! /etc/passwd:不保存并编辑下一个文件

    w:保存

    w a.file:另存为

    x:保存

    q:退出

    ②追加/替换

    !ShellCommand:执行shell命令

    r /etc/passwd:将另一个文件读入到当前位置

    r !ls:将当前目录下的文件名读入到当前位置

    1,5 w >> aaa.file1-5行写到文件aaa末尾

    1,$ s/sbin/root/czd/g:将1-尾行的sbin/root替换为czd

      为转义字符,/g表示不询问(c表示询问,默认不询问)$表示尾行,%为全部(1,$=%),           s表示替换

    ③显示

    /string 查找

    set  nu:显示行号

    set  nonu:不显示行号

    split  /etc/passwd 上下分屏打开另一个文件

    vsplit /etc/paswd 左右分屏打开另一个文件

    二.自定义vim

    1.配置vimrc文件

    添加vimrc文件,如果是给自己自定义vim则在自己的主目录下创建,给所有用户定制则在/etc/下创建此文件,添加自己的习惯,如:

    set nu //显示行数

    PS:凡是*rc的文件都是定制脚本

     2.别名设置

    为了输入vi时调用的是加强版vim,可进行如下别名配置:

    [root@localhost desktop]# alias //查看指令的别名

    [root@localhost desktop]# alias vi=vim //设置别名



    三.ctags

    ctags(Generate tag files for source code)是vim下方便代码阅读的工具。尽管ctags也可以支持其它编辑器,但是它正式支持的只有VIM。并且VIM中已经默认安装了Ctags,它可以帮助程序员很容易地浏览源代码。ctags 最先是用来生成C代码的tags文件,后来扩展成可以生成各类语言的tags, 有些语言也有专有的tags生成工具(比如java的jtags, python的 ptags).

    1安装ctags并创建查找目录

    ①安装

    rpm -qa|grep ctags 查看是否安装了ctags

    如果没有安装下载源码,然后进入源代码根目录执行./configure,然后执行make,编译成功后执行make install,嫌麻烦的话也可以下载别人编译好的rpm包

    ②创建查找目录

    ctags -R . 在当前目录执行ctags

    “-R”表示递归创建,也就包括源代码根目录(当前目录)下的所有子目录。“*”表示所有文件。这条命令会在当前目录下产生一个“tags”文件,当用户在当前目录中运行vi时,会自动载入此tags文件。Tags文件中包括这些对象的列表:用#define定义的宏枚举型变量的值函数的定义、原型和声明名字空间(namespace)类型定义(typedefs)变量(包括定义和声明)类(class)、结构(struct)、枚举类型(enum)和联合(union)类、结构和联合中成员变量或函数VIM用这个“tags”文件来定位上面这些做了标记的对象。

    当项目结束,编译完成时可手动删除tags文件

    搜索只限于当前目录及其子目录,如果想在其他目录也可以搜索,可以添加“settags=路径”命令


    2.ctags的使用

    shell中的查找命令

    vi -t main 打开定义main(函数变量或其他)的文件,并将光标定位这一行

    ctags -t get-options() //查找函数get-options

    vim中的查找命令

    Ctrl+] :查找一个函数,并调到这个函数或变量定义的源文件中 //需将光标置于此函数

    tselect get-options / /查找get-options

    ③查看搜索结果

    :tn (同一文件中)下一处定义

    :tp (同一文件中)上一处定义

    :ts查看搜索结果(显示出现所查找关键字的文件),按对应数字进入各文件

    ctrl+t 按原路返回


  • 相关阅读:
    线上redis禁止使用keys等时间复杂度高的命令
    组合索引的使用效果的总结
    Netty 断线重连解决方案
    可作为GC Root的对象
    在同一个sqlSession执行一个相同的查询时,Mybatis有一级缓存,不会去查数据库,由此引发的一个bug
    HashMap 和 currentHashMap JDK8总结
    Java程序导致服务器CPU占用率过高的问题排除过程
    一条sql执行的很慢的原因有哪些
    主键索引和非主键索引的区别
    黑马程序员
  • 原文地址:https://www.cnblogs.com/zandon/p/11923617.html
Copyright © 2020-2023  润新知