• 流畅的vim配置和使用


    之前我阅读大工程代码都是使用source insight,大工程使用它读起来还是比较方便的,但是对于小工程阅读则有点过于重,于是后来我使用vim+插件来读代码,最开始对没有鼠标的编辑器用的很难受,后来通过不断积累vim的插件和配置,vim已经成为了我最喜欢的编辑器。

    原生的vim只适合做简单的编辑和阅读,只有用魔法(插件+配置)加持,vim才能使用的得心应手
    vim的使用门槛有两点:配置插件、快捷键使用

    我希望通过我关于这两方面的分享可以帮你快速上手vim,享受离开鼠标的快感。
    我已附上我的配置和插件包,可以直接抄作业

    在这里插入图片描述

    0. 我的功能

    函数及变量跳转、快速全局查找、文件列表、函数变量列表、多组快捷键等

    1. 我的插件

    NERDTree、ctags、taglist、EasyGrep

    配置及插件下载,文件上传到了csdn,可免费下载,也可以直接私信我~

    zmq:~$ tar zxf vim.tgz
    zmq:~$ sudo apt install ctags
    zmq:~$ cd vim
    zmq:~/vim$ ll
    总用量 16
    drwxrwxr-x 3 zmq zmq 4096 113 11:50 ./
    drwxrwxr-x 6 zmq zmq 4096 113 11:49 ../
    drwxr-xr-x 9 zmq zmq 4096 1010 17:37 .vim/
    -rw-rw-r-- 1 zmq zmq 2294 113 11:49 .vimrc
    zmq:~/vim$ cp .vimrc .vim/ ~/ -rf
    
    在浏览的代码文件下,使用ctags建立链接
    zmq:~/vim$ ctags -R  
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    之后就可以愉快的使用了

    2. 我的vim常用快捷键

    最常用的编辑、保存、退出不多描述
    vim自带快捷键

    功能快捷键使用频率
    删除字符x
    删除行dd
    删除光标前单词ctrl + w
    跳转到末尾G
    跳转到首行gg
    跳到行尾shift+$
    跳到行首shift+^
    在当前文件查找单词shift + *
    撤回u
    恢复ctrl + r
    向下翻页ctrl+f
    向上翻页ctrl+b
    回到上一位置ctrl+o
    回到下一位置ctrl+i

    脚本快捷键使用

    功能快捷键使用频率
    打开/关闭行号F2
    打开/关闭文件目录树F3
    打开/关闭变量函数导航F4
    定义跳转ctrl + ]
    回跳ctrl + o
    全目录查找\ + v +v
    跳到行首shift+^
    批量缩进使用v选定缩进行,shift + > 进行缩进
    批量取消缩进使用v选定缩进行,shift + <
    切换窗口ctrl +w+w
    切换上下左右窗口ctrl + w+k/j/h/l

    3. 我的vimrc配置

    set laststatus=2
    if has("autocmd")
    
      au BufReadPost * if line("'\"") > 1 && line("'\"") <= line("$") | exe "normal! g'\"" | endif
    
    endif
    set smartindent
    set tabstop=4
    set shiftwidth=4
    set expandtab
    set number
    
    "set et!
    func! SetNU()
        if &number!=0
           exec "set nonumber"
        else
            exec "set number"
        endif
    endfunc
    
    map  g
    map   :call SetNU()
    map  :NERDTreeToggle
    map  :Tlist
    set tags=tags;
    "set autochdir
    "去除第一行的帮助提示
    let NERDTreeMinimalUI=1
    "在左边占多宽
    let NERDTreeWinSize=28
    "不高亮显示光标所在的文件
    let NERDTreeHighlightCursorline=0
    "当前目录的设定
    let NERDTreeChDirMode = 2
    let NERDTreeWinPos = "right"
    "自动退出
    autocmd bufenter * if (winnr("$") == 1 && exists("b:NERDTreeType") &&b:NERDTreeType == "primary") | q | endif
    "打开vim时自动打开
    "autocmd vimenter * NERDTree
    "autocmd vimenter * wincmd l 
    
    filetype on
    set hlsearch
    let xxtagbar_vertical = 25
    let Tlist_Auto_Open=1	"默认打开vim时自动开启taglist
    let Tlist_Show_One_File=1	"只显示当前文件
    let Tlist_WinWidth= 32	"taglist窗口的宽度
    let Tlist_Exit_OnlyWindow=1	"如果退出时仅剩taglist窗口,则直接退出vim
    let Tlist_Use_Left_Window = 1 "在右侧窗口中显示taglist窗口
    
    "wincmd l
    "autocmd vimenter * wincmd l 
    
    "let g:EasyGrepFileAssociations=~/.vim/plugin/EasyGrepFileAssociations "指定同步文件类型
    let g:EasyGrepMode = 0 "跟踪当前扩展
    let g:EasyGrepCommand = 1 "选择cmd为vimgrep,但是测试使用Grep也可以
    let g:EasyGrepRecursive = 1   "启动递归搜索
    "let g:EasyGrepHidden = 1 "搜索隐藏文件”
    let g:EasyGrepFilesToExclude = "tags, *.bak, *~, cscope.*, *.a, *.o, *.pyc, *.bak"   "排除不想搜索的file类型
    "let g:EasyGrepAllOptionsInExplorer = 1 "在使用GrepOption是是否显示所有配置项, 1 是显示
    let g:EasyGrepWindow = 1 "默认情况下也为0  就是Quickfix窗口”
    "let g:EasyGrepJumpToMatch = 1 "跳转第一个..let g:EasyGrepInvertWholeWord = 1 "搜索整个单词”
    let g:EasyGrepFileAssociationsInExplorer = 1 "文件中显示关系表
    let g:EasyGrepReplaceWindowMode = 1 "全局代替时,执行当前窗口与下一个窗口拆分”
    let g:EasyGrepSearchCurrentBufferDir = 0
    let g:EasyGrepRoot="/"
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66
    • 67
    • 68
    • 69
  • 相关阅读:
    破除“数据孤岛”新策略:Data Fabric(数据编织)和逻辑数据平台
    【linux】权限的理解
    【FreeRTOS】队列的使用
    分享一个课程卡样式
    OpenVINO安装教程 npm版
    【代码随想录】LC 704. 二分查找
    云计算 3月8号 (wordpress的搭建)
    git使用详解
    五芳斋:「老」字号需要「新」故事
    105. 从前序与中序遍历序列构造二叉树
  • 原文地址:https://blog.csdn.net/alittlefish1/article/details/127659222